小小君的OC第一课

新建一个Person类:

Person.h文件:

#import <Foundation/Foundation.h>


// .h 接口文件

// @interface 后面 类名:(继承自)父类 NSObject


@interface Person : NSObject


// 中间写 声明 或者 实例变量(特征)行为的声明

{

    // 添加一个OC关键字进行修饰 表明实例变量的可见度

    @public

    // public关键字 代表公开的意思

    // 声明的实例变量(特征)要写一个大括号

    // 只要是特征 名字要加下划线

    NSString *_name; // 姓名

    NSString *_sex; // 性别

    NSInteger _age; // 年龄

    

}


// 行为(方法)

// void sayHi();  // C语言声明函数


- (void)sayHi;


// 重写初始化方法 重写的是父类的方法

// 重写的话 一定要跟父类的方法 名字一样 返回值一样 参数一样 只有方法的实现是不一样的


// instancetype 表示返回一个对象类型

// void * 无类型指针 可以转化任何类型的指针

// id 表示一个对象类型(可以声明一个对象使用)



// 自定义初始化方法

- (instancetype)initWithName:(NSString *)name

                         sex:(NSString *)sex

                         age:(NSInteger)age;


// 接口文件的结束部分

@end



Person.m文件:


#import "Person.h"


@implementation Person

// 一般重写的初始化方法写在最上面

//- (instancetype)init{

//    // 需要一个返回值

//    // self关键字 在本类中 表示本类对象

//    

//    return self;

//}


- (instancetype)initWithName:(NSString *)name

                         sex:(NSString *)sex

                         age:(NSInteger)age

{

    // 对实例变量(特征)进行赋值


        _name = name;

        _sex = sex;

        _age = age;


    return self;

}


// 中间写 行为(方法)的实现部分


- (void)sayHi{

    NSLog(@"%@  %@  %ld", _name, _sex, _age);

}





@end



main.m文件:


#import <Foundation/Foundation.h>

#import "Person.h"


int main(int argc, const char * argv[]) {

    

    // OC的输出方法

    // printf多一个换行

    NSLog(@"这是OC的第一个工程");

    

    // @ OC关键字的标志

    // OC常用数据类型

   //  NSInteger 整型

    // CGFloat 浮点型

    // 定义一个字符串

    // 如果有 * 就代表这是一个对象

    NSString *string = @"今天吃药了么?";

    // 输出字符串

    // 格式化输出 占位符 只要你是对象 都可以用 %@ 来占位

    NSLog(@"%@", string);

    

    // 基本数据类型 用什么来当占位符

    NSInteger number = 4;

    NSLog(@"%ld",number);

    

    CGFloat score = 10.5;

    NSLog(@"%.2f", score);

    

    

#pragma mark -- 用类实例出一个对象(创建一个对象)

    // 创建对象 分两个过程

    // 1.分配内存空间(堆区开辟空间 需要管理的)

    // 2.对对象进行初始化

    

    // 创建一个人的对象

    // 根据使用方式来命名的方法

    // 减号方法(实例方法\对象方法) 使用对象来调用

    // 加号方法(类方法)  使用类名来调用

    // 如何调用方法?

    // OC中调用方法 使用中括号来调用

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

    // new这个方法就相当于 开辟空间并初始化

    // Person *p = [Person new];

    

    

    // 调用sayHi方法

    [person sayHi];

    

    // 给实例变量赋值(给对象赋值)

    person->_name = @"dj";

    person->_sex = @"";

    person->_age = 23;

    

    NSLog(@"name = %@  sex = %@  age = %ld", person->_name, person->_sex, person->_age);

    

    

    // 利用自定义初始化方法 创建一个对象

    Person *p1 = [[Person alloc]initWithName:@"笪君" sex:@"" age:22];

    

    [p1 sayHi];

    

    Person *p2 = [[Person alloc]initWithName:@"马婷婷" sex:@"" age:26];

    

    [p2 sayHi];

    

    Person *p3 = [[Person alloc]initWithName:@"胡志炎" sex:@"" age:22];

    

    [p3 sayHi];

    

    

    Car *car = [[Car alloc]initWithBrand:@"audiR8" Color:@"" Price:@"1000000"];

    [car sayHi];

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    return 0;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值