Şimdi öğrenmenin en iyi yolu kodu gerçekten çalışırken görmektir.
Teorik olarak, aslında kendi sınıfımızı kodlayalım.
Her şeyi silip sıfırdan başlayacağım.
Diyelim ki bir oyun şirketi için çalışıyoruz ve bu oyun şirketinin yaratmak istediği bir
büyücü oyunu var, neredeyse Harry Potter gibi.
Şimdi, nesne yönelimli bir programlama hakkında nasıl düşünebiliriz?
İhtiyacımız olan ilk şey oyunculara sahip olmamız.
Doğru.
Her oyuncunun oynaması gereken bir karakter vardır.
Burada bir sınıf oluşturalım ve adını player koyalım.
Karakter.
Tekrar.
Bu bir sınıf olduğu için adlandırma kuralına dikkat edin.
Ve.
Bir başka kural da genellikle çoğul değil tekil olmasını istemenizdir.
Yani oyuncu karakterleri diyemezsiniz çünkü bu bir plan.
Bu plandan birçok karakter yaratacağız, ancak bunlar nesne olacak.
Yani oyuncu karakter, tekil olarak tekil.
Şimdi burada birkaç şey yapacağım ve sizi uyarıyorum, bu ilk başta kafa karıştırıcı görünecek,
ama bana katlanın.
Açıklayacağım.
İçinde bir alt çizgi, alt çizgi tanımlayacağız.
Alt çizgi, alt çizgi.
Şimdi burada, kendim diyeceğiz.
Ve sonra ona bir isim verin.
Karakterin adı.
Buradan, Colin'i bir kez daha yapacağız.
Ve sadece öz nokta adını söyleyin.
İsme eşittir.
Aman Tanrım.
Az önce ne oldu burada?
Yine, bunun ne işe yaradığını açıklamayı erteleyeceğim ve biraz daha mantıklı olması için birkaç satır
daha kod yazacağım.
Buraya başka bir yöntem yazacağım ve diyelim ki her oyuncunun çalıştırabileceği bir çalıştırma yöntemi tanımlayacağım.
Ve burada bir kez daha bu garip self ward'a sahip olacağım ve sonra sadece buranın içinde yazdır diyeceğim.
Koş.
Pekala, bu sınıfı yeni oluşturdum.
Hala biraz kafa karıştırıcı.
Bunun içinde ne olduğunu, benliğin ne olduğunu ve tüm bu yeni görünümü gerçekten bilmiyoruz.
Ancak bunu bir an için görmezden gelelim ve basitçe şunu söyleyelim.
Oyuncu.
Biri oyuncu karakterine eşit olacak ve bu oyuncuyu örnekleyecektir.
Böylece.
Oynatıcıyı yazdırabilir ve bu oynatıcıda ne olduğunu görebiliriz.
Çalıştır'a tıklarsam.
Pekala, hava alıyorum.
Bu bir tür hava.
Gerekli bir konumsal bağımsız değişken adının eksik olduğunu söylüyor.
Tamam.
Burada bir ara verelim ve neler olduğuna bakalım.
Bunu görüyorsun, değil mi?
Yöntemi özel bir yöntemdir.
Burada iki alt çizgi görüyorsunuz.
Buna dunder yöntemi veya sihirli yöntem denir.
Ve özellikle bununla ilgili bir videomuz olacak.
Ancak bir sınıf oluştururken, bunu genellikle en üstte görürsünüz.
Ve bu genellikle kurucu yöntem veya init yöntemi olarak adlandırılan şeydir.
Ve bu, her örnekleme yaptığımızda otomatik olarak çağrılır.
Instantiate'in bir nesne oluşturmak için sınıfı çağırdığımız anlamına geldiğini unutmayın.
Yani bunu yaptığımda, bu kod bloğunda ne varsa otomatik olarak çalıştırılacak.
Bunu çalıştırdığımda, tam burada çevrimiçi dokuz hatasını aldığımı görüyorsunuz, çevrimiçi.
Dokuz.
Ve oyuncu karakteri oluşturmaya çalıştığımda.
İçinde çalışır ve sonra kendi kendine yapmaya çalışır.
İsim, isme eşittir.
Ancak sorun şu ki, buna bir argüman adı vermiyorum.
Bunun nedeni, onu çağırdığımızda, kendinden sonra gelen her şeyi parametre olarak kabul etmemizdir.
İsim.
Bu yüzden ona bu karakterde bir isim vermemiz gerekiyor.
Diyelim ki adın Cindy.
Burayı çalıştır'a tıklarsam.
Tamam.
Görünüşe göre bir oyuncu karakterim var.
Ve aslına bakarsanız, bana bu bellek konumunda bir nesne olduğunu bile gösteriyor.
Bilgisayarlarımızda, birinci oyuncu karakterinin şu anda bulunduğu yer burasıdır.
Çok güzel.
Peki bu öz anahtar kelime nedir ve bu çevrimiçi kod ne içindir?
Bu bizim için tanımlamanın bir yoludur.
Öz benlik, oyuncu karakterini ifade eder.
Diyor ki, hey, bu birinci oyuncuyu yaratacağımız bu oyuncu karakterine
atıfta bulunacak ve self nokta adının parametre adı neyse ona eşit olmasını istiyorum.
Böylece burada oyuncu nokta adını yaparsam ve çalıştır'a tıklarsam.
Cindy'i anlıyorum.
Peki neden Cindy?
Çünkü ona oyuncu karakteri parametresini verdim.
Ve onu örneklediğimde, isim parametresini geçtim.
İçinde ve sınıflarda yaptığımda varsayılan parametre self'tir, burada bir yöntem tanımlarken varsayılanın
her zaman ilk parametrenin self olduğunu görüyorsunuz.
Ve şimdi kendi nokta ismime bir isim veriyorum.
Bunu buradan kaldırırsam ve çalıştır'a tıklarsam ne olur?
Nesnenin öznitelik adı olmadığını söylediğini görürsünüz.
Çünkü "Hey, oyuncunun bir ismi olsun istiyorum" diyebilmem için "self dot" demem gerekiyor.
Çünkü benlik, birinci oyuncuyu ifade eder.
Hatırlarsanız, bir listemiz olduğunda, nokta işareti yapmamız gerekiyordu ve sonra append diyorduk.
Birisi bu ekleme kodunu yazdı ve ekleme kodunda self dot yazacak.
Listeye ekle diyelim ve self, noktanın solunda ne varsa onu ifade eder.
Bu şekilde, bu durumda henüz oluşturulmamış bir şeye referans vermemizi sağlar.
Oyuncu bir Ve şunu bilmelerini sağlayın, hey, oluşturulduğunda, örneklediğimizde,
oyuncu bir'in bu ad niteliğine sahip olduğundan emin olmanızı istiyorum, böylece başka bir oyuncu oluşturursam ve oyuncu
Tom oyuncu iki olacak.
Eğer oyuncuyu isme yazdırırsam ve çalıştır'a tıklarsam.
İki farklı isimde iki farklı oyuncum var.
Aynı kod parçasını kullanabildim ancak farklı değerlere sahip oldum çünkü self, bunu her örneklediğimde ilk
kez birinci oyuncuya, sonra ilk kez ikinci oyuncuya atıfta bulunuyor.
Şimdi benlik, anlaşılması gerçekten çok zor olan şeylerden biridir.
Bu videoyu birkaç kez izlemeniz gerekebilir, ancak buradaki anahtar sizin için açık olmalıdır.
Yani, sadece bir kez kod yazabiliyorum.
Prensip sürücümüzü hatırlıyor musun?
Kendinizi tekrar etmeyin.
Ve nesne için oluşturacağımız bu verilerin dinamik olacağını ve verdiğimiz bilgilere göre değişeceğini
söyleyerek dinamik hale getirebiliyorum.
Böylece farklı özelliklere sahip farklı oyuncular yaratabilirim.
Ama yine de aynı kodu kullanın.
Artık burada birden fazla şeyim olabilir.
Örneğin H'ye sahip olabilirim ve bir kez daha öz h eşittir H diyebilirim ve sonra Cindy'nin geçmesi gerekecek,
diyelim ki 44 ve Thomas 21.
Yani burada bir kez daha, eğer yaşlanırsam.
Farklı özelliklere sahip olacaklar.
Unutmayın, bunlar bu nesnelerin sahip olduğu nitelikler veya özelliklerdir ve bunlara nokta gösterimini yaparak ve
ardından özelliğin kendisine erişerek erişebilirsiniz.
Burada herhangi bir parantezim olmadığını görüyorsunuz çünkü bu bir yöntem değil, harekete geçmek değil.
Basitçe şunu söylüyor: Hey, bu özelliğe erişmek istiyorum.
Burada nokta koyarsam, editörüm bana gerçekten söyleyecek ve hey, özelliğe, yaşa ve isme erişiminiz
var sembolüne sahip olacağız.
Ve aslına bakarsanız, yöntemi çalıştırma erişimim de var, böylece Çalıştır'a tıklarsam.
Unutmayın, koşu bir yöntemdir.
Yani bu bağlı yöntemi alıyorum, ancak hiçbir şey yazdırmıyor, eylemi gerçekleştirmiyor.
Bu yüzden parantezleri bir kez daha eklememiz gerekiyor.
Vur, kaç.
Ve şuna bak.
Koşabiliyorum.
O zaman hiç yok.
Sonra 21.
Bunu neden alıyoruz?
Hiç mi?
Çünkü unutmayın, bu hiçbir şey döndürmeyen bir işlevdir.
Bir fonksiyon hiçbir şey döndürmediğinde ne elde ederiz?
Hiç alamadık.
Bu yüzden belki de sadece iade tamamlandı diyebilirim.
Çalıştır'a tıklarsam.
Al bakalım.
21 tane yaptık.
Şimdi, bu videoyu bitirmeden önce son bir şey daha.
Burada ilginç olan şey, eğer bir oyuncu olursam.
Ve sonra ikinci oyuncu ve bunu yazdırıyorum ve Çalıştır'a tıklıyorum.
Oyuncu karakterini aldığımı göreceksiniz.
Ancak bu nesnelerin her biri, oyuncu bir ve oyuncu iki farklı bellek konumundadır.
Böylece birden fazla oyuncu oluşturmak için tek bir kod parçası, tek bir plan kullanabiliyorum.
Ama bu oyuncular aynı değil.
Aynı taslaktan yaratılmışlardır, ancak hafızada farklı yerlerde yaşarlar.
Ve bu mantıklı, değil mi?
Tom ve Cindy'nin aynı oyuncu olmasını istemiyoruz.
Onlar iki farklı oyuncu.
Bu şekilde her şeyi güvende tutabiliyoruz.
İkinci oyuncuya eklediğim herhangi bir şey, örneğin ikinci oyuncu artık saldırabilir diyelim.
Ve saldırı sadece 50 yaşında bir mülk olacak.
Şimdi, eğer buraya saldırmazsam, ikinci oyuncunun saldırdığını göreceksiniz.
Saldırın.
Ama oynarsam ya da saldırmak istersem.
Hava alacağım.
Nesnenin özniteliği yoktur.
Saldırın.
Umarım derslerin gücünü görmeye başlamışsınızdır.
İlk başta anlaşılması zor olsa da.
Güç, artık kendi nesnelerimizi yaratmak için tekrar tekrar kullanabileceğimiz bu
planı oluşturabildiğimizde ortaya çıkıyor.
Bir sonraki videoda daha fazlasını keşfedelim.