OCday1 类和对象

#import <Foundation/Foundation.h>

// .h文件称为接口文件

// 类名和文件名可以不一样,但是为了方便管理,让类名和文件名相同

//  Student是当前类的类名

// 一个文件里面只有一个类

// 冒号后面的NSObject是当前类的父类,继承于NSObject

@interface Student :NSObject

// 特征

{

    @public

    // 成员变量

    // 基本数据类型, 比如NSInteger, CGFloat修饰的成员变量不加*

   NSString *_stuName; // 学生姓名

   NSInteger _stuAge;  // 学生年龄

   CGFloat _stuScore;  // 学生成绩

   NSString *_stuHobby;// 学生爱好

   NSString *_stuSex;  // 学社性别

}



// 行为

// 打招呼

- (void)sayHi;


//

- (void)play;


// 吃饭

- (void)eat;







@end



//*******************************************************//

#import <Foundation/Foundation.h>


@interface Person :NSObject

{

    // @public 公开的, public修饰的成员变量谁都可以进行使用

    // @protected是被保护的,如果没有指定可见度,默认是被保护的

    //它的使用范围被限制在本类和它的子类可以只用

    // @private 私有的, 只有本类可以使用

    // @package是系统内部使用的成员变量,我们在外部不能使用,所以以后看见系统的头文件的时候,如果见了@package,直接无视

    

   // @public

   NSString *_name;

   NSInteger _age;

   NSString *_sex;

   NSString *_hobby;

   NSString *_id;

}


-(void)sayHi;

@end


//***********************************************//

#import "Person.h"


@implementation Person

-(void)sayHi {

   NSLog(@"%@",_name);

}

@end


//*******************************************************

#import "Student.h"

// .m是实现文件,用来实现方法的

@implementation Student

// 打招呼

- (void)sayHi {

    // 方法(行为)的实现

    //NSLog(@"大家好");

    //打印对象的所有的成员变量

   NSLog(@"%@",_stuName);

    

}


//

- (void)play {

   NSLog(@"喜欢玩");

}


// 吃饭

- (void)eat {

   NSLog(@"喜欢吃");

}


// 有一个 typedef void* id;


// 重写初始化方法

- (id)init {

   _stuName =@"小田田";

    _stuHobby = @"";

   _stuAge =90;

    _stuScore = 0;

   _stuSex =@"待定";

    return self;

}


@end



//**************************************************

#import <Foundation/Foundation.h>


@interface AudiCar :NSObject

// 特征

{

    @public

   NSString *_color;

   NSString *_model;

   NSInteger _price;

   NSString *_seat;

   NSString *_owner;

}

// 行为

- (void)run;


- (void)turn;


- (void)backward;


- (void)siren;


@end


//*******************************************

#import <Foundation/Foundation.h>


@interface Phone : NSObject

// 特征

{

    @public

   NSString *_brand;

   NSString *_model;

   NSInteger _price;

   NSString *_color;

   NSString *_measurement;

}

// 行为

- (void)call;

- (void)message;

- (void)go_online;

@end


//*************************************************

#import "Phone.h"


@implementation Phone

- (void)call {

   NSLog(@"call");

}

- (void)message {

    NSLog(@"message");

}

- (void)go_online {

    NSLog(@"Internet");

}

// 重写初始化函数init

- (id)init {

   _brand =@"apple";

   _model =@"6plus";

   _price =5699;

   _color =@"white";

    _measurement =@"5英寸";

    return self;

}


@end


//***********************************************

#import "AudiCar.h"


@implementation AudiCar

- (void)run {

   NSLog(@"run");

}


- (void)turn {

   NSLog(@"turn");

}


- (void)backward {

    NSLog(@"backward");

}


- (void)siren {

    NSLog(@"siren");

}

// 重写初始化方法init

- (id)init {

   _color =@"block";

   _owner =@"常老大";

   _model =@"A6";

   _price =90000;

   _seat =@"四个";

    return self;

}

@end


//*************************************************

#import <Foundation/Foundation.h>

#import "Student.h"

#import "AudiCar.h"

#import "Phone.h"

#import "Person.h"

int main(int argc,constchar * argv[]) {

    @autoreleasepool {

        // insert code here...

//        NSLog(@"Hello, World!");

//        

//        NSInteger a = 10;

//        NSLog(@"%ld", a);

//        

//        CGFloat f = 3.14;

//        NSLog(@"%g", f);

        // oc里的字符串

//        NSString *str = @"你好";

//        NSLog(@"%@", str);

      

      //创建对象

        //第一步操作:开辟堆区的内存空间

//        Student *stu = [Student alloc];

//        NSLog(@"%p", stu);

//        // 第二步: 进行初始化设置

//        stu = [stu init];

        

        

        //通常把创建对象的两步和在一起写

//        Student *stu = [[Student alloc] init];

        

        // 函数被类调用要用+, 被对象调用要用-

        

        // Student 继承与NSObject, 所以Student可以使用NSObject里所有的行为,所以可以直接使用allocinit这两个方法

//        NSLog(@"%@", stu->_stuName);

//        stu->_stuName = @"小田田";

//        NSLog(@"%@", stu->_stuName);

//        stu->_stuAge = 24;

//        NSLog(@"%ld", stu->_stuAge);

        

        // 调用行为(方法)

//        [stu sayHi];

//        [stu play];

        

        

        // 创建一个AudiCar

//        AudiCar *audi = [[AudiCar alloc] init];

//        // 调用该对象audi中的成员

//        audi->_color = @"red";

//        NSLog(@"%@", audi->_color);

//        audi->_model = @"A4";

//        NSLog(@"%@", audi->_model);

//        audi->_owner = @"常老大";

//        NSLog(@"%@", audi->_owner);

//        // 调用该对象audi中的行为

//        [audi run];

//        [audi turn];

//        [audi backward];

//        [audi siren];


        

        // 创建并初始化一个Student对象

//        Student *stu = [[Student alloc] init];

//        NSLog(@"%@", stu->_stuName);

//        NSLog(@"%@", stu->_stuSex);

//        [stu sayHi];

        //谁来调用sayHi方法,就会打印那个对象的成员变量内容

//        stu->_stuName = @"孙悟空";

//        [stu sayHi];

        

        

        // 创建并初始化一个AudiCar对象

//        AudiCar *audi = [[AudiCar alloc] init];

//        NSLog(@"%@", audi->_color);

//        NSLog(@"%@", audi->_model);

//        NSLog(@"%@", audi->_owner);

//        NSLog(@"%ld", audi->_price);

//        NSLog(@"%@", audi->_seat);

        

        //创建并初始化一个Phone对象,并调用其实例变量和成员函数

        

        

       Person *per = [[Personalloc]init];

//        per->_age = 10;   // 受保护的成员变量不能在其它函数调用

        

        

        

    }

   return0;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值