01.类和对象

2018-06-19  本文已影响0人  心扬

主函数详解

int main(int argc, const char * argv[]) {
    
    return 0;
}

类的声明和实现

@interface User

@end

声明一个类的目的,是为了告诉系统,这个类中有哪些属性和行为

类的属性声明在类名和@end之间的大括号

在声明类的属性时,建议在所有的属性名之前加上下划线_

@interface User
{
    char * _name;
    int _age;
}
@end
@implementation User

@end

创建对象

如果只是按照上述的的方式对类进行声明和实现,是无法创建对象的,而我们声明一个类的目的,就是为了创建对象,想要让我们声明和实现的类具有创建对象的能力,需要将类的声明进行如下的修改

@interface User:NSObject
{
    char * _name;
    int _age;
}
@end
[User new];

如代码所示,我们要创建一个User类的对象,只需要给User类发送一个new的消息即可

所谓的发送消息,就是调用方法,给User发送new消息,就是调用User类的new方法

在声明User类是,要继承NSObject,就是为了让User类具备创建对象的能力,即让User类可以调用new方法

创建对象详解

在为User调用new方法创建对象时,系统内部会做出如下的事情

  1. User类创建出来的对象分配存储空间
  2. 初始化User类创建出来的对象中的属性
  3. 返回User类创建出来的对象对应的地址

创建对象后,new方法返回的是对象对应的地址,而保存地址,就只能用指针

User * user = [User new];

如代码所示,我们通过一个User类型的指针接收了一个User类型的对象,即用User类型的指针保存了User对象的地址,则可以称User类型的指针变量userUser对象

使用一个指针保存了一个对象的地址,就称这个指针为某个类型的对象

@interface User : NSObject
{
    @public
    char * _name;
    int _age;
}
@end

既然类是一个结构体,那么我们就可以用指向结构体的指针来操作对象中的属性

//指针指向的方式
user->_age = 10;
user->_name = "zhangsan";
//结构体变量的方式
(*user)._age=10;
(*user)._name = "zhagnsan";
//C语言方式
printf("age=%d,name=%s\n",user->_age,user->_name);
//OC方式
NSLog(@"age=%d,name=%s",user->_age,user->_name);
上一篇下一篇

猜你喜欢

热点阅读