tags: OC 30 day
什么是对象?
对象是现实生活中的一个具体存在。看得见,摸得着。拿过来就可以直接使用
什么是类?
物以类聚,人以群分。
类是对一群有相同特徵或者行为的事物的一个统称。抽象的。不能直接使用。
案例
食物是类还是对象?
水果是类还是对象?
苹果是类还是对象?
我早上吃的那一个苹果?
类和对象的关係
类是模板,类的对象是根据这个模板创建出来的。
类模板中有什么,对象就有什么,绝不可能多,也绝不可能少。
如何设计一个类
类的作用: 用来描述一群具有相同特徵行为的事物。
设计类的三要素:
如何找到类
名词提炼法:分析整个业务流程,分析出现了哪些名词,这些名词就是你要找到的类。
先有类还是先有对象?
从现实的角度:一定是先有对象再有类。
从程式码的角度:一定是先有类才有对象。
如何定义类
类的三要素定义类的语法a. 位置:直接写在源文件之中,不要写在main函数之中。
b. 语法:
类的定义分为两个部分。
-> 类的声明
@interface 类名:NSObject{这类事物具有的共同特徵,将他们定义为变量。}功能就是一个方法,将方法的声明写在这里。@end
-> 类的实现
@implementation 类名将方法的实现写在这里@end
几点注意a. 类必须要有声明和实现。
b. 类名用你棉树的事物名称来命名就可以了,类名的每第一个单字的首字母必须要以大写开头。
c. NSObject是什么意思,先不用管,之后会补充。
d. 用类表示着类事物的共同特中的变量必须定义在@interface的大括弧之中。
e. 定义在大括弧之中用来表示着类事物的共同的特徵的变量我们叫做,属性 成员变量 实例变量 字段.....
f. 为类定义属性名时,属性的名称一定要_为开头。
示範
@interface Person : NSObject{ NSString *_name; int _age; float _height;}@end@implementation Person@end
如何创建一个类的对象呢?
语法:
类名 *对象名 = [类名 new];
Person *p1 = [Person new];
那么,这句话是什么意思呢?
根据Person 这个类的模板,创建了一格对象的名字叫做p1
p1对象的特点:
-> 可以直接使用
-> 类中定义的东西,这个对象也有,不会多也不会少。
如何使用对象?
如何访问对象的属性:
默认情况下,对象的属性是不允许外界直接访问的。如果允许对象的属性可以被外界访问,那么就在声明属性的地方嫁入@public的关键字。访问对象的属性的方式对象名->属性名 = 值
对象名->属性名;
(*对象名).属性名;
平时使用的时候,使用->
练习
写一位学生的类, 属性: 姓名 年龄 语文成绩 英文成绩
@interface Student : NSObject{ @public NSString *_name; int _age; int _lang; int _math; int _english;}@end@implementation Student@endint 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);}