------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、面向对象和面向过程
1.区别
面向对象:关注的是解决问题需要哪些对象
面向过程:关注的是解决问题需要哪些步骤
2.常用术语
/*
面向过程:Procedure oriented
面向对象:object oriented 简称oo
面向对象编程:object oriented programming 简称 oop
*/
二、类和对象的关系
1.OC中的面向对象
1)类是对无数对象相同属性的概括
2)OC利用类来创建对象,对象是类的具体存在
3)面向对象解决问题应该是先考虑需要设计哪些类,在利用类创建多少个对象
2.需要设计哪些类,如何设计类
<pre name="code" class="objc"> /*
类的设计只关心3样东西
1)事物名称(类名):人(person)
2)属性:身高(height)、年龄(age)
3)行为(功能):跑(run)、打架(fight)
*/
3.一般名词都是类,拥有相同(或者类似)属性和行为的对象都可以抽象出有一个类
4.类的设计
1.类名
1)类名的第一个字母必须大写
2)不能有下划线
3)多个英文单词,用驼峰标识
三、定义类
完整的写一个函数:函数的声明和定义(实现)
完整的写一个类:类的声明和实现
1.类的声明
声明对象的属性和行为
@interface Person : NSObject
{
// 可以让外部指针间接访问成员变量
@public
// 成员变量默认初始化为0(实例变量)
int _height;
int _age;
}
-(void)walk;
@end
2.类的实现
@implementation Person
// 方法的实现
@end
#import <Foundation/Foundation.h>
#import "Person.h"
int main() {
// 利用类来创建对象
[Person new];
// 执行了Person这个类的new行为来创建新对象
Person *p = [Person new];
p->_age = 18;
p->_height = 1.7;
NSLog(@"%d岁,%f米的人在走路",p->_age,p->_height);
return 0;
}
2015-04-23 13:06:27.791 面向对象[32923:2854768] 18岁,1.700000米的人在走路
3.对象的行为
1)方法(实现):方法名、参数、返回值(声明、实现)
2)要是oc对象的方法,必须以减号开头
3)oc方法中的小括号(),用来括住数据类型
@implementation Person
// 方法的实现(说清楚方法里面有什么代码)
- (void)walk
{
NSLog(@"人在走路");
}
@end
// 给p所指向的对象发送一条walk消息
[p walk];
2015-04-23 14:23:59.673 面向对象[32942:2860234] 人在走路
四、OC函数与方法的区别(有本质区别)
1.方法的实现只能写在implementation和end之间
@implementation Person
// 方法的实现(说清楚方法里面有什么代码)
@end
2.对象方法都是以-开头
3.对象方法的声明必须写在interface和end之间
@interface Person : NSObject
{
// 定义成员变量
}
// 方法的声明
- (void)walk;
@end
4.对象方法只能当做对象来调用
5.对象方法归类/对象所有
6.函数能写在文件的任意位置(@interface和end之间除外)函数归文件所有
7.函数调用不依赖于对象
8.函数内部不能直接通过成员变量名来访问某个对象的成员变量
------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------