Objective-C_初始类和对象

初始类和对象 

main.m

#import <Foundation/Foundation.h>
// 使用一个类, 先引入头文件
#import "Person.h"
#import "Car.h"
#import "TellPhone.h"
int main(int argc, const char * argv[]) {

    // 对象的使用
    // 1.分配内存空间
    // oc中方法的调用
    // [执行方法的目标, 执行的方法];
    // alloc方法 开辟内存空间, 将内存里面的所有值都归0, 即将所有的成员变量的默认值都置0或者NULL;
    // 用一个Person类型的指针指向分配的内存首地址
    Person *p = [Person alloc];
    
    // 2.对 对象 初始化
    p = [p init];
    
    // 通常, 创建对象的两步连写
    Person *per = [[Person alloc] init];
    
    // +alloc 是一个加号方法, 也叫类方法, 只能由类去调用
    
    // -init 是一个减号方法, 叫实例方法, 只能由对象取调用
    
    // 这两个方法的类型 都是id类型的, 这是一个通用的对象类型, 可以指向任何对象
    
    // 利用对象, 调用对象自己的方法
    [per sayHi];
    [per play];
    [per eat];
    [per listenMusic];
   
   // 练习
    Car *car = [[Car alloc] init];
    [car start];
    
    TellPhone *phone = [[TellPhone alloc] init];
    [phone call];
    
    // 对成员变量进行操作
    // 当成员变量被@public可见度修饰的时候, 可以使用->访问
    // 给成员变量赋值
    per->name = @"lisi";
    per->age = 21;
    per->number = 200;
    
    [per sayHi];
    
    // 获取成员变量的值
    NSLog(@"年龄: %d", per->age);
    
    
    return 0;
}

Person.h

#import <Foundation/Foundation.h>

// .h文件中负责对类的声明
// @interface 代表一个类的开始
// @interface 类名 : 父类(继承谁)
@interface Person : NSObject
// 所有的oc代码都要写在@end之前, @interface之后

// 定义类的特征
{
    // 定义成员变量的可见度. @public 公开的
@public
    // 特征的列表 成员变量
    int age; // 年龄
    NSString *name; // 名字
    int number; // 微信号
    
}

// 方法列表 类的行为列表

// 无返回值, 无参数的方法
// 减号 (返回值类型)方法名;
- (void)eat;

- (void)drink;

- (void)play;

- (void)listenMusic;

- (void)sayHi;

// @end 结束声明
@end


Person.m

#import "Person.h"

// .m 类的实现
@implementation Person

// 实现的所有代码写在 @implementation 和 @end 之间

- (void)eat
{
    NSLog(@"啥都吃!!!");
}

- (void)play
{
    NSLog(@"啥都玩");
}

- (void)listenMusic
{
    NSLog(@"听歌");
}

- (void)drink
{
    NSLog(@"喝");
}


-(void)sayHi
{
    // 只要 .h 中声明的方法, .m 中必须实现
    // 成员变量 在类内部是公开的, 全局的
    NSLog(@"大家好, 我芳龄%d岁, 闺名%@", age, name);
}

// 这个方法是一个系统的方法, 由系统声明, 我们只需要实现就可以, 初始化
- (id)init
{
    age = 20;
    number = 100;
    name = @"zhangsan";
    // self 代表自己, 当前这个类的一个对象
    return self;

}


@end










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值