黑马程序员一成员变量,@property 与 @synthesize,id,构造方法
来源:互联网 发布:php文件上传下载系统 编辑:程序博客网 时间:2024/05/22 16:51
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一.成员变量的作用域:
1.@public:在任何地方都能直接访问对象的成员变量
2.@private:只能在当前类的对象方法中直接访问,其他通过get与set方法调用
3.@protected:能再当前类和子类的对象方法中直接访问,其他通过get与set方法调用(默认)
4.@package:(不常用)如果两个类处在同一个框架可以通过变量名直接访问成员变量
5.实现里面也可以写成员变量(默认私有),就算写@public也没有用(不能和@interface文件中定义的成员变量名相同)
二.@property 与 @synthesize
@property可以自动生成某个成员变量的set和get方法的声明
@synthesize age = _age;可以自动生成property中声明变量的set和get的方法实现
会访问_speed成员变量,如果没有会自动生成@property类型的_speed变量
如果@property中有age和-age两个变量
@synthesize age 会默认访问age成员变量 会访问跟名字一样的成员变量
如果没有age就会自动生成@property类型的age变量
如果没有@synthesize@property可以生成getter和setter的声明和实现
如果有就用自己的代码
如果同时声明和实现了setter与getter就不会再生成_age了.生成_age就是为了生成getter和setter的声明和实现
三.id
id 不能命名为标示符
万能指针,能指向\操作任何OC对象.参数写成id类型,任何对象都能传进来.
oc对象本身是结构体
typedef struct objc object{ Class isa;}*id;
四.构造方法
构造方法:就是进行初始化的
完整地创建一个可用的对象
1.分配存储空间 +alloc
Person *p1 = [Person alloc];
2.初始化 -init
Person *p2 = [p1 init];
Person *3 = [[Person alloc] init];
init方法为构造方法用来初始化对象的方法,是个对象方法,-开头
重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定值
重写构造方法的注意点
1.先调用父类的构造方法([super init])
2.再进行子类内部成员变量的初始化
//重写-init方法- (id)init{// 一定要调用回super的init方法,初始化父类中声明的一些成员变量和其他属性 self = [super init]; //当前对象 self //如果对象初始化成功,才有必要进行接下来的初始化 if(self != nil) { //初始化成功 _age = 10; } //返回一个已经初始化完毕的对象; return self;}
融合为
- (id)init{ if ( self = [ super init] ) {//_age初始化为10 _age = 10; } // 返回一个已经初始化完毕的对象 return self;}
自定义构造方法
自定义构造方法的规范
1.一定是对象方法,一定以 -开头
2.返回值一般是id类型
3.方法名一般以init开头
- (id)initWhithName:(NSString *)name andAge:(int)age{ if( self = [super init]) { _name = name; _age = age; } return self;}
若成员变量是父类中直接生成的属性为@private
- (id)ininWithName:(NSString *)name andAge:(int)age andNo:(int)no{ if ( self = [super init]) { _no = no; self.name = name; self.age = age; //[self setName:name]; //[self setAge:age]; } return self;}
简化:开发中常用写法:自己调用自己的东西
- (id)initWhithName:(NSString *)name andAge:(int)age andNo:(int)no{ //将name和age在父类的方法中初始化 if(self = [super initWhithName:name andNo:no]) { _no = no; } return self;}
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
- 黑马程序员一成员变量,@property 与 @synthesize,id,构造方法
- objective-c--- 成员变量作用域、@property、@Synthesize、id、重写,自定义构造方法
- 黑马程序员-@property,@synthesize关键字及构造方法笔记
- 黑马程序员--OC自学笔记---05点语法、@property、@synthesize、动态类型、id类型、响应方法、构造方法
- OC中的点语法,成员变量,@property和@synthesize:id类型,构造函数
- 黑马程序员——OC核心语法点语法,成员变量,@property和@synthetic,构造方法
- 黑马程序员——OC字符串,点语法,成员变量,@property和@synthetic,构造方法
- 黑马程序员-- 核心语法 Property synthesize 成员变量的作用域
- 黑马程序员------OC基础-----点语法、id、构造方法、Category、成员变量作用域
- 黑马程序员-@property与@synthesize的用法
- 10、黑马程序员-OC语言@property @synthesize和id
- 黑马程序员_iOS开发之OC之面向对象之多文件操作、点语法、成员变量的作用域和关键字@property与@synthesize
- 黑马程序员——OC语言------NSString、多文件开发、点语法、成员变量的作用域、@property和@synthesize
- 黑马程序员——OC基础---核心语法(点语法,成员变量的作用域,@property和@synthesize)
- 黑马程序员-----@property和@synthesize
- 黑马程序员---@property和@synthesize
- 黑马程序员-点语法,成员变量作用域,@property,@synthsize和 id
- 黑马程序员_Objective C中的@property 与 @synthesize 快速生成setter getter方法
- countif
- 飞机大战-4
- 文件读取
- android 加载大图片是出现java.lang.OutOtMemoryError问题解决方法
- 2015.3.16工作总结
- 黑马程序员一成员变量,@property 与 @synthesize,id,构造方法
- 解决SecureCRT中文显示乱码
- ICP算法翻译Besl-A_Method_for_Registration_of_3-D_Shapes
- myadd
- TFTP安装
- iOS多任务学习记录
- BufferedReader、DataInputStream
- 达内培训第一天笔记
- 黑马程序员———C语言基础测试总结