[好プログラマトレーニングキャンプ]Objective-C学習ノート----点文法
6453 ワード
<A href=「http:/***/」targt=「blank」iosトレーニング------私のOC言語メモは、あなたとの交流を期待しています.
javaなどの対象に向けた言語では、obj.メソッドを用いたり、obj.属性を用いてオブジェクトを呼び出す方法や属性が用いられます.OCは他の言語を使うプログラム設計者がOCをよりよく勉強するために、OCも文法を導入しましたが、基本的にはOCの点文法とjavaなどの言語の点文法には違いがあります.
-(int)setAge:(int)Newage;
-(int)age;
私たち自身の声明とセターまたはゲッター関数の実現に加えて、コンパイラにこの二つの関数を実現させてもいいです.コードを見てください.
備考:ブログに存在する不足や間違いを指摘してください.私のQQ番号は993371649です.
javaなどの対象に向けた言語では、obj.メソッドを用いたり、obj.属性を用いてオブジェクトを呼び出す方法や属性が用いられます.OCは他の言語を使うプログラム設計者がOCをよりよく勉強するために、OCも文法を導入しましたが、基本的にはOCの点文法とjavaなどの言語の点文法には違いがあります.
1 @interface Person:NSObject{ 2 @private
3 int age; 4 } 5
6 -(void)setAge:(int)Newage; // setter
7 -(int)age; // getter
8 @end
9
10 @implementation Person // setter getter
11 -(void)setAge:(int)Newage{ 12 age = Newage; 13 } 14
15 -(int)age{ 16 return age; 17 } 18 int main(int argc, const char * argv[]) { 19 Person * xiaoming = [Person alloc]; 20
21 xiaoming.age = 21; // age
22 NSLog(@"%d",xiaoming.age); // age
23
24 return 0; 25 }
上のコードの中で、xiaoming.ageは実際に関数を呼び出しました.次にxiaoming.ageを印刷すると[xiaoming age]を呼び出します.したがって、問題の本質は、このフィールドに対応するsetterとgetter関数をシステムが自動的に呼び出します.このフィールドに対応するsetterとgetter関数はこのようなものです.もし私たちのフィールド名がageであれば、対応するgetterとsetter関数の形式は:-(int)setAge:(int)Newage;
-(int)age;
私たち自身の声明とセターまたはゲッター関数の実現に加えて、コンパイラにこの二つの関数を実現させてもいいです.コードを見てください.
1 @interface Person:NSObject{ 2 @private
3 int age; 4 } 5 @property int age; // age getter setter
6 @end
7
8 @implementation Person 9 @synthesize age; // age getter setter
10 @end
11 int main(int argc, const char * argv[]) { 12 Person * xiaoming = [Person alloc]; 13
14 xiaoming.age = 21; 15
16 NSLog(@"%d",xiaoming.age); 17
18 return 0; 19 }
このコードの5行目の文はコンパイラに教えます.ageに対応するgetter関数とsetter関数を宣言してください.9行目の文はコンパイラにあなたがage対応のgetterとsetter関数を実現するように教えてください.そうすると、自分で字句を書く必要がないsetterとgetter関数です.もちろんです.あなたも自分で下でsetterまたはgetter関数を書き直して、追加したい内容を追加してもいいです.備考:ブログに存在する不足や間違いを指摘してください.私のQQ番号は993371649です.