Sınıflar ve Yapılar
Nesneye Dayalı (OO) programlama dillerinin bazı temel kavramları kapsülleme, kalıtım ve polimorfizmdir. Sınıf ve Yapı, programcıların bu kavramları mevcut OO programlama dillerinin çoğunda elde etmelerine yardımcı olan OO yapılarından / araçlarından ikisidir (Java, yapılar sağlamaz). Sınıflar, gerçek dünyadaki nesnelerin soyut bir temsilidir. Yapılar benzer kullanıma sahip sınıflara çok benzer, ancak sınıflarla karşılaştırıldığında çok az sınırlaması vardır. Hem sınıflar hem de yapılar benzer veri türlerini birlikte gruplamak için kullanılır.
Sınıflar nedir?
Sınıflar gerçek dünyadaki nesnelerin soyut temsilini gösterirken, ilişkiler her sınıfın başkalarıyla nasıl bağlantılı olduğunu gösterir. Hem sınıflar hem de ilişkiler, öznitelik adı verilen özelliklere sahiptir. Sınıflardaki yöntemler, bu sınıfların davranışlarını temsil eder veya tanımlar. Sınıfların yöntemleri ve nitelikleri sınıfın üyeleri olarak adlandırılır. Tipik olarak, kapsülleme, öznitelikleri özel hale getirerek ve bu özniteliklere erişmek için kullanılabilecek genel yöntemler oluşturularak elde edilir. Nesne bir sınıf örneğidir. Kalıtım, kullanıcının sınıfları (alt sınıflar olarak adlandırılır) diğer sınıflardan (süper sınıflar olarak adlandırılır) genişletmesine olanak tanır. Polimorfizm, programcının süper sınıfının bir nesnesi yerine bir sınıfın bir nesnesini değiştirmesine izin verir. Tipik olarak, problem tanımında bulunan isimler doğrudan programda sınıf haline gelir. Ve benzer şekilde, fiiller yöntem haline gelir. Genel, özel ve korumalı sınıflar için kullanılan tipik erişim değiştiricileridir. Sınıf diyagramı sistem sınıflarını, sınıflar arasındaki ilişkileri ve niteliklerini gösterir.
Yapılar nelerdir?
Yukarıda belirtildiği gibi, yapılar benzer bir kullanıma sahip sınıflara çok benzer, ancak sınıflardan biraz sınırlı yeteneklerdir. Aslında, sınıflar yapıların bir uzantısı olarak düşünülebilir. Örneğin, yapılar C ++ 'daki sınıflarla aynıdır, ancak varsayılan olarak herkese açık üyeleri vardır. Kompozit olan bir türü temsil etmek için kullanıcı tarafından bir yapı tanımlanabilir. Sınıflara benzer şekilde, yapılar birçok türe ait olabilecek üyeler içerir. Yapı anahtar kelimesi C ve C ++ 'da bir yapı tanımlamak için kullanılırken Yapı anahtar kelimesi .NET programlama dillerinde aynı için kullanılır.
Sınıflar ve Yapılar arasındaki fark nedir?
Hem sınıflar hem de yapılar programlama dillerinde bulunan benzer yapılar olsa da, ince farkları vardır. Tipik olarak, sınıf yapının bir uzantısıdır ve bu nedenle yapıların bazı göreceli sınırlamaları vardır. Örneğin, yapılar C ++ sınıfları ile aynı kabul edilebilir, ancak üyeler sınıflarda varsayılan olarak herkese açık değildir (yapıların aksine). Bu aslında C ++ 'da uygun erişim değiştiricileri kullanarak tam olarak aynı özelliklere sahip bir sınıf ve yapı tanımlayabileceğiniz anlamına gelir. Ancak, C'de, yapılar herhangi bir işlev veya aşırı yüklenmiş işlem içeremez. Class ve struct anahtar sözcükleri, sırasıyla C ++ 'da bir sınıf ve yapı tanımlamak için kullanılır. .NET dilleri (C #, VB.NET, vb.) Söz konusu olduğunda, sınıf bir referans türüdür, yapı bir değer türüdür. Ve genellikle, yapılar daha küçük nesneler için kullanılır, ancak sınıflar daha uzun süre bellekte tutulan daha büyük nesneler için kullanılır.