-
iOS Eğitimlerine Başlarken...
-
Objective-C Dilinde Kütüphaneler
-
Objective-C'de Sınıf Arayüzü (Class Interface) Nasıl Tanımlanır?
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Sabitlerden Oluşan İfadeler
-
int Türü İfadeler
-
float Türündeki İfadeler
-
Gösterge İfadeleri
-
Gösterge İfadeleri ve Değerleri
-
Operatörlerin Öncelikleri ve Birleşme Sıraları
-
İkili Aritmetiksel Operatörler
-
Aritmetiksel Atama Operatörleri
-
İlişkisel Operatörler
-
Mantıksal Operatörler
-
Bit Düzeyinde İşlem Gören Operatörler
-
Öteleme Operatörleri
-
Bit Düzeyinde Mantıksal Operatörler
-
Bit Düzeyinde İşlem İçin Bir Örnek: Sınav Değerlendirme Programı
-
Bit Düzeyinde Atama Operatörleri
-
Cast Operatörü
-
sizeof Operatörü ve Bir Örnek Program
-
Tekli Operatörler
-
Koşul Operatörü
-
Bellek Operatörleri
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Kontrol Yapıları
-
Döngü (Loop) Oluşturma
-
Miras Alma (Inheritance), Çok Biçimlilik
-
Ön İşlemci Komutları ve Makrolar
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Basit Makro Tanımları
-
Objective-C Ön İşlemcisi
-
Makrolarda Argümanlar
-
Önceden Tanımlanmış Değerlere Referans Verme
-
Gerçek Parametrelerde Bir Dizi İfadenin Kullanılması
-
Makro Tanımlamada # ve ## Operatörleri
-
Makro Tanımın İptal Edilmesi: undef Komutu
-
Dosya İçeriklerini Programa Katma: include Komutu
-
Şarta Bağlı Derleme İşlemi: #if Komutu
-
#ifdef Komutu
-
#ifndef Komutu
-
#error ve #pragma Direktifleri
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Diziler ve Sözlük Nesneleri
-
Diziler ve Sözlük Nesneleri Giriş
-
Bir Dizi Nesnesi Oluşturmak
-
Dizideki Eleman Sayısını Bulmak
-
Bir Dizi Nesnesinin Elemanlarına Erişme
-
Dizi Elemanlarına Hızlı Numaralama (Fast Enumeration) Yöntemi ile Erişmek
-
Dizi Nesnesine Eleman Eklemek
-
Dizi Nesnesinde Araya Eleman Ekleme
-
Dizi Nesnesinin Bazı Elemanlarını Silme
-
Dizi Nesnelerini Sıralama
-
Diziler ve Sözlük Nesneleri Giriş
-
Fonksiyonlar
-
Fonksiyonlar Giriş
-
Objective C Dilinde Bir Fonksiyonun Yapısı
-
Fonksiyonların Tanımlanması
-
Fonksiyonlarla İlişkili Terimler
-
return Deyimi
-
Fonksiyon Çağrıları ile İlgili Örnek C Programları
-
Fonksiyon Çağırma Teknikleri
-
Fonksiyonları Değer ile Çağırma
-
Fonksiyonları Referans ile Çağırma
-
İki Boyutlu Dizinin Argüman Olarak Gönderilmesi
-
C Dilinde Özyineli (Rekürsif) Fonksiyonlar
-
Fonksiyonlar Giriş
-
Dinamik Bağlama, id Veri Tipi
-
Bellek Sınıfları
-
Dosya İşlemleri
-
Nesne Yönelimli Programlama
-
Algoritmaya Giriş
NSObject sınıfından X alt sınıfını üretmek için aşağıdaki arayüz (interface) ve uygulama (implementation) kodları yazılır:
@interface X:NSObject
{
int a;
int b;
}
-(void) degerAta;
@end
@implementation X
-(void) degerAta;
{
a=50;
b=80;
}
@end
X sınıfının a ve b adlı iki adet üye değişkeni ve bunlara ilk değer atayan void tipindeki degerAta adlı bir metodu vardır.
Şimdi, X süper sınıfından Y alt sınıfını üretmek için aşağıdaki interface ve implementation kısımlarını yazmalıyız:
@interface Y:X
-(void) degerYaz;
-(void) kareYaz;
@end
@implementation Y
-(void) degerYaz
{
NSLog(@”a=%i”,a);
NSLog(@”b=%i”,b);
}
-(void) kareYaz;
{
NSLog(@”a*a=%i”,a*a);
NSLog(@”b*b=%i”,b*b);
}
@end
Y sınıfı degerYaz ve kareYaz adlı void tipi iki metoda sahiptir. Ayrıca X sınıfının a ve b değişkenleri ile degerAta metodunu da miras almıştır; yani Y için bu değişkenler ve metot tanımlı ve geçerlidir.
Şimdi de Y’yi üst sınıf alarak Z’yi tanımlayalım:
@interface Z:Y
-(void) kubTopYaz;
@end
@implementation Z
-(void) kubTopYaz
{
NSLog(@”a*a*a+b*b*b=%i”,a*a*a+b*b*b);
}
@end
Z, kubTopYaz adlı void tipi bir metoda sahiptir; aynı zamanda Y’nin sahip olduğu tüm değişken ve metotları da miras almıştır.
Son olarak bütün bu işlemleri bir komple Objective C programında bir araya getirelim:
#import <Foundation/Foundation.h>
@interface X:NSObject
{
int a;
int b;
}
-(void) degerAta;
@end
@implementation X
-(void) degerAta;
{
a=3;
b=5;
}
@end
@interface Y:X
-(void) degerYaz;
-(void) kareYaz;
@end
@implementation Y
-(void) degerYaz
{
NSLog(@"a=%i",a);
NSLog(@"b=%i",b);
}
-(void) kareYaz;
{
NSLog(@"a*a=%i",a*a);
NSLog(@"b*b=%i",b*b);
}
@end
@interface Z:Y
-(void) kubTopYaz;
@end
@implementation Z
-(void) kubTopYaz
{
NSLog(@"a*a*a+b*b*b=%i", a*a*a+b*b*b);
}
@end
int main(int argc,char * argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
Z *z=[[Z alloc] init];
[z degerAta];
[z degerYaz];
[z kareYaz];
[z kubTopYaz];
[z release];
[pool drain];
return 0;
}
Not: Programın çalışabilmesi için XCode'da ARC modunun kapalı olduğundan emin olunuz.
PROGRAMIN ÇIKTISI:
a=3
b=5
a*a=9
b*b=25
a*a*a+b*b*b=152