Mobil Programlama

iOS

DERS PROGRAMI
iOS 201 Ders Programı

Süper Sınıftan Alt Sınıf Üretme

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

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