Objective-C インスタンス変数,アクセサメソッド,ゲッター,セッター 【初級編 第6回】
<h1Objective-C インスタンス変数,アクセサメソッド,ゲッター,セッター 【初級編 第6回】</h1?
前回のコードにまたまた追加します。過去の「Bmi.h」や「Bmi.m」はそのままにしておき、新たに個人のデータを
表すクラス「Person」を作ることにします。
Person.hファイル
#import <objc/Object.h>
@interface Person:Object
{
//属性を表す
double weight;
double height;
}
//アクセサ
-(double)height;
-(void)setHeight:(double)personHeight;
-(double)weight;
-(void)setWeight:(double)personWeight;
@end
Person.mファイル
#import "Person.h"
@implementation Person
-(double)weight{
return weight;
}
-(void)setWeight:(double)personWeight{
weight = personWeight;
}
-(double)height{
return height;
}
-(void)setHeight:(double)personHeight{
height = personHeight;
}
@end
main.mファイル
#import <objc/Object.h>
#import "Bmi.h"
#import "Person.h"
int main(void){
id mine = [Person alloc];
[mine setWeight:55];
[mine setHeight:1.72];
printf("%2.1fn",[Bmi calcBmi:[mine weight] height:[mine height]]);
printf("%2.1fn",[Bmi calcProperWeight:[mine height]]);
[mine free];
return 0;
}
今回初めて登場したものは、まず4行目~8行目のところでしょう。このクラスの属性を表すための変数を用意しました。
属性とはそのオブジェクトの持っているデータのことになります。幅や高さといったものですね。
当たり前のことながら人それぞれ体重や身長は違うものです。
こういった情報はそれぞれのインスタンスごとに割り当てるものであり、この属性を表すための変数を
インスタンス変数といいます。
インスタンス変数は「@interface」ディレクティブの次にある「{」からはじまり「}」までの間に定義します。
今回はとりあえず体重と身長を加えてみました。
TechProjin 開発系基礎講座 連載リンク
基礎からPHPWEBアプリ解発を学ぶなら・・
PHP基礎 連載
AIなどで注目急上昇!これから学ぶならPython!!
独学で学ぶ-pythonプログラミング 連載
汎用性◎ 定番プログラミング言語JAVA
Java基礎講座 連載