Bu eğitim setinde Objective-C Nesne Modeli kavramlarına derinlemesine bakıyoruz Nesne tabanlı programlama dilinin önemli kavramlarını öğrenin ve modelleme işlemlerini uygulamaya koyun Detaylı anlatımlarımız ve interaktif projelerimizin yanı sıra, aldığınız tüm bilgiyi uygulama dünyasında değerlendirebileceksiniz Hemen kaydolun ve kendi Objective-C projelerinize imza atın
Bu makalede, Objective-C nesne modeli ve bu model ile yapılan işlemler ele alınacak. Nesne Yönelimli Programlama (OOP) prensipleri dahilinde oluşturulan nesne modelleri, sınıf hiyerarşisi yapısı ve nesne özellikleri ile tanımlanır. Nesne modeli oluşturma süreci de ayrıca ele alınacaktır.
Bir sınıfın temel nitelikleri, sınıf adı, üst sınıf ve protokol tanımlarını içerir. Özellik tanımları ise yeni bir nesne oluşturulduğunda değerleri atanır. Ayrıca, bir nesnenin metotları, nesne yönelimli programlama ile ilgili fonksiyonları oluşturur ve nesneler arası iletişimi sağlar. Nesne modeli üzerinde gerçekleştirilen işlemler arasında özellik değiştirme, metot çağırma ve sınıf örneklerinin kontrolü yer almaktadır.
Bu makalede ele alınacak konular, Objective-C nesne modeli ve bu model ile ilgili işlemlerin ayrıntılı bir şekilde anlatımını içerecek şekilde hazırlanmıştır.
Nesne Oriented Programming (OOP) Nedir?
OOP, bilgisayar programlama dünyasında bir programlama paradigması olarak adlandırılır. Bu programlama yöntemi, problem çözme yaklaşımında nesnelerin tasarlanmasını ve kullanımını odak noktasına alır. Nesnelere dayalı programlama yaklaşımı kullanılarak, programlar tasarlanır, oluşturulur ve yönetilir.
OOP, birçok programlama dili tarafından desteklenmektedir. Objective-C programlama dili de nesne yönelimli programlama yapabilen programlama dilleri arasında yer almaktadır. Bu sayede, programcılar, programları tasarlarken ve oluştururken nesneleri kullanarak daha verimli ve modüler programlar oluşturabilmektedirler. Nesne yönelimli programlama, programlama dünyasında daha okunaklı, daha az hata yapan ve daha az yorucu programlar oluşturulmasına olanak sağlar.
Nesne Modeli Nedir ve Nasıl Oluşturulur?
Nesne modelinin temel amacı, nesne yönelimli programlama yapmak için bir çerçeve oluşturmaktır. Nesne modeli, bir sınıf hiyerarşisi tanımlar ve bir sınıftaki tüm nesnelerin özelliklerinin ve davranışlarının tanımlandığı yerdir.
Nesne modeli, bir sınıfın özelliklerini tanımlamak ve özellik değerlerini belirlemek için kullanılır. Bu özellikler, nesnenin mevcut durumunun temelini oluşturur ve sınıfta kullanılır. Nesne modeli aynı zamanda, nesne yönelimli programlama yapmak için kullanılabilecek metodları da tanımlar. Bu metodlar, nesnenin davranışlarını yönetmek için kullanılır.
Bir nesne modeli oluşturmak için, öncelikle sınıf oluşturulmalıdır. Sınıf, nesnenin özelliklerini ve davranışlarını tanımlar.
Sınıf oluşturma işlemi, Objective-C dilinde oldukça basittir. Sınıf oluşturmak için, temel nitelikleri tanımlamak ve özellikleri belirlemek yeterlidir.
Sınıf tanımı, sınıf adı, üst sınıf ve protokol dahil olmak üzere temel nitelikleri belirlemenizi gerektirir. Sınıf adı, sınıfı tanımlayan bir isimdir ve benzersiz olması gereklidir. Üst sınıf, var olan bir sınıfa dayanan bir sınıf tanımlamak için kullanılır. Protokoller ise, bir nesne tarafından uygulanması gereken yöntemleri belirtir.
Bir sınıfın özelliklerini tanımlamak için, sınıfın başlık dosyasında özellikleri belirtmeniz gereklidir. Sınıf özellikleri, sınıfın nitelikleri olarak oluşturulur. Sınıf özelliklerinin her biri, sınıfın özelliklerinden biri haline gelir. Sınıf özelliklerini kullanarak, sınıf özelliklerinin türleri ve özellik değerleri belirtilir.
Gördüğünüz gibi, bir nesne modeli oluşturmak oldukça basit bir işlemdir. Sınıf ve özellik tanımlamak, nesne yönelimli programlama yapmak için temel adımlardır.
Sınıf Oluşturma
Bir sınıf oluşturmak için, sınıfın temel niteliklerinin tanımlanması gerekiyor. Bu işlem için sınıf tanımlama ve özellikleri tanımlama adımları gerçekleştirilmelidir.
Sınıf tanımlama işlemi, sınıfın adı ile başlar. Daha sonra sınıfın üst sınıfı ve sınıfın uygulayacağı protokoller belirtilir.
Aşağıdaki örnek, sınıfla ilgili daha iyi bir anlayış sağlayabilir:
```objective-c@interface Yazar : NSObject
@property NSString *isim;@property NSString *meslek;
@end```
Bu örnekte, sınıfın adı "Yazar" ve üst sınıfı "NSObject". "isim" ve "meslek" özellikleri sınıfın özellikleridir.
Sınıfın özelliklerinin tanımlanması, @property sözcüğü ile yapılır. Özellik ismi ve veri tipi tanımlanır.
Aşağıdaki örnek, sınıfın özelliklerini tanımlıyor:
```objective-c@interface Yazar : NSObject
@property NSString *isim;@property NSString *meslek;
@end```
Bu örnekte, "isim" ve "meslek" özellikleri, her ikisi de NSString veri tipindedir.
Sınıf oluşturma işlemi, temel olarak sınıf tanımlama ve özellikleri tanımlama adımlarından oluşur. Doğru bir şekilde yapılandırıldığında, sınıf yönelimli programlama için kullanılabilir ve nesnelerin oluşturulmasını ve manipüle edilmesini sağlar.
Sınıf Tanımlama
Sınıf tanımlama, nesne modeli oluşturmanın temel adımlarından biridir ve bir sınıfın niteliklerini belirlemek için kullanılır. Sınıfın oluşturulması, başka bir sınıftan kalıtım alarak veya tamamen yeni bir sınıf oluşturarak gerçekleştirilebilir. Sınıf tanımlama sürecinde, sınıfın adı, üst sınıfı ve protokol dahil olmak üzere temel nitelikleri belirtilir.
Sınıfın adı, tanımlanacak olan sınıfın ismidir ve sonradan bu isimle sınıfa erişilir. Üst sınıf, sınıfın miras aldığı sınıfı gösterir. Böylece, üst sınıftaki özellikler, alt sınıfta da kullanılabilir hale gelir. Protokol, sınıfın uygulayacağı metotları belirtir ve sınıf, protokollerle iletişim kurmasını sağlar.
Nitelik Adı | Tanımı |
---|---|
Sınıf Adı | Sınıfın adı belirtilir. |
Üst Sınıf | Sınıfın miras aldığı üst sınıf belirtilir. |
Protokol | Sınıfın uygulayacağı protokol belirtilir. |
Sınıf tanımlama aşamasında, sınıfın niteliklerinin doğru şekilde belirlenmesi oldukça önemlidir. Niteliklerin eksik ya da yanlış belirlenmesi, nesne modelinin doğru çalışmamasına neden olabilir. Sınıf tanımlaması tamamlandıktan sonra, sınıf kullanılmak için hazır hale gelir ve nesne oluşturma işlemine geçilebilir.
Özellikleri Tanımlama
Özellikleri tanımlamak, nesneye veri depolama yeteneği kazandırır. Bu depolama, yapılacak işlemler için temel görevi üstlenir. Nesne oluşturma sırasında, özelliklerin hangi türde olduğunu belirtmek, kullanım sürecinde hata yapmadan özellik değerlerini kontrol etmeyi sağlar. Özelliklerin tanımlanması için sınıf dosyasında birkaç yöntem kullanılır. Bunlardan biri public özellik tanımlama yöntemi olarak bilinen yaklaşım olup, bir diğeri ise private özellik tanımlama yöntemidir. Public özelliklere herkes erişebildiği için, genellikle sınıfın dışarıdan kullanılması gereken özellikleri olarak belirtilir. Private özellik tanımlama yöntemi ise sadece sınıfın kendisi tarafından kullanılır ve diğer kodlar tarafından erişilemez.
Özellik Adı | Açıklama |
---|---|
isim | Nesnenin adını depolar. |
yaş | Nesnenin yaşını depolar. |
cinsiyet | Nesnenin cinsiyetini depolar. |
boy | Nesnenin boyunu depolar. |
Sınıf dosyasından bir nesne örneği oluşturulduğunda, özelliklerin varsayılan değerleri atanır. Varsayılan değerleri atanmayan özellikler, nil değeri olarak tanımlanır. Özelliklerin değeri üzerinde yapılan değişiklikler, nesnenin yeni özellik durumunu belirlemesine ve sınıfta değişiklik yapılmasına neden olabilir. Sınıflar başkaları tarafından kullanıldığında, sınıfın özelliklerinin düzeni, okunaklı ve anlaşılır olmalıdır. Bunun yanı sıra özellikleri tanımlarken uygun veri türleri seçerek hata yapmayı da engelleyebilirsiniz.
Nesne Oluşturma
Bir nesne, nesne modelinde tanımlanan bir sınıfın örneği olarak oluşturulabilir. Sınıfın özellikleri, nesnenin özellikleri olarak atanır. Nesne oluşturma işlemi, sınıfın adının ve açılan ve kapatılan parantezlerin kullanıldığı bir kod satırı ile gerçekleştirilir.
Kod Satırı | Açıklama |
---|---|
ClassName *instanceName = [[ClassName alloc] init]; | ClassName sınıfından instanceName adında bir örnek oluşturulur. |
İlk olarak, sınıfın adı "ClassName" olarak belirtilir. Daha sonra, bir yıldız işareti ile birlikte "instanceName" adı verilen bir işaretçi oluşturulur. Bu işaretçi, sınıfın örneklerine bir referanstır. İşaretçi, nesne oluşturmak için "alloc" metoduyla birlikte kullanılır. "Alloc" metodunun amacı, nesne bellekte bir alan ayırır ve onun örneğini verir. Son adımda ise "init" metodu çağrılır ve nesne ilk değerlerine sahip hale getirilir.
Nesne oluşturma işlemi, belirli bir sınıf için birden fazla nesne oluşturulmasına izin verir. Her nesne, birbirinden farklı özellik değerlerine sahip olabilir ve aynı zamanda sınıfın tüm metodlarını kullanabilir.
İlk Değerleri Ayarlama
Objective-C nesne modeli oluşturulduktan sonra, yeni bir nesne oluşturulabilir. Bu süreçte, nesnenin özellik değerleri ayarlanır. Yeni bir nesne yaratılırken, özelliklerinin ilk değerleri tanımlanmalıdır. Bu değerler, nesnenin kullanımına hazır olan temel değerlerdir.
Örneğin, oyuncak bir araba nesnesi oluşturmak istediğimizde, nesnenin renk, boyut ve model gibi özellikleri belirleyebiliriz. Bu özellikler, nesnenin ilk değerleri olarak sabitlenir ve oyuncak araba nesnesi oluşturulduğunda ayarlanır. Nesnenin özellikleri, sınıf tanımlaması sırasında belirtildiği gibi, özellikleri için tanımlanan veri tipleri kullanılarak şekillendirilir.
Yeni bir nesne oluşturulduğunda, ilk değerleri ayarlamak için bir yöntem kullanılabilir. Bu yöntem, özellikleri doğrudan atama veya özel bir fonksiyon kullanarak ayarlamayı içerebilir. Yine oyuncak araba örneğinde, ilk değerler sınıf kurucusunda belirlenerek ayarlanabilir. Bu süreç, nesnenin kullanılmaya hazır hale gelmesini sağlar.
İlk değerleri ayarlama işlemleri, nesne modeli oluşturmanın önemli bir parçasıdır. Nesnenin özelliklerinin doğru bir şekilde tanımlanması, nesnenin doğru kullanımı için gereklidir. Ayrıca, bu özelliklerin ayarlanması, nesnenin işlevselliğinin tam olarak kullanılmasına olanak tanır.
Metodlar Oluşturma
Nesne yönelimli programlama yapmak için metotlar oluşturmak oldukça önemlidir. Bir metot, belirli bir işlemin gerçekleştirilmesi için yazılmış bir fonksiyondur.
Bir metot oluşturmak için, öncelikle sınıf içerisinde gerekli değişken ve işlevleri tanımlayın. Metotların yapacağı işlemler belirlendikten sonra, metot adı, parametreleri ve döndürdüğü değerler belirtilmelidir. Metotlar, programlamada sıklıkla kullanılan if-else, switch-case gibi kontrol yapıları ile de desteklenebilir.
Bir sınıf içinde birden fazla metot tanımlanabilir. Bu metotlar belirli bir işlemi yerine getirmek için bir arada kullanılabilir. Metotlar, değişkenler ve diğer matematiksel işlemlerle bir arada kullanılarak kodunuzun daha etkili bir şekilde işlemesi sağlanabilir.
Objective-C dilinde metotlar, “-” veya “+” ile başlar. “+” sembolü, sınıf metodunu, “-” sembolü ise örnek metotunu belirtir. Sınıf metotları, sınıfın kendisiyle ilgili işlemleri gerçekleştirirken örnek metotları, örnek üzerinde ilgili işlemleri yürütmek için kullanılır.
Sınıf metotları genellikle belirli bir sınıfın her örneği tarafından paylaşılırken, örnek metotları örneğe özel verileri işler. Böylece, her örnek farklı verileri işleyebilir. Bu nedenle, örnek metotları, programlama dilinde daha sık kullanılır.
Nesne Modeli İşlemleri
Nesne modeli üzerinde pek çok işlem gerçekleştirilebilir. Bu işlemler arasında özellik değiştirme, metot çağırma ve sınıf örneklerinin kontrolü yer alır.
Bir nesnenin özellikleri, ilgili özelliğin adı ve yeni değeri belirtilerek değiştirilebilir. Örneğin, "nesne1.ad = 'Yeni Ad'" ifadesi, "nesne1" nesnesinin "ad" özelliğinin "Yeni Ad" olarak değiştirilmesi anlamına gelir.
Bir nesnenin metodları, nesneden örnek çağrısı yaparak çalıştırılabilir. Örneğin, "nesne1.metot1()" ifadesi, "nesne1" nesnesinin "metot1" metodunu çağırmak için kullanılır.
Bir sınıfın örnek üretip üretemediği, sınıfın özellikleri ve kalıtıldığı sınıfın incelenmesiyle kontrol edilebilir. Örneğin, "type(nesne1)" ifadesi, "nesne1" nesnesinin sınıfını çıkarmak için kullanılır.
Özetle, nesne modeli üzerinde gerçekleştirilebilecek işlemler oldukça çeşitlidir ve bu işlemleri anlamak, nesne yönelimli programlamanın gerekliliklerinden biridir.
Özellik Değiştirme
Bir nesne oluşturulduğunda, özelliğinin değerleri sınıf tanımında belirtildiği gibi atanır. Ancak, nesnenin özellikleri işlevselliği değerli hale getirebilecek şekilde zaman içinde değiştirilebilir. Bunun için özellik değerleri belirtilerek değiştirilir.
Özellik değerleri değiştirilirken dikkat edilmesi gereken en önemli şey, nesnenin özelliklerine uygun tipte ve değerde olmasıdır. Aksi takdirde program hata verebilir. Örnek olarak, bir özelliğin tipi integer iken, o özelliğe string bir değer atamak hata verecektir.
Özel bir durum olarak, ayarlanan özellik değeri, "readonly" olarak belirlenmişse, özelliğin değiştirilmesi programda hata verecektir. Bu nedenle, ilgili sınıf tanımından özelliği yazarken "readwrite" olarak belirtilmesi gerekir.
Aynı zamanda, bir özelliğe erişmek için genellikle "getter" ve "setter" metotları kullanılır. "getter" metodu, özelliğin mevcut değerini döndürürken, "setter" metodu özelliğe yeni bir değer atar.
Orijinal Özellik Değeri | Değiştirilen Özellik Değeri |
---|---|
35 | 42 |
"John Doe" | "Jane Doe" |
Özellik değiştirme işlemi, üretilen nesnelerin işleyişinde önemli bir yer tutar ve birçok senaryoda kullanılır.
Metot Çağırma
Objective-C nesne modelinde, bir nesnenin metodları, nesneden örnek çağrısı yapılarak çalıştırılabilir. Bir nesne oluşturulduktan sonra, nesnenin metodlarına erişmek için nokta operatörü kullanabilirsiniz. Bu operatör, metot adlarını ve kullanılacak argümanları belirtmenizi sağlar.
Metot çağırırken kullanılacak argümanlar, parantez içinde belirtilen değerlerdir. Bir metot, bir veya daha fazla argümana sahip olabilir ve argüman sayısı belirlenmiş bir metotu çağırırken tüm argümanlar belirtilmelidir. Argümanlar, virgülle ayrılmış bir dizi şeklinde belirtilir.
Metot Çağırmak İçin Kullanılacak Kod Parçacığı | Açıklama |
---|---|
noktaOperatörü.[metotAdı]() | Bir nesnenin metotlarına erişmek için kullanılan ve metot adının nokta operatörü ile birlikte kullanıldığı kod parçacığıdır. |
noktaOperatörü.[metotAdı](argüman1, argüman2, ..., argümanN) | Metot çağırırken kullanılacak argümanların virgülle ayrılmış bir şekilde belirtildiği kod parçacığıdır. |
Bir nesnenin metotlarını çalıştırırken, aynı zamanda geri dönüş değerini de alabilirsiniz. Metotlar bir değer döndürüyorsa, bunu bir değişkene atayabilirsiniz. Bu şekilde, metodu çağırmadan önce ve sonra oluşan değişiklikleri karşılaştırabilirsiniz.
Metot çağırma, Objective-C nesne modelinde çok önemli bir işlemdir. Nesne yönelimli programlamada, bir nesnenin davranışlarını kontrol etmek, sınıfları özelleştirmek veya kullanıcı etkileşimlerine uygun bir arayüz oluşturmak için metotlar kullanılır. Nesnenin durumunu değiştirmek veya değiştirmeden bir işlem gerçekleştirmek için, doğru metodu çağırmak önemlidir.
Sınıf Örneklerinin Kontrolü
Nesne modeliyle ilgili yapılabilecek işlemlerin sonuncusu ise sınıf örneklerinin kontrolüdür. Bu işlem adımında, bir sınıfın örnek üretip üretemediği, sınıfın özellikleri ve kalıtıldığı sınıfın incelenmesiyle kontrol edilebilir.
Bu işlem, özellikle örneklerin diğer sınıflarla karşılaştırıldığı durumlarda kullanışlıdır. Sınıfın özelliklerine bakılarak hangi durumlarda örnek üretilebileceği belirlenebilir. Eğer sınıf özellikleri doğru ayarlanmışsa, bu sınıftan örnek oluşturmak mümkün olacaktır.
Bir sınıfın özelliklerine ve özelliklerinin nasıl ayarlandığına bakarak, sınıf diğer sınıflardan kalıtım yapıyor mu anlaşılabilir. Eğer kalıtım yapıyorsa, kalıtıldığı sınıfların özellikleri de bu sınıfın özelliklerini etkiler. Bu nedenle, sınıfın özellikleri ve kalıtım durumu incelenerek sınıf hakkında daha fazla bilgi edinilebilir.