标签:
1.如何编写类的声明
以@interface开头 , 以@end结尾, 然后再class name对应的地方写上 事物名称, 也就是类名即可
注意: 类名的首字符必须大写
声明一个类的目的就是为了告诉系统, 我们这个类中有哪些属性和行为
OC类声明中属性只能在写@interface和@end之间的{}中
注意: 编写OC类属性的时, 建议将所有属性的名称前面都加上"_",这个是规范,记住就行了。
类名后面的 :NSObject 是为了让我们的Iphone类具备创建对象的能力,也就是说,可以直接用[Iphone new];来创建一个新的对象,不然没有这个new这个类方法。
@interface Iphone : NSObject { // 注意: 默认情况下, OC对象中的属性是不能直接访问的 @public // 只要让类中的属性公开, 以后就可以直接通过一个指向结构体的指针来操作对象中的属性 float _model; // 型号 0 int _cpu; // cup 0 double _size; // 尺寸 0 int _color; // 颜色 0 } // 方法---- @end
2.如何编写类的实现
以@implementation开头, 以@end结尾, 然后在class对应的地方写上声明时声明的类的名称, 必须和声明的类名一模一样
@implementation Iphone // 行为的实现,可以对象方法,可以类方法 @end
如何通过一个类来创建对象
在OC中想要通过一个类来创建一个对象, 必须给类发送一个消息
如何发送消息? 在OC中只要想要发送消息就先写上 [类名称/对象名称 方法名称];
只要通过一个类调用类的new方法, 也就是给类发送一个叫做new的消息之后
系统内部就会做3件事情
1. 为Iphone类创建出来得对象分配存储空间
2. 初始化Iphone类创建出来的对象中的属性
3. 返回Iphone类创建出来的对象对应的地址
通过一个Iphone类型的指针接收了 Iphone对象的地址
如果使用给一个指针保存了某一个对象的地址, 那么我们就称这个指针位之为某个类型的对象(理解一下这句话)
利用Iphone类型的指针保存了Iphone对象的地址, 那么我们就称Iphone类型的指针p之为Iphone对象
Iphone *p = [Iphone new]; p->_size = 3.5; // 但是这个是能直接访问的,和C不一样,类的属性是被保护的。 p->_color = 0; p->_model = 4; p->_cpu = 1;
OC中的类其实本质就是一个结构体, 所以p这个指针其实就是指向了一个结构体
struct Person { int age; char *name; }; struct Person sp; struct Person *sip = &sp; (*sip).age = 30; // 改变指针只想的结构体中的值 (*sip).name = "lnj"; sip->age = 30; sip->name = "lnj";
标签:
原文地址:http://www.cnblogs.com/XXxiaotaiyang/p/4983543.html