您的位置:首页 > 其它

OC 类的创建及初始化方法

2015-11-23 22:54 330 查看
        // 创建对象(OC中几乎所有的对象都存在堆区) ,NSString一些创建方式是存在常量区。

         // 发送消息(函数的调用):[消息接受者方法名];

        // 如果为 - 方法,消息接受者为对象,

        // 如果为 + 方法,消息接受者为类名。

一、

#import<Foundation/Foundation.h>

#import"Phone.h"

#import "Car.h"

#import"Person.h"

 intmain(intargc, const char * argv[]) {

    @autoreleasepool {

    // 这种方法几乎不用

     // 第一步: 分配内存空间

//        Car *car = [Car alloc];    

//        // 第二步初始化

//        car = [car init]
       //常用的创建对象方法 

        //返回值是对象的首地址,即对象。

        //p是跟对象同类型的指针变量,存储对象首地址,代指对象。

        // [Car alloc]返回一个car对象,再用car对象调用init。

        Car *car = [[Car alloc] init];

        // 如果实例变量用@public修饰,那么访问实例变量用:对象名->实例变量名

        // NSLog自带换行,打印出时间,项目名,线程编号。

NSLog(@"%@,%@,%d",car->_color,car->_brand,car->_price);

        // 发送消息(即函数的调用)

        [car introduce];

        [car drive];

        Person *person = [[Person alloc] init];

        [person introduce];

 

        Phone *iphone = [[Phone alloc] init];

        [iphoneshow_brand:@"apple"show_size:4];

NSLog(@"这是%@的%d手机",iphone->_brand,iphone->_size);

 

        //为实例变量赋值

person->_name= @"ysss";

person->_gender= @"w";

person->_age= 29;

 

        //为实例变量取值

int age =person->_age;

NSString *name =person->_name;

 

    }

return 0;

}

二、

//  Car.h

#import<Foundation/Foundation.h> 

//.h文件又叫接口文件,也可以叫声明文件

  //当前类名:父类名

 

//代码规范:类名首字母大写,实例变量要以下划线开头

@interface Car :NSObject

  // 实例变量(特征)全部写在大括号里面

{

     // 只要不是C语言的int,float,char等基本类型,变量面前全部加* 号。

  @public

    // 作为区分,实例变量要下划线开头。

NSString*_color;

NSString*_brand;

int _price; 



// (方法)行为的声明

- (void)drive;

-(void)introduce;

//.m 文件又叫做实现文件

#import"Car.h"

   //类名和文件名可以不一致,但是一致有利于查找。

@implementationCar

 

// 重写init方法

// instancetype为不确定类型。

// self 谁调用这个方法,谁就是self

 

-(instancetype)init{

    _color = @"blue";

    _price = 100;

    _brand =@"拖拉机";

return self;

}

 

- (void)drive{

    // 只要不是C语言的基本类型全部用%@打印

NSLog(@"%@",_brand);

}

 

-(void)introduce{

NSLog(@"%@%@ %d",_brand,_color,_price);

}

 

@end

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class