首页 > 代码库 > 黑 马 程 序 员_视频学习总结<Objective-C>----01 面向对象思想、类和对象、面向对象方法
黑 马 程 序 员_视频学习总结<Objective-C>----01 面向对象思想、类和对象、面向对象方法
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、面向对象
1、 面向对象和面向过程思想区别
OC为面向对象、C为面向过程。实质是解决问题的两种不同的思想。面向过程关注的是步骤,面向对象关注的是解决问题需要的对象。
2、 常用术语
面向过程:Procedure Oriented
面向对象:Object Oriented 简称OO
面向对象编程:Object OrientedProgramming 简称OOP
3、 怎样创建对象
类:描述属性、行为。是对无数个相同属性的对象的描述,是抽象的。
对象:具体化类。
4、 类的设计(3步骤)
1>类名字(命名规范:第一个字幕必须大写、不能用 下划线、多个英文单词必须用驼峰标志)
2>属性
3>行为(功能)
5、 类的划分
名词一般都是类。一般拥有相同属性和行为的对象都可以抽象成一个类。
6、 例子
植物大战僵尸中的僵尸类
类名:Zoombie
属性:life(生命值)speed(速度) gongjili(攻击力)
行为:walk(走) bite(咬) die(死亡)
雷电游戏中的飞机
类名:Plane
属性:life(生命值)gongjili(攻击力) speed(速度) bombCount(炸弹数量)
行为:fly(飞)bomb(爆炸) shoot(射击) die(死亡)
二、类和对象
1.类: 类的设计只关注三个东西:类名、属性和方法。类的声明使用关键字@interface和@end。类的实现使用关键字@implementation和@end。
2.方法的声明和实现,都必须以 + 或者 - 开头
- + 表示类方法(静态方法)
- - 表示对象方法(动态方法)
3.在.h中声明的所有方法作用域都是public类型,不能更改
4.成员变量常用作用域有3种:
1> @public 全局都可以访问
2> @protected 只能在类内部和子类中访问
3> @private 只能在类内部访问
三、类的声明和实现的练习
1.创建一个Person类
类的声明:
类的实现:
主函数
四、常见错误
1.@interface @end和@implementation @end不能嵌套包含
2.只有类的声明没有类的实现
3.漏写@end
4.两个类的声明嵌套(可以把顺序打乱)
5.成员变量没有写在{}里
6.方法的声明写在了{}里面
7.在声明时对类的成员变量进行初始化,请注意成员变量不能脱离对象而独立存在
8.方法无法像函数那样的调用
9.成员变量和方法不能用static等关键字修饰,不要和c语言混淆
10.类的实现可以写在mian函数后面,在使用之前只要有声明就可以
五、OC对象与函数有着本质的区别:
1.方法的实现只能写在@implementation··@end中,对象方法的声明只能写在@interface···@end中间
2.对象方法都以-号开头,类方法都以+号开头
3.对象方法只能由对象来调用,类方法只能由类来调用,不能当做函数一样调用
4.函数属于整个文件,可以写在文件中的任何位置,包括@implementation··@end中,但写在@interface···@end会无法识别,函数的声明可以再main函数内部也可以在main函数外部。
5.对象方法归类\对象所有
6.函数调用不依赖与对象
7.函数内部不能直接通过成员变量名访问对象的成员变量
六、类和方法的设计
设计一个工具类:一个计算器类,要求(1)返回π,(2)计算两个整数的和,(3)计算某个整数的平方。
类的声明部分
类的实现部分
七、面向对象方法
1.对象方法
1>对象方法以-开头如 -(void)xx;
2>对象方法只能又对象来调用
3>对象方法中可以访问当前对象的成员变量
4>调用格式 [对象名 对象方法名];
2.类方法
1>类方法以+开头 如+(void)put;
2>类方法只能由类来调用
3>类方法中不能访问实例(成员)变量,因为类方法又类来调用,并没有创建存储空间来存储类中的成员变量。
4>调用格式:[类名 类方法名];
5>类方法的好处和适用场合:
不依赖于对象,执行效率更高;
能用类方法解决的问题,尽量使用类方法;
场合:当方法内部不需要使用到成员变量时,可以改为类方法。
3.方法名
1>不带参数的方法
声明:
调用:
2>带参数的方法
声明:
调用:
注意:冒号也是方法名的一部分。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
详细请查看:www.itheima.com