A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 18704635324 中级黑马   /  2016-7-13 21:44  /  1326 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#pragma mark - 类方法的基本使用
"强调
1.什么是类方法?
1>类中以 + 号开头的方法就是类方法
2>直接用类名就可以调用
2.类方法的使用注意
1>类方法不能直接访问属性
因为类方法不需要创建对象就可以通过类名调用,没有对象,属性就没有意义
2>类方法内部能直接调用对象方法
对象方法必须由对象调用,因为类方法不需创建对象就可以通过类名调用
3>类方法内部是可以创建对象的,通过创建出来的对象,可以调用这个对象的对象方法
4>对象方法和类方法可以同名,编译器会根据调用来判断调用的是类方法还是对象方法

#pragam mark - 匿名对象
1.什么是匿名对象?
匿名对象也是个对象,只不过这个对象没有指针指向
2.说一说匿名对象在开发中的特点
1>匿名对象具有一次性的特点,由于没有指针指向对象,所以使用一次后再也找不到了
2>匿名对象用于临时创建对象调用对象方法

#pragam mark - 封装
"封装
1.封装是一种编程思想,目的防止面向对象编程过程中代码块的变动对整个程序的影响
1>函数的实现写在.c中,函数的声明写在.h,外界不需要知道函数的实现原理,只需要调用即可
2>方法的实现写在.m中,方法的声明写在.h中,外界不需要知道方法的实现原理,只需要通过创建对象来调用对象方法,或者用类名调用类方法

#pragma mark - 属性的封装规范
1.只读封装
1>对于一个对象的某个属性,如果希望在类的外部获取这个对象属性的值,但是不希望在类的外部修改对象的这个属性的值,此时只提供getter方法,不提供setter方法
这种对于属性的获取/设置的封装叫做只读封装
2.只写封装 非常少见
1>
对于一个对象的某个属性,如果希望在类的外部修改对象的这个属性的值,但是不希望在类的外部获取对象的这个属性的值,此时只提供set方法,不提供get方法.
这种对于属性的获取/设置的封装方式叫做只写封装.
3.属性的set/get封装规范
1>无论类的某个属性是否需要逻辑验证,都需要给这个属性封装标准的get/set方法
2>对象A中有对象B做属性的时候,仍然需要在类A中对于属性B做对应的get/set的封装

#pragam mark - 类与类之间的关系
"问题:类与类之间有哪些关系
1.组合:对象A由其他若干个对象组合而成,这些对象都是对象A的组成部分.(比如人是由头身体组成的....)
依赖:类A中有一个方法需要对象B作为参数,A依赖于B
关联:对象A中有对象B作属性,但是对象A不是由对象B组成的(人有一条狗,但是人不是由狗组成的!)
继承:
"下面的概念先听懂,随着自己经验慢慢体会
2.耦合度
1>耦合度:就是两个类之间的依赖程度
2>高耦合:就是两个类之间的依赖程度高
3>低耦合:就是两个类之间的依赖程度低



3.高内聚:把功能相关的模块封装在一起(性别枚举,生日结构体)


"复习
1.什么是框架
OC中一个框架就是一个文件夹.这个文件夹中有很多类和其他文件,通过xcode提供的框架,我们可以调用很多苹果写好了的方法/函数/数据类型,加快开发进度

2.如何使用框架
1>类
只需要知道框架中某一个类的作用,学习它有哪些属性和方法.
2>函数/数据类型
学会使用框架中提供的函数/数据类型.

#pragam mark - static关键字
"问题: 阐述一下static关键字的用法
1>static是C语言中的一个关键字,在OC中也可以使用
2>C语言中的static修饰的局部变量会转换成静态变量,函数执行完毕后这个变量不会被回收,下次再使用的时候直接拿上一次的值来用
3.C语言中的static修饰全局变量,这个全局变量只能在当前文件中使用
4.C语言中的static修饰的函数,只能在当前文件中使用
5.OC中用static修饰的局部变量会转换成静态变量,方法执行完毕后变量不会被回收,下次再使用的时候直接拿上一次的值来用
6.OC中static不能修饰属性和方法

#pragam mark - self的用法
1.self是什么
self是OC中的一个关键字
关键字:编程语言中预留出来的表示特定含义的一些字段
2.self用法概况
1>self这个关键字只能在OC中的类的类方法或者对象方法中出现
2>在对象方法中出现,就代表调用当前方法的对象
3>在类方法中出现,就代表当前这个类
3.在对象方法中出现,就代表当前调用这个方法的对象
1>什么叫做当前调用对象方法的对象
对象方法一定是对象调用的,用对象调用的方法叫做对象方法,一定能找到哪一个对象调用了这个对象方法
"self的使用注意
1>类方法中的self代表当前类,类是不能调用方法的,所以不能再类方法中用self调用对象方法
2>类方法中的self代表当前类,类的属性没有意义,不能用self在类方法中访问属性
3>对象方法中self代表当前对象,所以不能再对对象方法中用self调用类方法
4>self本质代表一个地址,在对象方法中指向当前对象,在类方法中指向当前类

#pragam mark - 继承
"强调
1.什么是继承
继承是一种创建类的方式,当你创建一个B类,希望B类一创建出来就拥有A的所有属性和方法,就在定义B类的时候让它继承A类
2.几个名词
类B继承类A,类B叫做类A的子类/派生类,类A叫做类B的父类/基类

"强调
继承是类在继承而不是对象在继承
"问题:你觉得什么时候才应该用继承的方式来创建类?
当两个类满足is a的关系,当类B创建的对象"是一个"类A创建的对象,此时就应该让B继承A
只要成员不是所有的子类都拥有的就不应该定义在父类中
3.继承的特点
"问题
用继承方式创建的类有什么特点?
1.单根性,一个类只能有一个父类
2.传递性,类C继承类B,类B继承类A,那么类C就会继承类A中的所有属性和方法(即子类拥有父类和父类的父类的所有属性和方法)

5 个回复

倒序浏览
oc 难吗 和C比
回复 使用道具 举报

都差不多吧。
回复 使用道具 举报
学习到了哦,多谢
回复 使用道具 举报
学到了,谢谢
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马