Bir önceki videoda Opie'nin bir paradigma, kodumuz hakkında düşünmenin ve kodumuzu yapılandırmanın bir yolu
olduğunu öğrenmiştik.
Programlama dillerinin tarihi hakkında Wikipedia'daki bu mükemmel makaleye bağlantı vereceğim.
Gördüğünüz gibi, temel programlama dilleri ile başladık.
Assembly dili gibi gerçekten düşük seviyeli, makine koduna çok yakın olan şeylerimiz var.
COBOL gibi şeylerimiz vardı ve sonra altmışlı ve yetmişli yıllarda daha fazla kod yazmaya başladıkça,
bu temel paradigmalardan bazılarını oluşturmaya başladık.
Ve özellikle Smalltalk programlama diliyle birlikte ortaya çıkan büyük paradigmalardan
biri de bu nesne yönelimli programlama ya da nesne yönelimli dil fikriydi.
Gördüğünüz gibi, o noktaya kadar prosedürel kod dediğimiz şeyi yazıyorduk.
Bunun anlamı, örneğin bir Python dosyasına bakarsak, prosedürel bir kodun tıpkı bir prosedür gibi olduğudur.
Basitçe birden 100'e kadar satırlarımız vardı ve satırın başından sonuna kadar gittik.
Koşullarımız, belki döngülerimiz vardı, ama her şey bunu yap, şunu yap şeklindeydi.
Makineye "Hey, tam olarak bunu yap" diyorduk.
Şimdi size nesne yönelimli paradigmalardan bahsedeceğim.
Bu biraz değişti.
Şöyle demeye başladık: Hey, hadi kodumuzda gerçek dünyadaki bir nesneyi temsil eden bir şey modelleyelim.
Örneğin, bir arabayı kodlamak üzereysem, ne renk olduğu, ne tür bir motora sahip olduğu, kaç koltuğu olduğu gibi
verilerin yanı sıra araba ileri gidebilir, geri gidebilir, kapıyı açabilir gibi üzerinde
gerçekleştirebileceğimiz metotlar gibi eylemlere sahip bir araba nesnesi yaratırım.
Ve bu satır satır prosedürel kodlara sahip olmak yerine, modeller, gerçek dünya planları açısından düşünebiliriz,
çünkü insanlar olarak bir şeyleri organize ederiz.
Bir oda düşünün.
İşleri organize ederek ve belirli bir yerde farklı grupların birlikte çalışmasını sağlayarak bir fabrika
düşünün.
Bu hem düşünmek hem de işleri yürütmek için daha iyi bir yoldur.
Peki bu Python'da nasıl görünür?
Python nesne yönelimli bir dildir ya da olabilir, bu da açık fikirleri destekleyebileceği anlamına gelir.
Bu nesne ve modelleme fikri ve bunu type kullandığımızda gördük, her şeyin bir nesne olduğunu görüyoruz
çünkü bu class anahtar sözcüğünü kullanıyoruz.
Peki Python'da bu class anahtar sözcüğü nedir?
Kendi verilerimi oluşturabilirim, sadece class diyerek kendi sınıfımı yazabilirim ve daha sonra istediğim ismi
verebilirim.
Sınıf diyelim.
Büyük.
Nesne.
Hemen şimdi.
Burada adlandırma kuralının daha önce gördüğümüzden farklı olduğunu görüyorsunuz.
Standart olarak büyük harfle yazıldığından emin olacağız.
Programcılara bunun bir sınıf olacağını ve yılan vakasını kullanmayacağımızı bildirmek istiyoruz.
Camel case dediğimiz, her yeni kelimenin büyük harfle yazıldığı bir yöntem kullanıyoruz.
Ve sonra burada iki nokta üst üste kullanıyoruz ve sonra burada kodumuzu yazıyoruz.
Şimdi kodu yazmayacağım.
Ben pas geçeceğim.
Ancak tam burada yeni bir sınıf oluşturdum, böylece örneğin
Tip.
Büyük Nesne ve Çalıştır'a tıklıyorum.
Yine de type alıyorum çünkü şu anda oluşturduğumuz şey bir blueprint olan bu sınıf, ama
aslında nesneyi oluşturmadık.
İfadelerin kafa karıştırıcı olabileceğini biliyorum, ama bana tahammül edin.
Bunu açıklayacağım.
Şimdi, diyelim ki büyük nesneye eşit bir nesne oluşturabilir ve ardından bu sınıfı çalıştırabiliriz.
Böylece buraya nesne yazarsam, nesne bir ve çalıştır'a tıklarım.
Sınıfı anladım.
Büyük nesne.
Şimdilik buradaki ana kısmı görmezden gelebilirsiniz çünkü bu konu hakkında daha sonra konuşacağız.
Ancak burada kendi nesnemi yarattığımı görüyorsunuz.
Şimdi burada olanları bir düşünelim, çünkü anlaşılması gereken çok şey var.
Nesne yönelimli programlamada bir sınıf ve bir nesne fikri vardır.
Şimdi, bir sınıf bu.
Bu bir plan.
Yaratmak istediğimiz şeyin planı.
Sınıfımızın sahip olduğu temel nitelikler yani özellikler nelerdir?
Sınıfımızın uygulayabileceği bazı temel yöntemler veya eylemler nelerdir?
Ve sonra bu taslaktan, bunu yapı taşı olarak kullanarak tekrar tekrar farklı nesneler oluşturabiliyorum.
Yani bu plan, sınıf dediğimiz şeydir.
class anahtar sözcüğü ile tanımladığımız ve bu sınıfın örneklenebildiği.
Bu, farklı örnekler oluşturma eylemidir.
Peki bu örnekler nelerdir?
Bunların hepsi nesnedir.
Şimdi buradaki isimlendirme alışmanız gereken bir şey.
Ve tüm nesne yönelimli programlama dilleri bu dile sahiptir.
Bu yüzden birinin ne dediğini anlamak zorundasınız.
Hey, az önce bir sınıf oluşturdum.
Bunun anlamı, hey, az önce yeni bir örnek, yeni bir nesne oluşturdum.
Bu diyagrama bakarak, az önce yazdığımız koda geri dönelim.
Burada bir sınıf veya bir plan oluşturduk.
Ve sonra buradaki çift ayraç, sınıfı örneklendiriyor ve şöyle diyor: Hey sınıf, burada kodunuz ne ise onu kullanın
ve örneklendirin ve yeni bir nesne oluşturun.
Yani bu sınıfı örnekleyerek yeni bir nesne oluşturuyoruz.
Liste gibi bir şeyle yaptığımız da tam olarak bu, değil mi?
Tekrar tekrar birden fazla liste oluşturabilirim.
Ve her liste oluşturduğumda, tüm bu yöntemlere ve hatta bazen kullanabileceğim niteliklere
erişebiliyorum.
Ve bu şekilde kendim kodlamak yerine çok zaman kazanıyorum.
Ve aynı şekilde burada da birden fazla nesne oluşturabilirim.
İtiraz ediyorum.
Üçüncü nesne.
Aynen böyle.
Ve şimdi bu plana dayalı olarak kullanabileceğim üç farklı nesnem var.
Şimdi, şu anda blueprint'te hiçbir şey yok çünkü buraya daha sonra kod ekleyebilirim ve bunu bir sonraki
videoda yapacağız.
Ama işin güzel tarafı, burada verimliliği düşünelim.
Planın kendisini görüyorsunuz.
Sınıf bellekte saklanacaktır.
Yani Python yorumlayıcısı diyecek ki, hey, büyük nesne bunun için bir plan olacak.
Bu yüzden tüm bu kodu bellekte saklayacağım.
Ancak her nesne oluşturduğumda kodu yeniden yazmam ya da böyle bir şey yapmam gerekmiyor.
Basitçe şöyle diyebilirim: Hey, bellekte büyük nesnenin olduğu yere git ve bu kodu çalıştır, böylece yine kodumuzu
kuru tutmuş oluruz.
Kodumuzu nesnelere dönüştürmemizi sağlayan bir yerimiz var.
Bir ara verelim ve bir sonraki videoda bu sınıfı genişletelim.