创建一个 Car 类。
Car.h
#import<Foundation/Foundation.h>
@interface Car : NSObject
{
/*
属性:对于类是一个全局变量
描述对象特征的一些类型的变量
作用:保存类可能会用到的数据
*/
NSString *_color;
float _fuel;
NSInteger _numberOfWheel;
BOOL _isAuto;
}
/*______________________________________________________________________*/
//使用方法为属性赋值和取值
//设置器 set
- (void)setColor:(NSString *)color;
/*_____________________________________________________________________*/
//访问器 get
- (NSString *)color;
//一个存,一个取;一个写,一个看。
/*_______________________________________________________________________*/
//多个属性
- (void)setFuel:(float)fuel andNumberOfWheel:(NSInteger)number isAuto:(BOOL)isAuto;
/*_______________________________________________________________________*/
//打印车辆信息
- (void)showCarDatail;
//⬆️设置属性
/*________________________________________________________________________*/
//⬇️声明方法
//类方法 方法名 -> runTheCarByName: 名 包括后面的冒号
+ (void)runTheCarByName:(NSString *)name;
//实例方法
- (void)openTheLight;//开灯
@end
Car.m
#import"Car.h"
@implementation Car
//setter
- (void)setColor:(NSString *)color
{
_color = color;
}
/*____________________________________________________________*/
//getter
- (NSString *)color
{
return _color;
}
/*____________________________________________________________*/
//多个
- (void)setFuel:(float)fuel andNuberOfWheel:(NSInteger)number isAuto:(BOOL)isAuto
{
_fuel = fuel;
_numberOfWheel = number;
_isAuto = isAuto;
}
/*______________________________________________________________*/
//打印车辆信息
- (void)showCarDetail
{
NSLog(@"车辆信息 -> 颜色:%@ 油耗:%f 轮数:%ld 自动否:%@",_color,_fuel,_numberOfWheel,_isAuto?@"自动":@"手动");
}
/*_________________________________________________________________*/
+ (void)runTheCarByName:(NSString *)name
{
NSLog(@"车辆被%@启动了!",name);
}
- (void)openTheLight
{
NSLog(@"打开[%@]的车灯",_color);
}
@end
main.m
#import<Foundation/Foundation.h>
#import"Car.h"
int main(int argc,const char *argv[])
{
@autoreleasepool
{
char *chars = malloc(sizeof(char));
//1.使用类型名[Car]调用 Car 类的类方法 runTheCarByName:
//调用类方法 [类名 类方法名];
[Car runTheCarByName:@"小明"];
//2.使用实例对象[Car] 调用Car类的实例方法 openTheLight
/*______________________________________________________________________*/
//开辟内存在堆区 -> 初始化数据 - (instancetype:任意对象类型的返回值)init
//栈区(有程序员管理):基本数据类型 结构体 指针变量(8字节)
//堆区(不可管理):空间大 运行速度慢 存放对象
//常量区:常量
/*_______________________________________________________________________*/
Car *car_1 = [[Car alloc]init];
NSLog(@"%@",car_1);
[car_1 showCarDetail];
//调用set 方法 -> 给属性赋值
[car_1 setColor:@"白色"];
//调用get方法 -> 获取属性值
NSLog(@"color of car:%@",[car_1 color]);
[car_1 setFuel:2.5 andNuberOfWheel:4 isAuto:YES];
[car_1 showCarDetail];
//调用实例方法 : [对象 实例方法名]
[car_1 openTheLight];
}
return 0;
}