Bu kılavuzda, Objective-C'de nesne yaratmanın adımlarını öğreneceksiniz Adım adım takip edin ve diğer programlama diline geçmeden önce gerekli temelleri öğrenin Yeni başlayanlar için harika bir kaynak!

Objective-C, Apple tarafından geliştirilen ve iOS ve macOS uygulamaları yazmak için kullanılan bir programlama dilidir. Bu makalede, Objective-C'de nasıl nesne oluşturulacağı ve özelliklerinin nasıl tanımlandığı adım adım açıklanmaktadır. Objective-C'de nesne, bir sınıftan oluşan ve belirli bir amaca hizmet eden bir yapıdır. Bu nesneler, sınıfların özelliklerini ve metodlarını içerirler.
Objective-C'de nesne oluşturma süreci sınıfın tanımlanması, özelliklerin ve metodların tanımlanması, nesnenin oluşturulması ve kullanılması olarak dört adımdan oluşmaktadır. Sınıf, nesnenin temelini oluşturur ve nesnenin özelliklerini ve metodlarını içerir. Sınıf tanımlaması yaparken dikkat edilmesi gerekenler arasında, sınıfın adının benzersiz olması, özellik ve metod tanımlamalarındaki uygunluk ve eksiksizlik yer almaktadır.
- Sınıfın Tanımlanması: Sınıfın tanımlanması için @interface anahtar kelimesi kullanılır. Sınıf adı ve süslü parantezler arasında, özellik ve metod tanımlamaları için yeterli alan bırakılmalıdır. Özellikler, instace variables olarak tanımlanırken, metodlar ise işlevler olarak tanımlanır.
- Özelliklerin Tanımlanması: Sınıf içindeki özelliklerin tanımlanması için @property anahtar kelimesi kullanılır. Bu anahtar kelimesi ile özelliklerin veri tipi, set ve get metodları belirlenir.
- Metodların Tanımlanması: Sınıf içindeki metodların tanımlanması için aşağıdaki gibi bir yapı kullanılır:
- (int)topla:(int)sayi1 sayi2:(int)sayi2{ int toplam = sayi1 + sayi2; return toplam;}
Nesne oluşturma aşamasında ise öncelikle sınıftan bir nesne oluşturulur. Nesne, oluşturulduktan sonra sınıfın özellikleri ve metodları kullanılabilir hale gelir. Bunun için [SınıfAdi new] şeklinde bir nesne oluşturma komutu kullanılır.
En son olarak, oluşturulan nesnenin özellik ve metodları kullanılarak belirli işlemler yapılabilmektedir. Bu sayede, Objective-C'de nesne kullanımı oldukça esnektir ve programlama işlemlerinde önemli bir yere sahiptir.
Nesne Nedir?
Objective-C'de nesne kavramı, programlama dillerinin en temel kavramlarından biridir. Nesne, veri ve işlevselliği bir arada tutan bir yapıdır. Nesneler, bir sınıfın örneği olarak düşünülebilirler.
Objective-C dilinde nesne, bir sınıfın örneği olarak tanımlanır. Her sınıf, üyeleri olarak özellikler ve metodlar barındırır. Özellikler, nesnenin değişkenleridir ve nesne durumunu, metodlar ise nesnenin işlevselliğini sağlarlar.
Bir sınıfın örneği yeni bir nesne oluşturmak için kullanılır. Nesne, sınıfın oluşturulmuş bir örneğidir ve sınıfta tanımlanmış özelliklere ve metodlara sahiptir. Nesne, belirli bir sınıftan türetilen bir örnektir ve bu örneğin kullanımı, nesnenin özelliklerine ve metodlarına erişmekle mümkündür.
Objective-C'de, sınıf ve nesne kavramları, veri ve işlevselliği organize etmek için kullanılan önemli kavramlardır. Bu nedenle, bir nesnenin nasıl oluşturulacağı ve özelliklerinin nasıl tanımlandığı konusunda bilgi sahibi olmak, Objective-C programlama dili öğrenmek isteyenler için temel bilgi oluşturur.
Nesne Oluşturma Adımları
Objective-C'de nesne oluşturma birkaç adımda gerçekleştirilebilir. İlk adım sınıf tanımlamakla başlar. Sınıf içinde yer alacak özellikler ve metotlar belirlenir. Daha sonra ise bu sınıftan nesne oluşturma adımına geçilir.
Ancak dikkat edilmesi gereken bazı noktalar bulunmaktadır. Öncelikle, sınıf isimlerinin büyük harfle başlaması gerekmektedir. Ayrıca, özelliklerin (property) tanımlandığı kısımda "nonatomic" ve "readwrite" anahtar kelimeleri kullanılmalıdır. "nonatomic" anahtar kelimesi, aynı anda birden fazla işlem yapılırken nesnenin tutarlılığını korumak için kullanılırken, "readwrite" anahtar kelimesi ise okuma ve yazma işlemlerine izin verir.
Sınıf içinde metot tanımlarken ise "-" işareti kullanılmalıdır. Bu işaret, metotun instance method olduğunu belirtir. Ayrıca, metodu çağırmak için nesnenin örneği oluşturulmalıdır. Bu örnek, "-" işaretinden sonra gelir ve metot adından sonra parantez içinde yer alır.
Bunun yanında, sınıf içindeki özellikler ve metotlar belirli erişim belirleyicilerine (access modifiers) sahip olabilirler. Bu belirleyiciler, özelliğin/metonun nereden, nasıl ve kim tarafından erişilebileceğini belirler. Örneğin, "public" erişim belirleyicisi, özelliğin/metonun her yerden erişilebilir hale getirirken "private" erişim belirleyicisi, sadece sınıf içinde erişilebilen bir özelliği/metotu belirtir.
Erişim Belirleyicileri | Açıklama |
---|---|
public | Herkese açık nesne özelliği/metodu |
private | Sadece sınıf içinde erişilebilir nesne özelliği/metodu |
protected | Aynı sınıf ve alt sınıflar içinde erişilebilir nesne özelliği/metodu |
Sınıf tanımlandıktan sonra, oluşturulan nesneyi kullanmak istediğimizde ise "alloc" ve "init" metodları kullanılır. Bu metodlar, nesne yaratma işleminin gerçekleşmesini sağlar ve örneğin özelliklerine atama yapmamıza izin verir.
Tüm bu adımları takip ederek, Objective-C ile nesne oluşturma işlemlerini kolaylıkla gerçekleştirebilirsiniz.
1. Sınıfın Tanımlanması
Objective-C'de nesne yaratmanın ilk adımı sınıfın tanımlanmasıdır. Sınıf, nesnelerin özelliklerini ve davranışlarını belirleyen bir kalıptır. Sınıfı tanımlarken, sınıfın adı ve özellikleri belirtilmelidir.
Bir sınıfı tanımlamak için, aşağıdaki syntax kullanılabilir:
@interface sinifAdi: superSinifAdi{//Değişkenler ve özellikler}//Metodlar@end
Bu syntaxte 'sinifAdi', oluşturulacak sınıfın ismidir. 'superSinifAdi', oluşturulan sınıfın türediği üst sınıfın ismidir. Bu kısım kullanılmayabilir ya da 'NSObject' olarak belirtilebilir.
Ardından '{}' arasında değişkenler ve özellikler belirtilir. Özellikler sınıfın değişkenleri olarak düşünülebilir ve ayrıca aşağıdaki syntax ile de tanımlanabilir:
@property (attributes) type propertyName;
Bu syntaxte, 'attributes' özelliklerin özelliklerini belirtmek için kullanılır. Bazı özellikler şunları içerebilir:
- assign: bellekteki bir alan için zayıf bir referans türü belirtir.
- retain: bir örneği kolaylaştırırken üreten tarafta bir sınıfın adını belirtir.
- copy: bir örneği kolaylaştırırken üreten sınıfın bir kopyasını belirtir.
'type', özelliğin veri tipini belirtir ve 'propertyName', özelliğin adını belirtir.
Ardından, sınıfın metodları tanımlanır. Metodlar, sınıfın davranışını belirler. Aşağıdaki syntax ile bir metod tanımlanabilir:
-(returnType) methodName:(firstArgType) arg1Name;
Bu syntaxte, 'returnType', metodun döndüreceği veri tipidir. 'methodName', metodun adını belirtir. 'argumentType' ve 'arg1Name', metoda geçilecek ilk argümanın veri tipi ve adıdır.
Böylece sınıfın tanımı tamamlanmış olur ve oluşturulan sınıfın özellikleri ve metodları kullanılabilir hale gelir.
Özelliklerin Tanımlanması
Bir sınıfın özellikleri, sınıfın içindeki değişkenler veya nitelikler şeklinde tanımlanır. Bir özellik, sınıfın farklı örnekleri arasında değişebilen bir değerdir. Her özellik, bir veri türüne ve bir adlandırmaya sahiptir.
Objective-C'de özellikler, sınıfın arayüz dosyasında tanımlanabilir. Bir özellik tanımlarken, genellikle, @property ve @synthesize anahtar kelimeleri kullanılır. @property anahtar kelimesi, bir özelliğin herkese açık veya özel olmasını belirtir. Özel özellikler, sınıfın dışındaki kod tarafından doğrudan erişilemeyen yöntemlerle tanımlanır. @synthesize anahtar kelimesi, bir özelliğin özel veri üye değişkenine atanmasını sağlar.
Örneğin:
Kod | Açıklama |
---|---|
@interface Araba : NSObject@property (nonatomic, strong) NSString *marka;@end | Bu kod parçası, Araba sınıfının bir özelliği olan markayı tanımlar. |
@implementation Araba@synthesize marka;@end | Bu kod parçası ise marka özelliğini sınıfın bir üyesi olarak ata. |
Bir sınıfta birden fazla özellik tanımlanabilir. Aynı zamanda, bir özelliğin önceden tanımlanmış bir başka özellikle aynı veri türüne ve özelliğe sahip olması halinde, bir özellik için hem @property hem de @synthesize anahtar kelimeleri kullanılabilir. Ancak, genellikle Objective-C geliştiricileri, özellikleri tanımlarken yalnızca @property anahtar kelimesini kullanır.
Özellik tanımlama aşamaları bu şekildedir. Daha fazla bilgi için Objective-C resmi dökümanlarına göz atmanızı öneririz.
Metodların Tanımlanması
Objective-C programlama dilinde metodlar, belirli görevleri yerine getiren kod bloklarıdır. Sınıf içinde tanımlanarak nesnelerin bu metotları kullanması sağlanır. Metotların adı, dönüş tipi ve parametreleri tanımlanarak oluşturulabilir.
Metod tanımlama yapısı aşağıdaki gibidir:
Metot Adı ve Parametreleri | Dönüş Tipi |
---|---|
- (void)metotAdi:(parametreTipi)parametreAdi | dönüşTipi |
- işareti, metodun public olarak kullanılabileceğini belirtir. void, geriye herhangi bir tipte değer döndürmeyeceği anlamına gelir. Metot adı ve parametreleri tanımlanırken, : işareti kullanılır ve parametre tipi yazılır.
Aşağıdaki örnek kodda, Siparis sınıfı içinde yazılmış siparisAdi, urunAdi ve fiyatHesapla metotları görülmektedir:
- (void)siparisAdiDegistir:(NSString *)yeniSiparisAdi;
- (void)urunAdiDegistir:(NSString *)yeniUrunAdi;
- (float)fiyatHesapla;
Siparis sınıfından nesne oluşturulduktan sonra, bu metodlar nesne üzerinde kullanılabilir. Örneğin;
Siparis *siparis = [[Siparis alloc] init];[siparis siparisAdiDegistir:@"Yeni Sipariş"];[siparis urunAdiDegistir:@"Yeni Ürün"];float fiyat = [siparis fiyatHesapla];
Bu örnekte, siparis nesnesi üzerinde siparisAdiDegistir, urunAdiDegistir ve fiyatHesapla metotları kullanılmıştır.
Metotların tanımlanması ve kullanımı, Objective-C programlama dilinde oldukça önemlidir ve örnek kodlar ile kolaylıkla öğrenilebilir.
2. Nesne Oluşturma
Objective-C'de nesne oluşturma işlemi, sınıfta tanımlanan özelliklere sahip bir nesnenin oluşturulmasıdır. Sınıftan nesne oluşturmak için aşağıdaki adımları izleyebilirsiniz:
- İlk olarak, oluşturmak istediğiniz nesnenin sınıfını tanımlamalısınız.
- Sınıftan bir nesne oluşturmak için 'alloc' metodunu kullanmalısınız.
- Oluşturduğunuz nesne için bir başlatıcı metodunu 'init' metodu ile çağırmalısınız.
Aşağıdaki örnek kod parçası, Objective-C'de bir sınıftan nesne oluşturma işleminin nasıl gerçekleştirileceğini göstermektedir:
// Bir sınıfın tanımlanması@interface Araba : NSObject@property NSString *marka;@property NSString *model;- (void)calis;@end// Sınıftan nesne oluşturmaAraba *araba = [[Araba alloc]init];araba.marka = @"Mercedes-Benz";araba.model = @"C-Class";[araba calis];
Yukarıdaki örnekte, Araba sınıfından bir nesne oluşturulur. Nesnenin markası ve modeli ayarlanır. Ardından 'calis' adlı metod, oluşturulan nesnede çağrılarak belirtilen işlev gerçekleştirilir.
3. Nesne Kullanma
Bu bölümde, Objective-C'de oluşturulan nesnenin nasıl kullanılacağına dair adımlar ve örnekler yer alacaktır. Bir önceki bölümde, sınıfın nasıl tanımlandığı ve özelliklerinin ve metodlarının nasıl oluşturulduğu öğrenilmişti.
Öncelikle, bir nesne oluşturduktan sonra, o nesnenin özelliklerine erişmek için nokta işareti (.) kullanılır. Örneğin, bir sınıfın içindeki bir özelliğe erişmek istiyorsanız, oluşturulmuş nesneyi kullanarak şu şekilde yazabilirsiniz:
MyClass *myObject; | // sınıfın oluşturulması |
myObject.myProperty; | // özelliğe erişim |
Aynı şekilde, nesnenin yöntemlerine erişmek için de yine nokta işareti (.) kullanılır. Örneğin, bir sınıfın içindeki bir yöntemi çağırmak istiyorsanız, oluşturulan nesneyi kullanarak şu şekilde yazabilirsiniz:
MyClass *myObject; | // sınıfın oluşturulması |
[myObject myMethod]; | // yöntemin çağrılması |
Bu örnekte, sınıfın "myMethod" isimli bir yöntemi olduğu varsayılmaktadır. Ayrıca, oluşturulan nesne "myObject" olarak tanımlanmıştır. Bu nesne, sınıfın özelliklerini ve yöntemlerini kullanmak için kullanılan bir referanstır.
Genel olarak, bir nesne oluşturulduktan sonra, o nesne ile yapabileceğiniz birçok işlem olacaktır. Bu işlemler, nesnenin özellikleri ve yöntemleri aracılığıyla gerçekleştirilir. Bu adımlar üzerinde çalışarak Objective-C'de nesne kullanmayı öğrenebilirsiniz.
Örnek Kod Parçaları
Objective-C'de nesne oluşturma ve kullanma işlemlerini tam olarak anlayabilmek için örnek kod parçaları oldukça önemlidir. Bu nedenle, bu makalenin sonunda Objective-C'de nesne oluşturma ve kullanma üzerine örnekler yer alacaktır.
Kod Örneği | Açıklama |
---|---|
MyClass *myObject = [[MyClass alloc] init]; [myObject setName:@"John Smith"]; NSLog(@"%@", [myObject getName]); | Bu örnekte, MyClass adlı bir sınıftan bir nesne oluşturuluyor. Nesnenin adı "myObject" olarak belirleniyor ve setName metodu kullanılarak ad özelliği "John Smith" olarak tanımlanıyor. Son olarak, getName metodu kullanılarak nesnenin ad özelliği konsol üzerinde gösteriliyor. |
YourClass *yourObject = [[YourClass alloc] init]; [yourObject setAge:25]; NSLog(@"%i", [yourObject getAge]); | Bu örnekte, YourClass adlı bir sınıftan bir nesne oluşturuluyor. Nesnenin adı "yourObject" olarak belirleniyor ve setAge metodu kullanılarak yaş özelliği 25 olarak tanımlanıyor. Son olarak, getAge metodu kullanılarak nesnenin yaş özelliği konsol üzerinde gösteriliyor. |
Bu örnek kod parçaları, Objective-C'de nesne oluşturma ve özelliklerinin tanımlanması, metodların tanımlanması, nesne oluşturma ve kullanma işlemlerinin nasıl yapılacağı gibi konulara açıklık getirmektedir. Okuyucular, örnekler aracılığıyla daha iyi anlayacaklarından, konuya daha da hakim olacaklardır.