首页 > 代码库 > 黑 马 程 序 员_视频学习总结<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