Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan C# programlama dili eğitim içeriğidir. Eğitmen, nesne yönelimli programlama kavramlarını örneklerle açıklamaktadır.
- Video, değer (value) ve referans (reference) tiplerinin temel farklarını, bellekteki çalışma prensiplerini ve miras kavramını anlatmaktadır. İçerik, integer değişken ve array örnekleri üzerinden değer tiplerinin stack'te, referans tiplerinin ise hem stack hem de heap'te nasıl saklandığını göstermekte, ardından "Person", "Customer" ve "Employee" sınıfları üzerinden miras kavramını ve soyutlama prensiplerini kod örnekleriyle açıklamaktadır.
- Bu konunun, ileride dependency injection, kurumsal mimariler, sürdürülebilirlik, tasarım desenleri, clean code ve SOLID gibi konuları anlamak için temel olduğunu vurgulamaktadır. Eğitmen, "Person Manager" sınıfı üzerinden bu sınıfların nasıl çağrılacağını ve aynı kodun farklı nesneler için nasıl çalıştırılabileceğini de göstermektedir.
- 00:00Değer ve Referans Tipleri Tanıtımı
- Nesne yönelimli programlamayı özümsemek için değer ve referans tipleri konusu ele alınacak.
- Değer tipleri (value types) ve referans tipleri arasındaki farklar açıklanacak.
- 01:16Değer Tipleri Örneği
- "int sayıBir = sayıİki" ve "sayıİki = 100" kodları çalıştırıldığında, "sayıBir" değişkeninin değeri 20 olarak kalır.
- Değer tipleri (int, decimal, float, boolean) atama yapıldığında, yeni değer atanır ve eski değerle bağlantı kalmaz.
- Değer tipleri bellekte "stack" alanında saklanır.
- 07:00Referans Tipleri Örneği
- "int[] sayılarBir = new int[] { 1, 2, 3 }" ve "sayılarİki = new int[] { 10, 20, 30}" kodları çalıştırıldığında, "sayılarBir" değişkeninin sıfırıncı elemanı 1000 olarak değişir.
- Array, class ve interface gibi tipler referans tipleridir.
- Referans tipler bellekte "heap" alanında saklanır ve "new" anahtar kelimesi ile bir adres oluşturulur.
- 11:43Referans Tiplerinin Çalışma Prensibi
- "new" anahtar kelimesi ile referans tip tanımlandığında, heap'te bir adres oluşur ve değerler bu adrese atanır.
- Referans tipleri, bellekteki adres değerlerini kullanarak verilere erişir.
- Referans tipi tanımlanırken "new" anahtar kelimesi kullanılmazsa, değişkene değer atanamaz çünkü karşılığı yoktur.
- 13:45Referans Tiplerde Değer Eşitlemesi
- Referans tiplerde (array, class veya interface) değer tiplerden farklı olarak "sayılar bir eşittir sayılar iki" ifadesi "sayılar bir'in adresi eşittir sayılar iki'nin adresi" anlamına gelir.
- Referans tiplerde atama yapıldığında, iki değişkenin bellek adresleri aynı olur ve birinde yapılan değişiklik diğerinde de yansır.
- Referans tiplerde bir değişkenin bellek adresi başka bir değişkene atandığında, bellekteki adresler aynı kalır ve birinde yapılan değişiklik diğerinde de etkili olur.
- 16:05Miras ve Referans Tipler
- Class'lar referans tiplerdir ve miras (inheritance) yaparak farklı sınıflar oluşturulabilir.
- Miras alan sınıflar (customer, employe) miras veren sınıfın (person) özelliklerini içerir ve bu özellikler miras alan sınıfta da kullanılabilir.
- Referans tiplerde, bir sınıfın referansını başka bir sınıfa atayabilirsiniz (person üç = customer), ancak farklı sınıfların referanslarını birbirine atayamazsınız (customer = employe).
- 26:30Boxing Kavramı
- Referans tiplerde, bir sınıfın referansını başka bir sınıfa atadığınızda, aynı bellek adresine erişirsiniz.
- Boxing (kutu) kavramı, referans tiplerde farklı sınıfların özelliklerine erişim sağlamak için kullanılır.
- Boxing yaparak, bir referans tipini başka bir sınıfa dönüştürerek, o sınıfın özelliklerine erişebilirsiniz.
- 29:10Referans Tipleri ve Soyutlama
- Person Manager örneğinde, temel bir class oluşturup müşteri veya çalışanla çalışabilmek için Person sınıfı kullanılabilir.
- Person sınıfı, hem Customer hem de Employee sınıflarını temsil edebilir, bu da aynı kodu farklı nesneler için çalıştırabilmeyi sağlar.
- Veritabanı programlama örneğinde, farklı veritabanları (MySQL, MS-SQL, Oracle, PostgreSQL) için ayrı kod yazmak yerine, her biri için nesne oluşturup çalıştırabilirsiniz.
- 33:29Soyutlama Kavramının Uygulanması
- Person sınıfı, Customer ve Employee sınıflarının adresini tutabildiği için, Employee gönderildiğinde arka planda Person gönderildiğini ve Employee adresini yerleştirdiğini gösterir.
- Bu video, referans tiplerle ilgili temel bilgiyi vererek, ileride dependency injection, kurumsal mimariler, sürdürülebilirlik, soyutlama, tasarım desenleri ve clean code gibi konuları anlamayı sağlar.
- Bu konu, tecrübeli programcıların bile tam özümseyemediği ve uygulamakta zorluk çektiği bir konudur, ancak bu video sayesinde mülakatlarda en rahat edeceğiniz ve işe alınmanızı sağlayacak kısımlar olacaktır.