您的位置:首页 > 编程语言 > C语言/C++

OC语言中的类和对象

2015-09-14 21:56 246 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
-------

一、类和对象的设计

1. 类的设计只关心三样东西:

(1)事物名称(类名)(有意义)比如人:Person(类名的首字母必须大写,不能有下划线,多个单词时使用驼峰标识)

(2)属性:身高(height),年龄(age)

(3)行为(功能):跑(run),吃(eat)

2. 具有相同(或者类似)属性和行为的对象都可以抽象出一个类

3. 完整的一个类必须有类的声明和类的实现

(1)类的声明 // 声明对象的属性(行为)

@interface 类名 {属性}

@end //类的声明完毕

(2)类的实现

@implementation 类名

@end //类的实现完毕

4. 利用一个类可以创建出对象,并且调用对象的某个方法,就可以让对象拥有一系列行为

5. 方法与函数的区别

(1)对象的行为(方法)声明放到@interface和@end 之间,但不能放{}里面,实现放@implementation和@end之间

(2)对象方法归类和对象所有,都是以 - 开头,只能由对象调用

(3)函数能写在文件的任意位置,函数归文件所有

(5)函数调用不依赖于对象

(6)函数内部不能直接通过成员变量名访问某个对象的成员变量

6. 创建一个完整的车(Car)类

#import <Foundation/Foundation.h> //因为使用了NSObject

//类的声明

@interface Car:NSObject // NSObject 的目的是让Car这个类具备创建对象的能力

{

@public //可以让外部指针间接访问成员变量的值

int wheels //轮子数

int speed //速度 (wheels,speed叫成员变量,也称实例变量,用来声明对象属性,默认初始化为0)

}

-(void)run //方法的声明

@end

//类的实现

@implementation Car

-(void)run

{

NSLog(@"%d个轮子,速度为%d的车子跑起来了",wheels,speed) //方法的实现

}

@end

int main()

{

Car *c=[Car new]; //指针变量c指向Car 这个类创建出的新对象,存储的是地址

c->wheels=4; //给c所指向对象的wheels属性赋值

c->speed=250; //给c所指向对象的speed 属性赋值

[c run] //给c所指向的对象发送一条run消息,指向-(void)run

return 0;

}

*注意点:(1)不允许给成员变量赋初值

(2)类的实现可以放main()后面,但类的声明必须放main()之前

二、对象的内存分析

1. 类也占存储空间,在使用类创建对象之前,会把类加载进内存(只有一次)

2. 类里面的放的是方法列表

3. 每个对象内部默认都含有一个isa指针,指向类,所以,所有对象都共用一套方法

4. OC 对象即使在函数被调用完之后也不会被回收

三、方法的声明和调用

1. 不带参数的方法

声明 调用

2. 带一个参数的方法

声明 调用

3. 带多个参数的方法

声明 调用

4. 方法名注意

(1)冒号也是方法名的一部分

(2)同一个类中不允许两个对象方法同名

四、匿名对象(没有名称的对象)

[Car new]->speed =300; (不推荐这种写法)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: