------
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培训、期待与您交流! -------