一.[了解]对象和对象之间的关系
1.组合关系
如:cpu,显卡,硬盘等组成电脑
2.依赖关系
如:人-->用手机打电话
3.关联关系
如:学生与书
高内聚:一个对象独立完成工作,其他对象的修改对其没有影响
低耦合::修改另外一个对象对一个对象的影响很小
二.[了解]面向对象设计原则
1.高内聚,低耦合原则
专注,是一个类的优良设计
2.开放封闭原则
软件实体应该是可扩展的,而不可修改的.也就是,对扩展开放,对修改封闭的
三.[掌握]类方法
类方法局限性:
不能访问成员变量
类方法的优势:
不依赖对象,不占用内存空间
对象方法和类方法的对比
1)格式:
对象方法:-(返回值类型)方法名:(参数类型)参数名称
类方法:+(返回值类型)方法名:(参数类型)参数名称;
2)调用者
对象方法:必须创建对象,由对象来调用
类方法:不依赖于对象,由类直接调用
四.[了解]匿名对象的使用
1.匿名对象:没有名字的对象
2.匿名对象的使用
[student new]->_age = 20;
注意:匿名对象设置成员变量只能成功一次,因为每次进行访问或设置时,都会重新创建新对象.
[[student new] study];(调用方法)
3.与类方法的区别,匿名对象创建对象了,开辟空间了
建议:匿名对象能不用就不用,类方法能用就用.
五.[重点]self关键字
本质:是一个指针
位置:对象方法中,代表当前对象
类方法中,代表当前类
self->成员变量名
六.[掌握]封装
@interface Student : NSObject
{
int _age;
}
//提供一个方法来进行赋值
//格式:写操作
//这种能够设置值的方法称为set方法
//苹果公司建议格式: -(void)set成员变量名(去掉下划线首字母大写):(成员变量数据类型)成员变量名(去掉下滑线);
- (void)setAge:(int)age;
//读取数据的方法,注意格式,这里不用getAge
- (int)age;
@end
封装:把复杂的数据或者操作进行隐藏,只提供操作数据或者方法的借口.
-->封装的好处
1)隐藏成员变量,不让外部直接访问,提高安全性
2)控制外界访问成员权限
-->@interface就好像暴露在外面的时钟表面,向外界提供展示以及接口
@implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来
-->比较两个字符串是否相同
(BOOL)isEqualToString:(NSString *)aString;
如:[name
isEqualToString:@"wang"];(其中name为字符串变量名)
-->注意:如果敲代码时,一行中前面写了中文,则后面的代码没有提示.
练习:1.设计一个学生类
属性:
年龄:0~120
姓名:长度不能小于2,并且不能为毛泽东习近平
英语成绩:0~150
2.有一本书,这本书有书名、作者两个属性。
给属性添加set和get方法。
通过方法给属性进行赋值
七.description方法
-(NSString *)description
1.所有的类,都有description方法
2.作用:辅助NSLog输出
类名:对象的地址
NSLog(@"%@哈哈哈",student);
如上,description方法可以描述一个对象,当对象被单独调用时,返回description方法描述的返回值。
网友评论