OC基础语法<1.3> 入门面向对象语法-self、new、 @property和synthesize
来源:互联网 发布:淘宝精仿浪琴手表 编辑:程序博客网 时间:2024/05/26 02:55
一:变量的作用域
默认是protected的
@public 全局都可以访问
@protected 只能在类内部和子类中访问
@private 只能在类内部访问
注意:私用方法的实现很简单,只需要实现在.m文件中,而没有在.h文件中声
二:self关键字
在对象方法中 self代表你这个当前对象,相当于java中的this
- (void)text1{int age = self.age;}在类方法中 self就代表这个类名,就是下面例子中调用text2这个方法的类
+ (void)text2{[Student alloc] = [self alloc]}//总结在一起 , 就是谁调用这个方法self就指向谁无论是类还是对象
注意:不要在set,get中调用self,因为分辨不清楚容易造成死循环
三:new关键字
new相当于即分配了内存,又实现了init构造方法
Student *stu = [[Student alloc]init];//相当于 Student *stu = [Student new];
我们现在一般用以前的语法,因为new是后来加入的,而且没有以前的语法层次清晰,
并且new的话没办法调用自己写的构造方法
四:@property和@synthesize
@property 关键字表示自动生成成员变量的set和get方法的声明,只用在@interface关键字里面
@property int age ; //相当于//-(void)setAge(int)age;//-(int)age;@synthesize 关键字表示自动生成实现成员变量的set和get方法的实现,可连着一起写只用在@implementation 关键字里面
@synthesize age ,name
@synthesize age;/*相当于-(void)setAge(int)newAge{ age = newAge;}*/为了防止混淆我们可以写成这样
@synthesize age = _age;
注意!!!
1:编译器会先判断synthesize 关键字的存在,根据你定义的成员变量找同名的成员变量,具体如下
如果写了@synthesize age;那么成员变量 int age;就可以可以省略了,系统找不到同名的成员变量,会自动生成一个同名变量,并且是私有的,相当于在.m文件中加了一个int age;就像本例中如果现在你在.h中定义了一个_age的成员变量,没有定义age,但是synthsize中的成员变量你写的是age 那么自动生成的成员变量会是age而不是_age2:如果你写成了@synthesize age = _age ,编译器会找_age这个成员变量,如果找不到就会自动生成,只不过是私有的(看不懂这句可参考下面)
现在的新版本synthesize我们也不用写 ,只需要在.h中声明一个变量,实现方法会自动生成
/*@property int age ;不写synthesize方法会默认生成@synthesize age = _age;所以说他会自动生成的成员变量是_age,但是是私有的,如果想变成公共的就需要在继承类后面的{}中声明一下eg{int _age;}*/总结:来说以后我们如果不确定的话最好不要在.h文件中把
{int _age;NSSting *_name;}省略,这样synthesize 就会调用你这里面的成员变量,然后这个@synthesize关键字一开始最好不要省略,当然根据需求set和get方法有时也需要手动写
0 0
- OC基础语法<1.3> 入门面向对象语法-self、new、 @property和synthesize
- oc点语法和@property @synthesize
- OC--语法变量声明synthesize和property
- 黑马-OC语法-@property和@synthesize
- OC点语法、@property、@synthesize
- OC入门、面向对象语法
- OC基础语法<1.2> 入门面向对象语法-构造方法和description
- OC基础语法<1.1> 入门面向对象语法-OC类、点语法
- OC基础---NSString、多文件开发、点语法、成员变量的作用域、@property和@synthesize
- 黑马程序员——OC基础语法—@property和@synthesize使用
- 在OC中,property、synthesize和点语法的用法
- 黑马程序员——OC基础---核心语法(点语法,成员变量的作用域,@property和@synthesize)
- 黑马程序员_iOS开发之OC之面向对象之多文件操作、点语法、成员变量的作用域和关键字@property与@synthesize
- OC基础语法学习3:setter/getter 点语法 @property @synthesize
- Objective-C基础——核心语法-@property 和@synthesize
- OC核心语法(1)点语法、变量作用域、@property@synthesize和id
- OC核心语法——点语法、作用域、property和synthesize
- 黑马程序员-我的第十篇学习日记:OC中点语法,@property和@synthesize,完整创建一个可用对象
- H2 java -cp -d
- 2013 TCO Algorithm Round 2B - Division I, Level Two ScotlandYard
- 说是萨斯多方式的发三
- DataGrid
- Unity 4.6的使用匿名delegate处理uGUI控件事件绑定
- OC基础语法<1.3> 入门面向对象语法-self、new、 @property和synthesize
- mini6410是我LED驱动程序
- 大热天就赶快钛合金人体宴田海蓉
- 腾讯招聘网的两点功能实现逻辑缺陷
- 选课时间(题目已修改,注意读题)(杭电2079)(母函数)
- Android HAL实例解析
- Java学习的30个目标以及系统架构师推荐的书
- AOE网上的关键路径 (SPFA+前向星)
- 同步,一定要加锁吗?