Objective-C'de, nesnesel programlama özellikleri hakkında bilgi sahibi olmak isteyenler için, öğrenilmesi gereken önemli bilgilerden biri Getter/Setter Metotlarıdır Bu özellikleri öğrenmek, kodlarınızın daha okunaklı ve etkili hale gelmesine yardımcı olabilir Objective-C Özellikleri'ni öğrenerek, uygulama geliştirme sürecinde verimliliğinizi artırabilirsiniz

Objective-C programlama dilindeki özellikler ve getter/setter metotları, nesneler arasındaki veri alışverişini sağlar. Bu özelliklerin erişim seviyesi belirtilebilir ve özelleştirilebilir. Özellikler @property anahtar kelimesi ile tanımlanır ve özet tablosu, özellik adı, özellik veri türü ve özellik erişim seviyesi belirtilmelidir.
Getter ve Setter metotları, bir nesnenin özelliklerine erişimi düzenleyen metodlardır. Getter metotu sadece verileri geri döndürür ve köşeli parantez notasyonu kullanarak bir özellik üzerinden çağrılır. Setter metotu ise bir değeri nesne özelliklerine atar. Bu metotlar otomatik olarak oluşturulabilir veya özelleştirilebilir.
Bu makalede, Objective-C programlama dilindeki özelliklerin kullanımı ve getter/setter metotlarının nasıl tanımlandığı ve kullanıldığı ele alınacaktır. Özelliklerin erişim seviyeleri ve tanımları da ayrıntılı olarak ele alınacaktır. Özelliklerin nesne davranışlarını nasıl özelleştireceği ve getter/setter metotlarının nasıl kullanılacağı hakkında örnekler sunulacaktır. Bu makale, Objective-C programlama dilinde özellikler ve getter/setter metotlarının anlaşılmasına yardımcı olacaktır.
Objective-C Özellikleri
Objective-C'de özellikler, nesneler arasında veri alışverişi yapmak için kullanılır. Özellikler bir nesnenin özelliğini, niteliğini veya diğer özelliklerini tanımlar. Bu özellikler, özelleştirilmiş nesne davranışlarını tanımlar ve erişim seviyelerini belirler. Özelleştirilmiş nesne davranışları genellikle yeni özellikler eklemek, mevcut bir özelliği türetteği sınıftan değiştirmek veya belli bir durumda farklı bir davranış sergilemek için kullanılır.
Objective-C'de özellik erişim seviyeleri, özelliklerin erişimi için belirli değerler alabilir. Bu değerler, bir özelliğin sınıf içinde hangi erişim seviyesine sahip olduğunu belirler. Özellik erişim seviyeleri private, protected, public ve package şeklinde sıralanır ve her bir değer için belirli bir özellik vardır. Özelliklerin farklı erişim seviyeleri, bir sınıftaki özelliklerin etkileşimlerini ve ilişkilerini belirleyebilir.
Özellik Tanımlama
Objective-C'de özellikler, nesneler arasında veri alışverişi yapmak için kullanılır. Bir özellik, nesnenin belirli bir niteliğini temsil eder. @property anahtar kelimesi ile özellik tanımları yapılabilir. Her özellik tanımında, özellik adı, veri türü ve erişim seviyesi belirtilmelidir. Ayrıca, özet tablosu oluşturulmalıdır.
Özellik Tanımı | Açıklama |
---|---|
@property | Özellik tanımı yapmak için kullanılan anahtar kelime |
Özellik Adı | Nesnenin niteliğini temsil eden özellik adı |
Veri Türü | Özelliğin tuttuğu verinin türü |
Erişim Seviyesi | Özelliğe erişim seviyesi belirleyen anahtar kelime. Örnek: public, private, protected |
Bu şekilde oluşturulan özellikler, Objective-C sınıflarında kullanılabilir ve nesnelerin özellik değerleri okunabilir veya değiştirilebilir hale gelir. Ayrıca, özellikler özelleştirilerek, nesnelerin farklı durumlarda farklı davranışlar sergilemesi sağlanabilir.
Özellik Erişim Seviyeleri
Objective-C'de özelliklerin erişim seviyeleri belirli değerler alır ve bu değerler, özelliklerin sınıf içinde ne kadar görünür olacağını belirler. Bunlar şunlardır:
Erişim Seviyesi | Tanım |
---|---|
private | Bu özellik sadece tanımlandığı sınıfta erişilebilir |
protected | Bu özellik, tanımlandığı sınıf ve alt sınıflar içinde erişilebilir |
public | Bu özellik, uygulamanın her yerinden erişime açıktır |
package | Bu özellik, aynı paketteki sınıflar içinde erişilebilir |
Erişim seviyeleri, nesne yönelimli programlama için önemlidir çünkü özelliklerin sınırlı erişilebilirliği, programcıların bir sınıfta ne kadar özellik tanımladıklarına dikkat etmelerini sağlar. Bu, nesnelerin daha sade ve amaca uygun olmasını sağlar ve sınıfın kodunu daha iyi organize eder.
Getter/Setter Metotları
Getter ve Setter metotları, bir nesnenin özelliklerine erişimi düzenleyen metodlardır. Bu sayede nesne özelliklerinin bir kısmı halka açık halde tanımlanabilirken, bir kısım özellikler private olarak tanımlanarak, sadece ilgili sınıflar arasında paylaşılabilir hale getirilebilir.
Objective-C'de getter/setter metotları otomatik olarak oluşturulabilir, ancak aynı zamanda özelleştirilebilir. Özelleştirilebilir getter/setter metotları xcode üzerinde oluşturulabilir. Bu işlem için, özellik önceden tanımlandıktan sonra sağ tık yapılarak, "Generate Getter and Setter" seçeneği seçilir. Automatik olarak, bool tipinde getter/setter metotları oluşacaktır. Fakat farklı bir tip için getter/setter metotları oluşturmak için, Write Getter/Setter özelliği kullanılabilir.
Bir özelliğe set ederken veya aldığımızda birtakım koşullar eklememiz gerekebilir. Örneğin, bir değerin belirli bir aralıkta olması veya sıfırdan küçük olmaması gibi. Objective-C programlama dilinde, bu tür durumlar için getter ve setter metotları özelleştirilebilir. Bu sayede koşullar karşılanana kadar geri dönüş alınmaz.
Getter Metotları
Objective-C'de, bir özellik değerine erişmek için getter metodları kullanılır. Getter metodları, sadece bir değeri geri döndürerek özelliği çağırmak için kullanılır. Getter metodu tanımlanırken, köşeli parantez notasyonu kullanılarak özellikler doğrudan çağrılır. Özellikler doğrudan erişime açılmaz ve getter metodları aracılığıyla erişilebilir hale getirilirler.
Aşağıda, Objective-C'de getter metotlarının nasıl tanımlandığı ve kullanıldığına dair örnekler verilmiştir:
Örnek Kod | Açıklama |
---|---|
@property (readonly) NSString *ad; | Bu örnek kodda, ad adında bir özellik tanımlanmaktadır. Bu özelliğe sadece getter metodları aracılığıyla erişilebilir. |
- (NSString *)ad { return _ad;} | Bu örnek kodda, ad özelliğine erişmek için bir getter metodu tanımlanmaktadır. Bu metot, ad özelliğinin değerini geri döndürmektedir. |
NSString *isim = [ogrenci ad]; | Bu örnek kodda, ogrenci adında bir nesne oluşturulmuştur ve bu nesnenin ad özelliğine getter metodları aracılığıyla erişim sağlanmaktadır. |
Bu şekilde, Objective-C'deki getter metotları, özelliklerin doğru şekilde erişimine yardımcı olur ve özellik değerlerinin uygun şekilde kullanılmasına olanak sağlar.
Setter Metotları
Setter metotları, nesne özelliklerine bir değer atamak için kullanılır. Özetle, bir setter metodu, bir parametre olarak aldığı değeri özelliğe atar. Örneğin, bir sınıfın adı "Person" ve bir özelliği "age" olsun. Age özelliğine değer atamak için şu şekilde bir setter metodu tanımlanabilir:
@interface Person : NSObject |
---|
- (void)setAge:(int)age; |
@end |
Yukarıdaki kodda, "setAge" adlı bir setter metodu tanımlanmıştır. Bu setter metodu, bir tamsayı değeri alır ve "age" özelliğine atar.
Setter metotları, değişkenlerin geçerliliğini de kontrol edebilir. Örneğin, "age" özelliğine negatif bir değer atamak istediğimizde, bir hata mesajıyla karşılaşabiliriz. Setter metodu, özellik değerinin geçerliliğini sağlamak için koşullar ekleyebilir:
@interface Person : NSObject |
---|
- (void)setAge:(int)age; |
@end |
@implementation Person |
- (void)setAge:(int)age { |
if (age < 0) |
NSLog(@"Hata: yaşı negatif bir değere atayamazsınız."); |
else |
_age = age; |
} |
@end |
Yukarıdaki örnek kodda, setter metodu "_age" değişkenine değer atamadan önce, yaşı negatif bir değere karşılaştırmaktadır. Eğer yaşı negatif bir değerse, hata mesajı verir. Aksi takdirde, özellik değerini günceller.
Setter metotları, sınıfın dışındaki bir nesne tarafından da kullanılabilir. Örneğin, aşağıdaki kodda bir Person nesnesi oluşturulur ve "setAge" metodu kullanılarak yaşı değiştirilir:
@implementation MainClass |
---|
- (void)main |
{ |
Person *person = [[Person alloc]init]; |
[person setAge:30]; |
} |
@end |
Yukarıdaki kod, "Person" sınıfındaki "setAge" metodunu kullanarak "person" nesnesinin yaşını 30 olarak ayarlar.