【OC简介-类和对象】

时间:2023-03-09 13:08:55
【OC简介-类和对象】

OC与C语言相比,体现的是一种面向对象的思想。OC完全兼容C语言

OC中大多数类前面都有前缀NS,来源于乔布斯NextStep团队,被苹果收购后保留了所有基本语法,合并到Foundation中

OC语言以.m为文件后缀

OC中绝对多数类继承自 NSObject  OC是单继承(可以使用协议来达到多继承的效果)

一、关键字 @ 格式化为对象

@"Hello, World!"  为字符串对象

@[@"123",@"234"]; 数组

@selector() 选择器

@property 属性

id  表示任意类型

二、类

//声明       person类   继承自  NSObject

@interface   Person      :      NSObject

{   //成员变量(有结构体的影子)、全局变量(它就是全局变量)

  NSInteger age;

NSString *name;

}

//实现

@implementation Person

@end

很多情况我们会重写init方法,比如:

- (instancetype)init

{

self = [super init];

if (self) {

//做一些事,设定默认值 预设条件

age = 20;//如果不存在,自动设为0

name = @"zhangsan";  //常量的赋值方法

/*

age = 0;

name = nil;

char *s = NULL

*/

name = [[NSString alloc ]initWithFormat:@"zhangsan"];//一般用这种方法赋值

NSLog(@"%ld",age);

NSLog(@"%@",name);

}

return self;

}

三、对象初始化

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

Person *per = [[Person new];//跟上面效果是一样的

分配好内存的对象 OC都是自动分配内存,然后将分配好的内存初始化为想要的对象 alloc分配内存  init 初始化

注意:Person *per1 = per; 这个只是改名或者赋值

四、对象输出

对象都用%@输出

NSLog(@"%@",per);

五、方法

格式:

调用者 返回值  方法名称(带参就有冒号)      参数类型       形参名

-       (void)      run            :                     (int)        distance;

调用:

[对象 方法名]

[per run];