Tekrar hoş geldiniz.
Size söylemediğim şey, nesne yönelimli programlamayı tekrar öğrenirken ve sadece
Python'da değil, OP paradigmasını destekleyen herhangi bir programlama dilinde, nesne yönelimli programlamanın
gerçekten çok iyi yaptığı dört şey olan OP'nin dört ayağı fikridir.
Ve aslına bakarsanız, ilkini öğrendik ve bu da kapsülleme fikri.
Kapsülleme nedir?
Kapsülleme, verilerin ve bu verileri manipüle eden fonksiyonların bağlanmasıdır.
Ve her şeyi kullanıcıların, kodların veya diğer makinelerin etkileşime girebileceği bu kutuda tutmak için büyük bir nesneye
kapsüllüyoruz.
Ve bu veri ve işlevler, nitelikler ve yöntemler dediğimiz şeydir, değil mi?
Oyuncu karakterimizin işlevselliğini, isim ve yaş verilerine veya niteliklerine sahip olarak ve ayrıca bu isim
ve yaş üzerinde hareket edebilen işlevlere sahip olarak kapsülleyebiliriz.
Örneğin, bir yöntemim olabilir.
Burada Shout yazıyor.
Ya da konuş.
Ve speake yöntemi artık isim ve yaşı kullanabilir.
Söyleyebilirim.
Benim adım Self Dodd.
Ve öyleyim.
Kendini.
Sekiz yaşında.
Böylece eğer bir oyuncu konuşursa.
Ve bunu çalıştırıyorum.
Adım Andre ve 100 yaşındayım.
İşlevselliği kapsüllüyorum.
Bu sınıfa sahip olmasaydım, bazı değişkenlerim ve iki fonksiyonum olurdu.
Ancak kapsülleme kullanarak, bunu birden fazla nesne oluşturabileceğim bir plan halinde
paketledim, böylece diğer insanlar kodumu gördüklerinde, Hey, bu etkileşimde bulunabileceğim bütün bir nesne.
Oyuncu karakterinin tarif ettiği belirli şekillerde kullanabilirim.
Ve bunu yerleşik Python veri türlerimizde de gördük, değil mi?
Bir dize oluşturduğumda.
Bunun gibi.
Kapsülleme sayesinde, erişebileceğim tüm bu işlevlere, tüm bu yöntemlere sahibim; böylece,
diyelim ki capitalize yaparsam, tüm güçlü yönlerimden yararlanacaktır.
Tüm bu işlevler benim kullanmam için kapsüllenmiş durumda.
Şimdi.
Neden veri ve işlevleri nitelikler ve yöntemler halinde paketlemek istiyoruz?
Çünkü bu bize ekstra güç sağlıyor, değil mi?
Örneğin, bu oyuncu karakterinin herhangi bir eylemi, yöntemi yoksa ve sadece nitelikleri varsa.
Bu durumda, bu bir tür sözlük gibi, değil mi?
Bir oyuncuyu buraya yazdırıp çalıştıra tıklarsam bir işe yaramaz.
Bu oyuncu nesnesine sahibim ama adına şu şekilde erişebiliyorum.
Ayrıca H'ye de erişebiliyorum.
Bunun gibi.
Ama ona gerçekten bir şey yapamam.
Aynı sözlüğü burada da kullanabilirim.
Diyelim ki oyuncu iki, adı Andre ve yaşı 100 olan bir sözlüğe eşit olacak.
İkisi arasındaki tek gerçek fark ise bu bilgilere erişim şeklim.
Tuşlara erişmek için nokta gösterimi yerine ayraç gösterimini kullanıyorum.
Böylece Çalıştır'a tıkladığımda.
Oh.
İkinci oyuncu için burada iki tane yaptığımdan emin olmalıyım.
Çalıştır'a tıklarsam.
Tekrar.
Aynı şey.
Elbette bu şekilde de yapabilirim ama işe yaramaz.
Tek istediğim veri ise neden sadece bir sözlük oluşturmuyorum?
Ama bu yolu kullanarak, bir şeyleri birleştiriyorum, bir şeyleri bu örneklere, yararlı olabilecek
ve aynı zamanda anlamı olan kutulara paketliyorum.
Değil mi?
Çünkü dünyamız veriler ve eylemlerle dolu, değil mi?
Örneğin bir ağaç bile, eğer gerçek dünyamızda bir ağaç sınıfımız olsaydı, ağacın yaprak dökmeyen mi
yoksa çok yıllık mı olduğu, yaprakları olup olmadığı, ne kadar uzun olduğu gibi bilgilere sahip olacaktı.
Tüm bu bilgilere ve aynı zamanda eylemlere sahip olacağız.
Değil mi?
Bir ağacı kesebilirim.
Ağaç büyüyebilir, ağaç köklerini uzatabilir.
Bu şekilde kodumuzla gerçek dünyada olanları taklit edebiliyoruz.
Yani bu kapsülleme ve biz bunu gördük.
Ancak bir sonraki videoda ikinci sütunumuzdan bahsedelim.