OC 30 day
對象是現實生活中的一個具體存在。看得見,摸得著。拿過來就可以直接使用
物以類聚,人以群分。
類是對一群有相同特徵或者行為的事物的一個統稱。抽象的。不能直接使用。
食物是類還是對象?
水果是類還是對象?
蘋果是類還是對象?
我早上吃的那一個蘋果?
類是模板,類的對象是根據這個模板創建出來的。
類模板中有什麼,對象就有什麼,絕不可能多,也絕不可能少。
類的作用: 用來描述一群具有相同特徵行為的事物。
設計類的三要素:
名詞提煉法:分析整個業務流程,分析出現了哪些名詞,這些名詞就是你要找到的類。
從現實的角度:一定是先有對象再有類。
從程式碼的角度:一定是先有類才有對象。
@interface 類名:NSObject
{
這類事物具有的共同特徵,將他們定義為變量。
}
功能就是一個方法,將方法的聲明寫在這裡。
@end
-> 類的實現
@implementation 類名
將方法的實現寫在這裡
@end
@interface Person : NSObject
{
NSString *_name;
int _age;
float _height;
}
@end
@implementation Person
@end
語法:
類名 *對象名 = [類名 new];
Person *p1 = [Person new];
根據Person 這個類的模板,創建了一格對象的名字叫做p1
p1對象的特點:
-> 可以直接使用
-> 類中定義的東西,這個對象也有,不會多也不會少。
如何訪問對象的屬性:
(*對象名).屬性名;
平時使用的時候,使用->
寫一位學生的類, 屬性: 姓名 年齡 語文成績 英文成績
@interface Student : NSObject
{
@public
NSString *_name;
int _age;
int _lang;
int _math;
int _english;
}
@end
@implementation Student
@end
int main(int argc, char * argv[]) {
Student *s1 = [Student new];
s1->_name = @"小花";
s1->_age = 17;
s1->_lang = 100;
s1->_math = 99;
s1->_english = 98;
NSLog(@"s1對象的姓名是%@,年齡是 %d,語文是%d,數學是%d,英文是%d",
s1->_name,
s1->_age,
s1->_lang,
s1->_math,
s1->_english);
}