1 00:00:00,450 --> 00:00:01,290 ‫Tekrar hoş geldiniz. 2 00:00:01,320 --> 00:00:03,450 ‫Bu videoda yapılar hakkında konuşacağız. 3 00:00:03,450 --> 00:00:11,430 ‫Ve struct'lar sınıflara çok benzer, ancak sınıflar referans türleridir ve struct'lar değer türleridir, yani 4 00:00:11,430 --> 00:00:16,350 ‫bir sınıfın nesnesini oluşturursanız, hiçbir şey içermeyebilir. 5 00:00:16,350 --> 00:00:19,800 ‫Yani boş olabilir, ancak bir struct bir değere sahip olmalıdır. 6 00:00:19,950 --> 00:00:26,190 ‫Oyun adında bir struct oluşturalım, böylece struct anahtar sözcüğünü kullanır ve sonra ona bir ad verirsiniz. 7 00:00:26,190 --> 00:00:29,280 ‫Yani görebildiğiniz kadarıyla bir sınıfa çok benziyor. 8 00:00:29,280 --> 00:00:33,690 ‫Yani burada bu isim var ve sonra devam edip burada değişkenler oluşturabilirsiniz. 9 00:00:33,690 --> 00:00:39,510 ‫Bu yüzden name adında bir tane oluşturacağım, sonra developer adında bir 10 00:00:40,230 --> 00:00:44,760 ‫tane oluşturacağım ve bir tane de rating oluşturacağım. 11 00:00:44,850 --> 00:00:50,970 ‫Peki bu oyun nasıl derecelendirildi ve sonra halka açık dize çıkış tarihi? 12 00:00:50,970 --> 00:00:52,410 ‫Peki ne zaman yayınlandı? 13 00:00:52,680 --> 00:00:54,360 ‫Yani bu basit bir yapı. 14 00:00:54,360 --> 00:01:02,460 ‫Şimdi devam edebilir ve bu yapının bir nesnesini oluşturabiliriz, böylece devam edebilir ve diyebiliriz ki, tamam, 15 00:01:02,460 --> 00:01:04,560 ‫oyun, bunun gibi bir oyun. 16 00:01:04,560 --> 00:01:06,030 ‫Şimdi elimizde bu oyun var. 17 00:01:06,030 --> 00:01:11,880 ‫Ancak bu oyunu kullanmak için devam etmemiz ve belirtmemiz gerekiyor. 18 00:01:11,880 --> 00:01:14,190 ‫Bu yüzden oyunun özelliklerine ihtiyacımız var. 19 00:01:14,190 --> 00:01:22,530 ‫Birincisi, örneğin, ismi belirlememiz gerekiyor ve diyelim ki Pokémon Go oldu, o zaman birinci oyunun bir geliştiricisi olması 20 00:01:22,530 --> 00:01:23,640 ‫gerekiyor. 21 00:01:24,750 --> 00:01:32,550 ‫Bu yüzden Niantic gibi bir şey söyleyeceğiz ve ardından Game one'ın bir derecelendirmeye sahip olması gerekiyor. 22 00:01:33,250 --> 00:01:40,380 ‫Diyelim ki 3'tü. Beş üzerinden 5 yıldız ve nihayet çıkış tarihi. 23 00:01:40,740 --> 00:01:43,770 ‫Böylece değerleri bu şekilde ayarlayabilirsiniz. 24 00:01:43,770 --> 00:01:48,120 ‫Yani bir sınıfla yaptığınız şeye çok benziyor, değil mi? 25 00:01:48,540 --> 00:01:55,770 ‫Bu yüzden 2016'da piyasaya sürüldü ve burada sahip olduğumuz oyun yapımız bu. 26 00:01:55,770 --> 00:02:00,540 ‫Şimdi devam edebilir ve oyun bilgilerini konsola yazabiliriz. 27 00:02:00,540 --> 00:02:03,630 ‫Diyelim ki oyunun adını yazmak istiyoruz. 28 00:02:03,630 --> 00:02:07,590 ‫CW Game 1. 29 00:02:09,980 --> 00:02:22,610 ‫Ve adı ve sonra küme parantezleri sıfır ve oyun nokta adı veya aslında oyun bir adı. 30 00:02:23,570 --> 00:02:29,480 ‫Gördüğünüz gibi, basitçe devam edebilir ve değişkenleri çağırabilirsiniz, böylece sadece isimle değil, aynı 31 00:02:29,780 --> 00:02:30,860 ‫şeyi yapabiliriz. 32 00:02:30,860 --> 00:02:33,200 ‫Bunu diğer her şey için de yapabiliriz. 33 00:02:33,210 --> 00:02:34,910 ‫O yüzden bunu kopyalayacağım. 34 00:02:35,000 --> 00:02:43,490 ‫Oyun bir tarafından geliştirildi ve şimdi oyunun adı değil, geliştiricisi. 35 00:02:44,120 --> 00:02:45,800 ‫Burada da aynı. 36 00:02:47,420 --> 00:02:50,540 ‫Reyting birinci oyunun. 37 00:02:51,680 --> 00:02:55,580 ‫Derecelendirme ve işte derecelendirme. 38 00:02:56,210 --> 00:03:05,960 ‫Ve son olarak, game one yeniden çıkış tarihinde piyasaya sürüldü. 39 00:03:08,320 --> 00:03:09,430 ‫Şimdi çalıştıralım. 40 00:03:10,840 --> 00:03:17,110 ‫Kırmızı tuşu konsolla ve neler olduğunu görelim. 41 00:03:18,800 --> 00:03:19,880 ‫Ve biz bir oyunuz. 42 00:03:19,880 --> 00:03:21,440 ‫Birinin adı Pokemon Go. 43 00:03:21,470 --> 00:03:23,780 ‫Birinci oyun Niantic tarafından geliştirilmiştir. 44 00:03:23,960 --> 00:03:29,120 ‫Puan 3. 5 ve 1 Temmuz 2016'da piyasaya sürüldü. 45 00:03:29,150 --> 00:03:29,750 ‫Tamam. 46 00:03:29,750 --> 00:03:31,310 ‫Öyleyse öyleyiz. 47 00:03:31,340 --> 00:03:35,030 ‫Çok basit ve bir sınıfa çok benziyor. 48 00:03:35,030 --> 00:03:35,600 ‫Doğru. 49 00:03:36,590 --> 00:03:37,970 ‫Peki farkı nedir? 50 00:03:38,000 --> 00:03:40,430 ‫Farklı olmayan bir şey daha var. 51 00:03:40,910 --> 00:03:47,270 ‫Bu yüzden, bilgileri görüntülemesi gereken public void display oluşturacağım. 52 00:03:47,270 --> 00:03:52,070 ‫Ve yapacağım şey, tüm bunları orada uygulamak olacak. 53 00:03:52,070 --> 00:03:54,770 ‫Bu yüzden bana ismi verecek. 54 00:03:54,770 --> 00:03:56,750 ‫Bana geliştiriciyi verecek. 55 00:03:56,900 --> 00:04:00,800 ‫Bana reytingi ve çıkış tarihini verecek. 56 00:04:02,000 --> 00:04:02,330 ‫Tamam. 57 00:04:02,360 --> 00:04:09,110 ‫Ş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 58 00:04:09,110 --> 00:04:11,570 ‫görüntüleyin diyerek yapabilirim. 59 00:04:11,840 --> 00:04:15,860 ‫Şimdi tekrar çalıştıralım ve tüm bilgileri aldığımızı görelim. 60 00:04:16,190 --> 00:04:16,580 ‫Tamam. 61 00:04:16,580 --> 00:04:18,740 ‫Böylece değişkenler oluşturabilirsiniz. 62 00:04:18,740 --> 00:04:19,670 ‫Yöntemler oluşturabilirsiniz. 63 00:04:19,670 --> 00:04:20,520 ‫Ama nasıl bir farkı var? 64 00:04:20,540 --> 00:04:27,980 ‫Yapamayacağınız şey bir kurucu oluşturamamaktır. 65 00:04:28,520 --> 00:04:32,480 ‫Yapılar açık parametre içermeyen kurucular içeremez. 66 00:04:32,690 --> 00:04:35,300 ‫Yani burada varsayılan kurucular oluşturamazsınız. 67 00:04:35,840 --> 00:04:38,840 ‫Daha sonra bir veya daha fazla arayüz uygulayabilir. 68 00:04:38,840 --> 00:04:44,930 ‫Böylece devam edebilir ve temizlenebilir, karşılaştırılabilir bu tür arayüzleri burada uygulayabilirsiniz. 69 00:04:46,070 --> 00:04:48,950 ‫O halde mirası desteklemiyorlar. 70 00:04:48,950 --> 00:04:51,770 ‫Yani yapılar üzerinde kalıtım kullanamazsınız. 71 00:04:51,980 --> 00:04:53,750 ‫Varsayılan bir kurucunuz olamaz. 72 00:04:53,750 --> 00:05:01,460 ‫Dediğim gibi, struct üyeleri soyut, sanal veya korumalı olarak belirtilemez, bu nedenle sadece public gibi 73 00:05:01,460 --> 00:05:03,080 ‫bir şey olabilirler. 74 00:05:03,080 --> 00:05:06,110 ‫Yani genel bir yapıya ya da özel bir yapıya sahip olabilirsiniz. 75 00:05:08,590 --> 00:05:11,320 ‫Ancak yapıların tanımlanmış kurucuları olabilir. 76 00:05:11,320 --> 00:05:17,500 ‫Böylece public game gibi bir şeye sahip olabilirsiniz ve burada dize adınız vardır. 77 00:05:18,280 --> 00:05:30,790 ‫Buna sahip olabilirsiniz ve bu isim olacaktır veya bu isim eşittir isim ve bu nokta geliştirici eşittir geliştirici. 78 00:05:32,260 --> 00:05:35,200 ‫Yıldız derecelendirmesi eşit derecelendirmedir. 79 00:05:35,200 --> 00:05:39,640 ‫Ve bu DOT çıkış tarihi eşit çıkış tarihidir. 80 00:05:39,670 --> 00:05:41,710 ‫Şimdi, tabii ki onları burada tutmanız gerekiyor. 81 00:05:41,710 --> 00:05:50,050 ‫Dize geliştiricisi, ardından çift derecelendirme ve dize yayın tarihi. 82 00:05:50,980 --> 00:06:00,910 ‫Ancak, örneğin, devam edip burada display yöntemini görüntülemek isterseniz, atanmamış yerel değişken game one 83 00:06:00,910 --> 00:06:05,690 ‫kullanımı nedeniyle bir hatayla karşılaşırsınız. 84 00:06:05,710 --> 00:06:08,320 ‫Yani birinci oyun atanmamıştı. 85 00:06:08,320 --> 00:06:16,060 ‫Diyelim ki buraya kadar tüm bilgileri edindikten sonra denemiş olsam bile, yine de bir hata olduğunu görüyorsunuz. 86 00:06:16,060 --> 00:06:21,520 ‫Bu nedenle, atanacak bu oyun hakkında tüm farklı bilgilere sahip olmanız gerekir. 87 00:06:21,550 --> 00:06:23,380 ‫Aksi takdirde, bu oyun işe yaramaz. 88 00:06:23,380 --> 00:06:27,490 ‫Yani burada bile, derecelendirmeyi yaptıktan sonra, hala aynı hatayı alıyoruz. 89 00:06:27,520 --> 00:06:30,940 ‫Ancak tüm değerleri atadıktan sonra çalışabiliriz. 90 00:06:30,940 --> 00:06:36,390 ‫Yani bir sınıf gibi referansla değil, değerle çalışır. 91 00:06:36,400 --> 00:06:37,000 ‫Doğru. 92 00:06:38,050 --> 00:06:42,760 ‫Eğer kısa bir özet istiyorsanız, StackOverflow sizin dostunuzdur. 93 00:06:42,760 --> 00:06:47,410 ‫Dolayısıyla, her sınıfın destek mirasının kısa bir özeti. 94 00:06:47,410 --> 00:06:52,840 ‫Referans prototiplerimiz null olabilir ve yeni örnek başına heap üzerinde belleğe sahip olabilir. 95 00:06:52,840 --> 00:06:55,900 ‫Yalnızca yapılar kalıtımı destekleyemez. 96 00:06:55,900 --> 00:07:02,950 ‫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 97 00:07:02,950 --> 00:07:07,390 ‫olamaz ve yeni örnek başına yığın üzerinde bir belleğe sahip değildir. 98 00:07:07,390 --> 00:07:13,360 ‫Ve her ikisi de bir bileşiğe sahiptir veya tipik olarak bazı mantıksal ilişkilere sahip birkaç değişkeni içermek 99 00:07:13,360 --> 00:07:19,180 ‫için kullanılan bileşik veri türleridir, yöntemler ve olaylar içerebilir ve arayüzleri destekleyebilir. 100 00:07:20,980 --> 00:07:27,640 ‫Simon Stephens sınıfların her zaman heap ve struck'a gitmediğini, her zaman stack'e gitmediğini savunsa 101 00:07:27,640 --> 00:07:28,360 ‫da. 102 00:07:28,690 --> 00:07:29,020 ‫Tamam. 103 00:07:29,020 --> 00:07:34,780 ‫Ve bu StackOverflow girdisi genel olarak yapılar hakkında oldukça değerli bilgilere sahiptir. 104 00:07:34,780 --> 00:07:37,630 ‫Yani fark, yapılar ve sınıflar arasındadır. 105 00:07:37,630 --> 00:07:39,880 ‫Ama çoğunu burada gördünüz. 106 00:07:39,880 --> 00:07:45,880 ‫Ancak her zaman olduğu gibi, daha iyi anlamak için her zaman belgelere de göz atmanızı tavsiye ederim.