"一:類和對象
1>對象:是一個能夠确定的唯一的實體.
2>類:是對一系列具有共同特征和相同行為的對象的統稱.
類: 類就是設計師的圖紙
對象: 根據圖紙生産出來的實實在在的藝術品
"二:類的三要素
1>類名: 這類事物的統稱
2>屬性: 這類事物的共同特征(這類事物所擁有的)
3>方法: 這類事物有哪些共同行為
"三:設計并定義一個類
1> 設計1個人類.
類名:人類
屬性:姓名,年齡
行為:跑步,打招呼
2>定義這個類
1,類的聲明
2,類的實作
"四:建立對象并調用方法
1> 在方法中可以通路屬性
如下
#import <Foundation/Foundation.h>
//類的聲明
@interface Person: NSObject
{
@public
NSString *_name;
int _age;
}
- (void)run;
- (void)sayHi;
@end
//類的實作
@implementation Person
- (void)run
{
NSLog(@"我在跑步");
}
- (void)sayHi
{
NSLog(@"哈喽,大家好,我叫%@,今年%d歲了",_name, _age);
}
@end
int main(int argc,const char * argv[]) {
//建立對象
Person *xiaoming = [Personnew];
//指派屬性
xiaoming->_name = @"小明";
xiaoming->_age = 18;
//調用方法
[xiaoming run];
[xiaoming sayHi];
return 0;
}
"五:練習
寫一個學生類
屬性:姓名學号 年齡
建立一個學生對象,給學生對象的各個屬性指派,并列印學生對象各個屬性的值.
@interface Student : NSObject
{
@public
//姓名
NSString * _name;
//學号
int _schoolNum;
//年齡
int _age;
}
@end
@implementation Student
@end
int main()
{
//建立對象
Student * xiaoming = [Student new];
//指派屬性
xiaoming->_name = @"無色大師";
xiaoming->_schoolNum = 1;
xiaoming->_age = 10;
//列印
NSLog(@"姓名%@學号%d年齡%d", wuse->_name, wuse->_schoolNum, wuse->_age );
return 0;
}
"六:下面代碼的作用
int main()
{
//有一個學生類型的指針指向了一個學生對象
Student * wuse = [Student new];
return 0;
}
"七:注意點
1>類的聲明和類的實作中,類名必須一緻.
2> 類的屬性必須寫在 @interface 和 @end 之間的"{ }"内部.
3>屬性要用_開頭.
4>一個指針指向一個對象,*要麼和類名在一起,要麼和變量名在一起,要麼在中間,要統一格式,規範書寫.
"如下:
@interface Student : NSObject
{
@public
//姓名
NSString * _name;
}
@end
@implementation Student
int main()
{
Student *xiaoming = [Student new];
return 0;
}
5>對象,實質上是一個存儲對象的位址的指針變量.是以要符合變量的命名規範.
1,規定 : 變量名隻能由字母,_,$,數字組合而成,且不能以數字開頭.
2,規範 : 見名知意,駝峰式命名法
6>通過指向對象的指針通路對象的屬性的方式(*對象名).屬性.不建議使用這種方式,建議使用"對象名->_屬性名"通路.
int main()
{
Student * xiaoming = [Student new];
xiaoming->_name = @"無色";
NSLog(@"%@",xiaoming->_name);
NSLog(@"%@",(*xiaoming)._name);
return 0;
}
7>通過對象名通路屬性,注意文法格式,對象名->_屬性名 (這個屬性名是帶_的)
int main()
{
Student * xiaoming = [Student new];
xiaoming->_name = @"無色";
NSLog(@"%@",xiaoming->_name);
return 0;
}
8>如果通過對象名通路屬性的時候報錯了,檢查在類的聲明部分聲明屬性的時候,加上一個@public修飾即可
9>為對象的屬性指派的時候,要注意類型比對,否則會出問題