‫Tekrar hoş geldiniz.
‫Bu videoda yapılar hakkında konuşacağız.
‫Ve struct'lar sınıflara çok benzer, ancak sınıflar referans türleridir ve struct'lar değer türleridir, yani
‫bir sınıfın nesnesini oluşturursanız, hiçbir şey içermeyebilir.
‫Yani boş olabilir, ancak bir struct bir değere sahip olmalıdır.
‫Oyun adında bir struct oluşturalım, böylece struct anahtar sözcüğünü kullanır ve sonra ona bir ad verirsiniz.
‫Yani görebildiğiniz kadarıyla bir sınıfa çok benziyor.
‫Yani burada bu isim var ve sonra devam edip burada değişkenler oluşturabilirsiniz.
‫Bu yüzden name adında bir tane oluşturacağım, sonra developer adında bir
‫tane oluşturacağım ve bir tane de rating oluşturacağım.
‫Peki bu oyun nasıl derecelendirildi ve sonra halka açık dize çıkış tarihi?
‫Peki ne zaman yayınlandı?
‫Yani bu basit bir yapı.
‫Şimdi devam edebilir ve bu yapının bir nesnesini oluşturabiliriz, böylece devam edebilir ve diyebiliriz ki, tamam,
‫oyun, bunun gibi bir oyun.
‫Şimdi elimizde bu oyun var.
‫Ancak bu oyunu kullanmak için devam etmemiz ve belirtmemiz gerekiyor.
‫Bu yüzden oyunun özelliklerine ihtiyacımız var.
‫Birincisi, örneğin, ismi belirlememiz gerekiyor ve diyelim ki Pokémon Go oldu, o zaman birinci oyunun bir geliştiricisi olması
‫gerekiyor.
‫Bu yüzden Niantic gibi bir şey söyleyeceğiz ve ardından Game one'ın bir derecelendirmeye sahip olması gerekiyor.
‫Diyelim ki 3'tü. Beş üzerinden 5 yıldız ve nihayet çıkış tarihi.
‫Böylece değerleri bu şekilde ayarlayabilirsiniz.
‫Yani bir sınıfla yaptığınız şeye çok benziyor, değil mi?
‫Bu yüzden 2016'da piyasaya sürüldü ve burada sahip olduğumuz oyun yapımız bu.
‫Şimdi devam edebilir ve oyun bilgilerini konsola yazabiliriz.
‫Diyelim ki oyunun adını yazmak istiyoruz.
‫CW Game 1.
‫Ve adı ve sonra küme parantezleri sıfır ve oyun nokta adı veya aslında oyun bir adı.
‫Gördüğünüz gibi, basitçe devam edebilir ve değişkenleri çağırabilirsiniz, böylece sadece isimle değil, aynı
‫şeyi yapabiliriz.
‫Bunu diğer her şey için de yapabiliriz.
‫O yüzden bunu kopyalayacağım.
‫Oyun bir tarafından geliştirildi ve şimdi oyunun adı değil, geliştiricisi.
‫Burada da aynı.
‫Reyting birinci oyunun.
‫Derecelendirme ve işte derecelendirme.
‫Ve son olarak, game one yeniden çıkış tarihinde piyasaya sürüldü.
‫Şimdi çalıştıralım.
‫Kırmızı tuşu konsolla ve neler olduğunu görelim.
‫Ve biz bir oyunuz.
‫Birinin adı Pokemon Go.
‫Birinci oyun Niantic tarafından geliştirilmiştir.
‫Puan 3. 5 ve 1 Temmuz 2016'da piyasaya sürüldü.
‫Tamam.
‫Öyleyse öyleyiz.
‫Çok basit ve bir sınıfa çok benziyor.
‫Doğru.
‫Peki farkı nedir?
‫Farklı olmayan bir şey daha var.
‫Bu yüzden, bilgileri görüntülemesi gereken public void display oluşturacağım.
‫Ve yapacağım şey, tüm bunları orada uygulamak olacak.
‫Bu yüzden bana ismi verecek.
‫Bana geliştiriciyi verecek.
‫Bana reytingi ve çıkış tarihini verecek.
‫Tamam.
‫Şimdi, bunun yerine, basitçe görüntüleme yöntemini çağırabilirim ve bunu birinci oyunu çağırıp lütfen tüm bilgileri
‫görüntüleyin diyerek yapabilirim.
‫Şimdi tekrar çalıştıralım ve tüm bilgileri aldığımızı görelim.
‫Tamam.
‫Böylece değişkenler oluşturabilirsiniz.
‫Yöntemler oluşturabilirsiniz.
‫Ama nasıl bir farkı var?
‫Yapamayacağınız şey bir kurucu oluşturamamaktır.
‫Yapılar açık parametre içermeyen kurucular içeremez.
‫Yani burada varsayılan kurucular oluşturamazsınız.
‫Daha sonra bir veya daha fazla arayüz uygulayabilir.
‫Böylece devam edebilir ve temizlenebilir, karşılaştırılabilir bu tür arayüzleri burada uygulayabilirsiniz.
‫O halde mirası desteklemiyorlar.
‫Yani yapılar üzerinde kalıtım kullanamazsınız.
‫Varsayılan bir kurucunuz olamaz.
‫Dediğim gibi, struct üyeleri soyut, sanal veya korumalı olarak belirtilemez, bu nedenle sadece public gibi
‫bir şey olabilirler.
‫Yani genel bir yapıya ya da özel bir yapıya sahip olabilirsiniz.
‫Ancak yapıların tanımlanmış kurucuları olabilir.
‫Böylece public game gibi bir şeye sahip olabilirsiniz ve burada dize adınız vardır.
‫Buna sahip olabilirsiniz ve bu isim olacaktır veya bu isim eşittir isim ve bu nokta geliştirici eşittir geliştirici.
‫Yıldız derecelendirmesi eşit derecelendirmedir.
‫Ve bu DOT çıkış tarihi eşit çıkış tarihidir.
‫Şimdi, tabii ki onları burada tutmanız gerekiyor.
‫Dize geliştiricisi, ardından çift derecelendirme ve dize yayın tarihi.
‫Ancak, örneğin, devam edip burada display yöntemini görüntülemek isterseniz, atanmamış yerel değişken game one
‫kullanımı nedeniyle bir hatayla karşılaşırsınız.
‫Yani birinci oyun atanmamıştı.
‫Diyelim ki buraya kadar tüm bilgileri edindikten sonra denemiş olsam bile, yine de bir hata olduğunu görüyorsunuz.
‫Bu nedenle, atanacak bu oyun hakkında tüm farklı bilgilere sahip olmanız gerekir.
‫Aksi takdirde, bu oyun işe yaramaz.
‫Yani burada bile, derecelendirmeyi yaptıktan sonra, hala aynı hatayı alıyoruz.
‫Ancak tüm değerleri atadıktan sonra çalışabiliriz.
‫Yani bir sınıf gibi referansla değil, değerle çalışır.
‫Doğru.
‫Eğer kısa bir özet istiyorsanız, StackOverflow sizin dostunuzdur.
‫Dolayısıyla, her sınıfın destek mirasının kısa bir özeti.
‫Referans prototiplerimiz null olabilir ve yeni örnek başına heap üzerinde belleğe sahip olabilir.
‫Yalnızca yapılar kalıtımı destekleyemez.
‫Değer türlerimiz tamsayılara benzer şekilde değerle aktarılır, daha sonra az önce gördüğünüz gibi null referansa sahip
‫olamaz ve yeni örnek başına yığın üzerinde bir belleğe sahip değildir.
‫Ve her ikisi de bir bileşiğe sahiptir veya tipik olarak bazı mantıksal ilişkilere sahip birkaç değişkeni içermek
‫için kullanılan bileşik veri türleridir, yöntemler ve olaylar içerebilir ve arayüzleri destekleyebilir.
‫Simon Stephens sınıfların her zaman heap ve struck'a gitmediğini, her zaman stack'e gitmediğini savunsa
‫da.
‫Tamam.
‫Ve bu StackOverflow girdisi genel olarak yapılar hakkında oldukça değerli bilgilere sahiptir.
‫Yani fark, yapılar ve sınıflar arasındadır.
‫Ama çoğunu burada gördünüz.
‫Ancak her zaman olduğu gibi, daha iyi anlamak için her zaman belgelere de göz atmanızı tavsiye ederim.