‫Tekrar hoş geldiniz.
‫Bu videoda soyut sınıfları ele alacağız ve bu nedenle bir grup yeni sınıf oluşturacağız.
‫Sınıf kavramını, kalıtım ve çok biçimlilik kavramlarını anlamanız önemlidir çünkü bu kavramlar
‫üzerine inşa edeceğiz.
‫Ve yeni bir sınıf oluşturmakla başlıyoruz.
‫Öyleyse yeni bir sınıf oluşturalım.
‫Burada Project Add class'a gidiyoruz ve bir shape class oluşturacağım ve bu shape CSS olacak.
‫Buradaki fikir, herhangi bir nesne oluşturmak istemediğimiz bir sınıf oluşturmak istediğimizdir, bu nedenle
‫şekilleri örneklemek istemeyeceğiz.
‫Şekillerin kendisi değil, şekillerin türleri olan nesneleri örneklemek istiyoruz.
‫Örneğin, bir şekil bir küp veya bir şekil bir küre olabilir.
‫Ve burada 3 boyutlu şekiller kullanıyorum, değil mi?
‫Üç boyutlu şekiller.
‫Ve shape'den miras alacak sınıflar oluşturacağız, ancak shape'in gerçek bir soyut sınıf olduğundan
‫emin olmak istiyoruz, bu da onun bir nesnesini oluşturamayacağımız, ancak sistemlerini
‫veya yöntemlerini ve özelliklerini kullanacağımız anlamına geliyor.
‫Öyleyse başlayalım.
‫Öncelikle bu şekli soyut yapalım.
‫Bunu yapmak için de abstract anahtar kelimesini kullanabiliriz.
‫Yani artık soyut bir sınıf.
‫Şimdi programımıza geçelim ve bunun gerçek bir soyut sınıf olduğunu görelim.
‫Şimdi bir şekil oluşturalım.
‫Birinci şekil yeni şekle eşittir.
‫Bunu yapmaya çalıştığımızda, soyut bir sınıfın veya arayüz şeklinin bir örneğini oluşturamadığımızı görebilirsiniz.
‫Ve şeklimiz soyut bir sınıf olduğu için, onun nesnelerini oluşturamayız, bu yüzden onu örnekleyemeyiz.
‫Burada önemli bir husus da bu.
‫Tamam.
‫Şimdi bir özelliğe ihtiyacımız olacak ve ben sadece name adında bu özelliği oluşturacağım.
‫Yani şeklin bir isme ihtiyacı var ve bir getter'ımız vs. var. Bunu oluşturmak için sadece pre prop kullanıyorum ve ardından yeni
‫bir özellik oluşturmak için çift sekme yapıyorum.
‫Bunu diğer videolarda da gördük.
‫Şimdi bir yönteme sahip olmak istiyorum ve kullanmak istediğim yöntem sanal bir yöntem olacak.
‫Sanal boşluk bilgi alın.
‫Burada gördüğünüz bu sanal klavye, temel sınıfta bildirilen bir yöntem özelliği indeksleyicisini veya olayı değiştirmek
‫için kullanılır ve türetilmiş sınıfta üzerine yazılmasına izin verir.
‫Bu da get info yöntemini bir sürücü sınıfında geçersiz kılmamızı sağlar.
‫Tamam.
‫İşte bu sanal anahtar kelimenin arkasındaki fikir budur.
‫Bu yüzden buraya bir açıklama ekleyelim.
‫Bu yüzden doğru çizgiyi kontrol etmek için çift sekmeye bakın.
‫Ve burada sadece şöyle bir şey yazmak istiyorum.
‫Bu a ve ardından şeklin adıdır.
‫Yani bu bir isim.
‫Şimdi bunun arkasındaki fikir, yeni bir satıra sahip olmak ve ardından bu ifadeye sahip olmak istiyorum.
‫Bu a ve ardından şeklin adıdır, çünkü bir şekil oluşturduğumuzda adını ayarlayabiliriz.
‫Yani sanal bir boşluğumuz var.
‫Şimdi, artık soyut bir yöntem de ekleyebiliriz.
‫Şimdi şu soyut çift hacmi yapalım.
‫Yani hesaplamak istediğim şey bir şeklin hacmi.
‫Şimdi, burada, bu yöntemi uygulamayacağım.
‫Burada önemli bir ayrım var.
‫Bunu burada uygulamayacağım.
‫Sadece şunu söyleyeceğim, tamam, bir sınıf benden miras almak istediğinde, hacim yöntemi için bir işlevsellik
‫uygulaması gerekir.
‫Tamam.
‫Şimdi, elbette buna hacim hesaplama ya da bunun gibi bir şey diyebiliriz, ancak ben buna
‫sadece hacim diyeceğim.
‫Tamam.
‫Şimdi shape sınıfımızı hazırladığımıza göre, onu kaydedebilir ve yeni bir sınıf oluşturabiliriz.
‫Oluşturacağım bir sonraki sınıf küp sınıfıdır.
‫Bu yüzden 3D bir şekil olan Cube'u oluşturacağım.
‫Yani şimdi küpüm shape'den miras alacak.
‫Şimdi, eğer bunu yaparsam, burada bir hata aldığımı görebilirsiniz.
‫Cube'un devralınan soyut üye şekil hacmini uygulamadığını söylüyor.
‫Bu yüzden potansiyel düzeltmeyi gösterin.
‫Pekala, soyut sınıfı uygulayın.
‫Bunu yaparsam, bu hacim yöntemini bir geçersiz kılma ifadesiyle uyguladığını görebilirsiniz.
‫Yani shape'de tanımlanan her şeyi geçersiz kıldığını söylüyor.
‫Shape soyut bir sınıf olduğundan ve bu yöntem de soyut olduğundan.
‫Gördüğünüz gibi, herhangi bir yöntem gövdesi yoktur.
‫Bu gerçekten sadece yöntemin bildirimidir.
‫Şimdi devam edebilir ve elbette bir şeyler uygulayabiliriz.
‫Burada bir hata attığımızı görebilirsiniz, uygulanan istisna değil.
‫Elbette burada bir şeyler uygulamak istiyoruz.
‫Öyleyse küp sınıfımızda bir hacim hesaplaması uygulayalım.
‫Şimdi bunu hesaplamak için ihtiyacımız olan şey, uzunluk olacak bir özelliğe ihtiyacımız olacak.
‫Bu yüzden burada length adında yeni bir özellik oluşturacağım ve ayrıca bir kurucu ekleyeceğim.
‫Yani Public Cube ve ne zaman bir küp oluşturmak istesem, bir uzunluk geçmem gerekiyor.
‫Yani burada söylemeye devam ettiğim şey bu.
‫Hazır başlamışken bir de isim ekleyeyim.
‫Gördüğünüz gibi, burada kalıtım kullanıyoruz çünkü isim küpte tanımlanmıyor, ancak şekilde tanımlanıyor.
‫Böylece değişken adını buraya ayarlayabilirim ve uzunluğu bana aktarılan uzunluğa ayarlayacağım.
‫Bu nedenle, özellik uzunluğu, türde bir nesne oluşturduğumuzda aktarılan uzunluk ile aynı uzunlukta olacaktır.
‫S Yani bu değişkenin arkasındaki fikir bu.
‫Daha sonra bu hacim yöntemini uygulayabilir ve basitçe bir şey döndürebiliriz.
‫Yani bir double döndürmesi gerekiyor, değil mi?
‫Bu yüzden double tabanlı bir şey döndürmemiz gerekiyor.
‫Ve bir küpün hacmini hesaplamak için tüm kenarları aynı uzunlukta olan bir küp kullanıyorum.
‫Bu yüzden üçün gücüne kadar uzunluk diyeceğim.
‫Yani matematik, pulp, uzunluk üç, bu da uzunluğu, çarpı uzunluğu, çarpı uzunluğu hesaplayacağı anlamına
‫gelir.
‫Yani hacmimiz bu olacak ve bu değeri döndürecektir.
‫Şimdi devam edebilir ve get info adlı bu yöntemi de uygulayabiliriz.
‫Şimdi yapacağım şey onu kopyalamak ve şimdi virtual anahtar sözcüğünü değil override anahtar
‫sözcüğünü kullanacağım çünkü get info yöntemini şimdi ve burada ebeveynimden geçersiz kılmak istiyorum.
‫Bunu yaparsam, temel sınıfımdan get info yöntemini de çağırabilirim, yani bu durumda shape dot
‫CSS'den get info yöntemini de çağıracaktır.
‫Bu yüzden buradaki yöntemi çağıracak.
‫Yani bu kodu çalıştıracak ve ardından altına eklediğimiz kodu çalıştıracak.
‫Buraya küçük bir metin ekleyeceğim ve küpün uzunluğunun şu kadar olduğunu söyleyecek ve ardından uzunluğu buraya
‫aktaracağım.
‫Elbette burada hacmi de hesaplayabilirim, ancak bunu size bırakıyorum.
‫Eğer bunu yapmak istiyorsanız, çekinmeyin.
‫Tamam.
‫İşte böyle yapabiliriz.
‫Devam edin ve soyut olan başka bir sınıftan miras alacak bir sınıf oluşturun.
‫Şimdi, sizin için küçük bir meydan okuma olarak ve videoyu sadece bir kez duraklatacağım, bir meydan okumayla
‫başlamalısınız.
‫Yani fikir şimdi shape'den miras alan başka bir sınıf olan başka bir shape oluşturmaktır ve
‫shape bir küre olmalıdır.
‫Şimdi burada Sphere için görebileceğiniz işlevselliğin aynısını uygulayın.
‫Tamam.
‫İyi şanslar.
‫Videoyu yayınlayın ve bunu yapmaya çalışın.
‫Tamam.
‫Umarım denemişsinizdir.
‫Burada yeni bir sınıf oluşturacağım ve bu sınıfa sphere dot CSS adını vereceğim.
‫Ve bu sınıf shape'den miras almalıdır.
‫Ve elbette, soyut sınıfımı uygulamam gerekiyor, bu da bu hacim yöntemini uygulamam gerektiği anlamına geliyor.
‫Şimdi burada elbette yine bir özelliği hesaplayabilirim, ancak bu kez yararlı bir özellik uzunluk değil,
‫aslında yarıçap olacaktır, çünkü kürede hacmi bir küpte yaptığımızdan
‫farklı hesaplarız.
‫Ve bunu şekil olarak yapmadık çünkü bir şekil kendi başına bir hacme sahip olamaz, değil mi?
‫Y olarak tanımlanmamışsa, diyelim ki hacmini hesaplayamayız, çünkü ne tür bir şekil olduğunu
‫bilmiyoruz.
‫Doğru.
‫Bu yüzden shape'den miras alan ve işlevselliği uygulayan sınıflara ihtiyacımız var.
‫Şimdi devam edip bir kurucu, public sphere, bir double radius oluşturabilirim.
‫Bu yüzden bir yarıçapa ihtiyacımız var ve sonra devam edip kürenin adını ayarlayabiliriz, bu da küre
‫olmalı ve bir yarıçap özelliği değerine sahip olmalıyız.
‫Böylece bize aktarılan yarıçapı özellik yarıçap değeri olarak atarız.
‫Pekala, şimdi bunu elde ettiğimize göre, hacmi hesaplayabiliriz.
‫Şimdi burada bir istisna fırlatmak yerine, küremin hacmini hesaplamak istiyorum.
‫Bunu yapmak için PI'ye ve aşağıdaki hesaplamaya ihtiyacım var.
‫Yani dost yarıçapını üçe bölen matematik ve tüm bunların üç bölü oh dört bölü üç ile çarpımı.
‫Tamam.
‫Böylece hacmi bu şekilde hesaplıyoruz ve şimdi devam edip get info yöntemini de uygulayabiliriz.
‫Bu yüzden küpümdeki bilgileri kopyalayacağım.
‫Tembellik yapacağım.
‫Bu kısmı buraya kopyalayın ve aynı şeyi uygulayın.
‫Bu yüzden yine override anahtar sözcüğünü kullanıyoruz, shape sınıfında olduğu gibi tam olarak aynı adı taşıyor.
‫Ve buradaki metot neyse onu çağırmak için temel kod bilgisini kullanırız.
‫Yani metodun gövdesi her neyse, uzunluğu geçmek ya da uzunluk hakkında bir şeyler söylemek
‫yerine, yarıçap ve küp hakkında bir şeyler söyleyeceğiz.
‫Bu durumda, kürenin yarıçapının yarıçapı vardır.
‫Tamam.
‫Artık tüm bunlara sahip olduğumuza göre, şimdi yapabileceğimiz şey, devam edip tüm bu farklı sınıflardan
‫nesneler oluşturmaktır.
‫Bu yüzden burada merhaba dünya demeyeceğim.
‫Bunun yerine, bir grup şekil oluşturacağım.
‫Bu yüzden diyeceğim ki, tamam, lütfen bana bir dizi şekil verin.
‫Yarıçapı dört olan yeni bir küre ve yarıçapı üç olan yeni bir küp olacak.
‫Ve bu durumda, aslında, üçün uzunluğudur çünkü Küp'ün bir yarıçapı yoktur, bir uzunluğu
‫vardır.
‫Ve sonra her bir şekil için bir şey uygulamak istiyorum.
‫Yani şekilden şekle girmek istiyorum.
‫Bu durumda hepsinin üzerinden geçin, sadece ikisinin.
‫Ama sahip olmak istediğim şey bilgiyi şekillendirmek.
‫Yani get info denmeli ve ben şöyle bir şey yazmak istiyorum.
‫Ve bu durumda, sıfır.
‫İsim olacak ve sonra hacmi göstermek istiyorum.
‫Bu yüzden ismin bir hacme sahip olmasını istiyorum.
‫Ve tabii ki, baktığımız bu parçanın hacmini bilmek istiyorum.
‫Bu yüzden ismi şekillendirin ve hacmi şekillendirin.
‫Bu yüzden burada hacim yöntemini çağırmamız önemli, değil mi?
‫Bu sadece bir şey değil.
‫Mülkiyet.
‫Yani konsol kırmızı çizgimiz var, bu durumda adın hacmi bir hacme sahiptir.
‫Bu yüzden sadece hacmi hesaplayacaktır.
‫Tamam, şimdi bunu test edelim.
‫Burada neler olup bittiğini, ne yarattığımızı ve burada boş, boş bir satırımız olduğunu
‫görelim.
‫Sonra diyor ki, bu bir küre.
‫Kürenin yarıçapı dörttür.
‫Kürenin hacmi 268'dir. 08.
‫Ve bu da bir küp.
‫Bu küpün uzunluğu üçtür.
‫Küpün hacmi 27'dir.
‫Tamam.
‫Gördüğünüz gibi bu yazdığımız çok basit bir kod, ancak soyut sınıflar hakkında bilmemiz gereken işlevlerin
‫çoğunu açıklıyor ya da gösteriyor.
‫Şimdi, güzel olan şey, henüz kullanmadığımız bazı anahtar kelimeleri de kullanabilmemiz.
‫Bu video yeterince uzadığı için bunu bir sonraki videoda yapalım derim.
‫Orada görüşürüz.