OC-封装

作者: 萤火虫儿飞_ | 来源:发表于2018-03-31 10:50 被阅读6次

一.[了解]对象和对象之间的关系

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方法描述的返回值。

相关文章

网友评论

      本文标题:OC-封装

      本文链接:https://www.haomeiwen.com/subject/rikgcftx.html