09110059-NguyenLam-Chuong2
-
Upload
dao-nguyen-minh -
Category
Documents
-
view
5 -
download
4
description
Transcript of 09110059-NguyenLam-Chuong2
H v tn: Nguyn LmMSSV: 09110059Basics pf Objective-C ProgrammingCHNG 2Inheritance( K Tha)Mc Tiu Trong chng ny bn s hc v mt trong s cc cha kha c bn lm cho lp trnh hng i trng tr nn mnh m. Thng qua cc khi nim v tha k, bn s xy dng trn nh ngha lp hin c v ty chnh chng cho bn cc ng dng ring.Gii Thiu Inheritance Cho php lp trnh vin ty chnh mt lp cho mt mc ch c th m khng thc s phi sa i cc lp ban u( lp cha). Cc lp dn xut( lp con) c php thm cc phng thc hoc nh ngha li chng Cc lp con c th thm cc bin, nhng khng th nh ngha li chngV D InheritanceLp C l lp con ca lp B nu khai bo c dngClass C : B {}Cc lp con l mt chuyn ngnh ca lp cha.Cc lp cha l mt s tng qut ca lp con.
Inheritance and Messages Khi C l mt lp con ca B: i tng C c th p li tt c cc thng ip ca i tng B cn p ng. C th cc lp con ca B c th c cc phng thc v bin cha c nh ngha trong B. Object-C khng h tr a k thaInheritance Hierarchy(H Thng Cp Bc K Tha) Mt lp c th c nhiu lp con v mi lp con c th c cc lp con ca ring ca mnh. Mt tp tt c cc lp con l ngun gc ca mt lp chung c gi l mt h thng phn cp tha k. Cc lp xut hin bn di mt lp c a ra trong h thng phn cp k tha l con chu ca n. Cc lp xut hin trn mt lp c a ra trong h thng phn cp k tha l t tin ca n.
Inheritance
Mi quan h th bc gia cc lp. Lp con k tha cch x l v d liu t lp cha. Cc lp con c th s dng, lm tng thm hoc thay th cc phng thc lp cha.Inheritance and Visibility Rules (Vng Hiu Dng Ca K Tha) Bin ring khng th nhn thy lp con hoc my khch Bin chung c th nhn thy tt c cc lp con v my khch Mt bin khai bo vi cc sa i hin th bo v ch c th c tham chiu bi lp con ca lp v khng c cc lp khcInheritance class declaration( Khai Bo Lp K Tha)Di y l mt khai bo cho mt i tng gi l ClassA vi mtphng thc gi l initVar:@interface ClassA: NSObject{Int x;}-(void) initVar;@endInheritance class implementation( Thc Hin Cc Lp K Tha)@interface ClassB: ClassA-(void) printVar;@end@implementation ClassB-(void) printVar{NSLog (@x = %i, x);}@endOverriding methods( Phng Thc Ghi ) Bn khng th loi b hoc tr phng thc thng qua tha k. Tuy nhin, bn c th thay i nh ngha ca mt phng thc k tha bng cch ghi n. Mt phng thc nh ngha vi tn ging nh ca mt tng cha thay th, hoc ghi , cc tha k nh ngha. Phng thc mi ca bn phi c kiu tr v ging nhau v ly s lng v kiu ca cc i s l phng thc bn ang ghi .
Overriding the dealloc method( Phng Thc Ghi dealloc) Bn khng ghi ln cc phng thc release-bn ghi ln dealloc thay th. Release i khi cho ln b nh mt i tng s dng, v i khi n khng. Bn c th ghi ln cc phng thc dealloc k tha (n tha hng t NSObject) v gii phng b nh ca ngun gc . Nu bn quyt nh ghi ln dealloc, bn cng phi chc chn gii phng b nh c a ln khng ch bi bn cc bin i tng ring, nhng bt k nhng k tha cng tt Bn gi tin nhn n nhanh thc hin mt phng thc ghi : [super release];Constructors(khai bo) Khi mt lp con c to ra, Objective C s gi cc hm to ca lp cha u tin v sau gi cc hm to ca lp con Nu mt lp cha khng c mt hm to mc nh khng c i s, lp con phi gi cc lp cha mt cch r rngUsing super Call Constructor( Gi nhanh khai bo)Cc cuc gi n nhanh phi l ln u tin tuyn b trong cc hm to lp con V d:- (id)init{self = [super init];if (self) {// Initialization code here.}return self;}Finding the Right Method Khi bn gi mt thng ip ti mt i tng, bn c th t hi lm th no cc phng thc chnh xc c chn p dng cho i tng. u tin, cc hc m cc i tng trong c kim tra Nu c, l phng thc c s dng. Nu n khng c nh ngha , lp cha m c kim tra.The @class Directive Bn cn phi # import cc file, nhng bn c th lm iu trong cc file thc thi (.m) ca bn., v s dng khai bo @class trong file tiu ca bn. @class khng (thng) loi b s cn thit cc file #import, n ch cn di chuyn cc yu cu xung gn hn vi ni m cc thng tin rt hu ch.Abstract Classes( Cc Lp Tru Tng) Cc lp tru tng ch c s dng nh lp cha Cc lp hc c khai bo l lp tru tng ch khi h s khng bao gi c khi to Cc lp tru tng thng c mt hoc nhiu tru tng phng phpAbstract Methods( Phng Thc Tru Tng) Phng thc tru tng khng c cc phn tt c v ch c h tiu khai bo Cch duy nht s dng mt lp tru tng l to ra mt lp m thc hin mi phng thc tru tng Cc lp c th l cc lp m thc hin tng phng thc tru tng trong lp cha ca hWhat Is Composition? Bn s mang li cc thnh phn ring l li vi nhau v lm cho h lm vic xy dng mt ci g ln hn Trong Objective-C, bn b tr bng cch a cc con tr ti cc i tng nh bin i tng Thng qua thnh phn, mt bnh xe p bao gm mt bn p v lp. @ giao din bnh xe p: NSObject@interface Unicycle : NSObject{Pedal *pedal;Tire *tire;}@end // UnicycleThe id type Gn kiu ng cho php chng ta khai bo mt bin c kh nng lu tr bt k loi i tng iu ny t c bng cch s dng loi id Objective-C Cc loi id l mt kiu c bit, mc ch chung kiu d liu c th c ch nh mt i tng ca bt k loiid object1; object1 = [[SavingsAccount alloc] init]; [object1 setAccount: 4543455 andBalance: 3010.10]; object1 = [[CustomerInfo alloc] init]; [object1 displayInfo];