面向对象和面向过程是解决问题的不同思想 (用哪种思想都可以解决问题)。
面向过程: 思考解决这个问题需要哪些步骤。
面向对象: 思考解决这个问题需要哪些对象。在面向对象的世界中, 万物皆对象 (一切物体都可以是对象),找到需要的对象, 和这个对象需要具有的功能。
面向过程考虑的是步骤, 完成这个任务可以拆分为哪些步骤, 把每个步骤写成一个方法。
面向对象主要思考的是需要哪些对象(物体), 并使用对象的功能。
境界: 万物皆对象。
*** 类和对象的关系 ***
面向对象中有2个非常重要的概念:类和对象。
设计类只需要关注三部分:
事物名称(类名):人(person) 规范: 首字母大写, 通常使用驼峰来分隔单词。
属性:身高(height)、年龄(age)
行为(功能):跑(run)、打架(fight)
根据应用的需求创建类, 再通过类根据需求创建对象, 再调用对象的功能。
*** 类的创建和使用 ***
一、 类的声明:
1 格式:
类的声明以@interface开头, 以@end结尾。
类的声明中要说明属性和声明行为(成员变量和方法声明)。
2 属性:
属性声明在大括号中。
属性也叫做成员变量或者实例变量(每个实例都有自己的属性值)。
对象创建时, 所有的成员变量默认初始化为0. 只能声明成员变量, 不能在大括号里给它们赋初值。 只写类型和变量名. 也不能用static等等修饰。
NSObject可以让声明的类具备创建对象的能力。
@public可以让外部的指针直接访问对象的成员变量。
3 方法:
方法声明写在大括号外面。
OC中方法不能写成 void update(); 要遵循下面的要求:
1> 如果是对象调用的方法, 用减号标记. 如果是类调用的方法, 用加号标记。
2> 数据类型用()括起来。
3> 接收的参数不能用()括, 因为在OC中小括号就是用来括数据类型的。 参数要用冒号标记, 有几个参数就写几个冒号, 没有参数就不写。
就算方法很短也不能写方法的实现。
方法不能使用static修饰, static是修饰C语言的函数的, 方法和函数不同。
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
@public
int age;
float weight;
}
- (void)walk;
@end
//类的实现
@implementation Person
//实现interface中声明的方法
- (void)walk {
NSLog(@"%d岁,%f的人走了一段路",age,weight);
}
@end
int main()
{
Person *p = [Person new];
p->age = 20;
p->weight = 50.0;
[p walk];
Person *p2 = [Person new];
p2->age = 40;
p2->weight = 90.0;
[p2 walk];
}
二、 类的实现:
1、 类的实现要以@implementation开头, 以@end结尾。
2、 类的实现就是用来实现类的方法。
3、 方法的实现, 先把方法声明抄过来, 再加个大括号, 在里面写实现代码。
4、 方法内部如果要访问当前对象的成员变量, 直接写变量名字就可以。
三、 类的使用:
1、 在OC中执行一个行为要使用中括号的格式: [行为执行者 行为名称], 即告诉OC让那个执行者去执行那个行为。
2、 OC中操作对象只能通过指针来操作, 不能直接操作对象。
3、 类的声明必须放在main之前, 跟函数一样, 因为编译是从上往下的。
------- android培训、ios培训、期待与您交流! ----------
详细请查看:www.itheima.com