oc的一些基础知识

本文介绍了Objective-C中的核心概念,包括使用+alloc分配内存、-init方法初始化对象、@property自动生成setter和getter方法、@synthesize关键字的使用、点语法的原理及变量的作用域,并探讨了多态的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oc知识

1.+alloc是分配储存空间,返回的是未初始化的对象 ,调用类方法

person *p1 = [person alloc];


2.-init是构造方法,用来初始化对象,返回对象本身,调动的是对象方法

person *p2 = [person init];


3.@property 

可以自动生成某个成员变量的setter和getter方法

@property int age

编译这一行的时候,可以自动扩展为

-(void)setAge:(int)age;

-(int)age;

可以进行重写方法来标示独有的属性。


4.@synthesize 关键字

帮助生成成员变量的setter和getter方法

语法:@synthesize age = _age;

相当于下面的代码:

-(void)setAge:(int)age{

_age = age;

}

-(int)age{

return _age;

}

说明:@syntheseze age = _age: 左边的age代表要把@property int age实现,右边的_age代表访问_age这个成员变量。

如果手动实现了set方法,编译器只会生成get方法和成员变量;get方法相同;

如果两个方法都是手动实现的,那么编译器就不会生成成员变量。


5.点语法

点语法的本质是方法的调用,不是访问成员变量,点语法的本质是转换成相应的setter和get方法,如果没有set和get方法,则不能使用点语法。

使用下列方式是一个死循环:

(1).set方法,self.age = age;相当于是[self setAge:age];

(2)get方法,return self.age; 相当于是[self age];


6.变量的作用域

(1)@public (公开的)在有对象的前提下,任何地方都可以直接访问.

(2)@protected (受保护的) 只有在当前类和子类的对象方法中访问.

(3)@private  (私有的) 只有在当前类的对象方法中才能直接访问。

(4)@package (框架界别的) 作用域介于私有和公开之间,只要处于同一个框架中就可以直接通过变量名字访问。


7.多态

多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。

在调用多态时,会进行动态检测,调用真是的对象方法。

多态在代码中的体现即父类指针指向子类对象。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值