OC基础——点语法、@property、id、构造方法
来源:互联网 发布:淘宝机器人客服 编辑:程序博客网 时间:2024/05/21 10:11
点语法
点语法,编译的时候相当于oc当中的set,get方法。在编译的时候,系统会自动的将对应的操作转化为get,set方法注意:当点语法在等号的左边出现时,代表set方法
当点语法出现在其他位置的时候,代表get方法
Girl *girl = [Girl new];
girl.weight = 20;
girl.height = 40;
点语法只适用于get,set方法,其他的方法不行
成员变量的作用域
1.@public 任意位置2.@protected 在本类和子类可以
3.@private 在本类
4.@package 在本包内部
用成员变量的位置:1.类的外面 2.本类 3.子类 4.包之间
@property
@property 是专门用来自动生成成员变量的get,set方法的声明部分(xcode4.4之前)
//告诉Property,get,set方法的成员变量的类型
//告诉property,get,set方法的成员变量是什么,用成员变量去掉下划线后的部分表示
set
1.必须是对象方法
2.-号开头
3.以set开头,后面就是成员变量去掉下滑线后的部分,首字母大写
4.必须没有返回值
5.必须有参数,参数类型就是成员变量的类型,名字就是成员变量去掉下滑线后的部分
方法名与声明部分相同
大括号内部:成员变量 = 局部变量
-(void)setHeight:(int)height{
_height = height;
}
get
1.必须是对象方法
2.-号开头
3.必须有返回值,返回值类型就是成员变量的类型
4.方法名成员变量去掉下滑线后的部分
@synthesize 作用:专门用来自动生成get,set方法的实现部分
synthesize就知道生成与.h文件中名称为height的property相对应的get,set方法实现
方法名与声明部分相同
大括号当中:return 成员变量
当synthesize后面只写tel的时候,系统会自动生成一个叫tel的成员变量。
@synthesize tel;
xcode4.4以前,property只是自动生成set,get方法的声明,从xcode4.5开始,property可以自动生成成员变量的get,set方法的声明部分,还有实现部分。
oc编译特性
通过加强的property确实是自动生成了名称位_height的成员变量,只是变量是私有的,只能在。m文件中可见
注意:如果要在子类中使用父类的成员变量,那这个成员变量只能手动生成
set方法的重写
oc当中所谓的私有方法就是:没有声明,只有实现的方法
作用:只能有类里面的对象来调用,起辅助作用
重写的set方法将property生成的set方法实现覆盖了
当有不恰当的因素的时候(比如:出现脏数据),就要将set方法重写
id(万能指针)
id是一种数据类型
*定义变量
id myId
*作为参数,作为返回值
-(id)test:(id)myId;
>它是一个万能指针,它可以表示任意对象,前提对象必须是oc的
>在使用时可以等于NSObject *
//id实现多态
id myId = [Person new];
//当使用id类型的指针调用另一个对象的私有方法的时候,可以直接调方法,不用强制转换
[myId study];
//id作为关键字,是不能被声明称变量的。
构造方法
1.开辟存储空间 +alloc /返回对象的地址
2.初始化成员变量 -init /返回对象的地址
3.返回地址
返回的是一个没有被初始化的对象
Person *person1 = [Person alloc]; //得到的是一个已经初始化后的对象
Person *person2 = [[Person alloc] init];
在开发中通常情况下alloc与init要联合使用
Person *person3 = [[Person alloc] init];
//因为人的年龄,最好是在初始化Person这个对象的时候就给他附上一个正确的值,然后初始化的方法就是init方法,所以现在只需要重写父类的init方法。就可以了
Person *person1 = [[Person alloc]init];//嵌套调用的方法,从里到外依次执行
对比new与(alloc,init)
1.new是一个死的,调用new方法就会调用alloc和init这两个方法,但是大多数情况下,只需要对init初始化方法进行修改,alloc方法不用去动。
2.init方法这个位置比较灵活,咱们可以用带参数的初始化构造方法替代init。
- OC基础——点语法、@property、id、构造方法
- OC特有语法1—点语法,成员变量作用域,@property,id,构造方法,多文件编程
- OC特有语法1—点语法,成员变量作用域,@property,id,构造方法,多文件编程
- 黑马程序员——OC核心语法点语法,成员变量,@property和@synthetic,构造方法
- 黑马程序员——OC字符串,点语法,成员变量,@property和@synthetic,构造方法
- 黑马程序员--OC自学笔记---05点语法、@property、@synthesize、动态类型、id类型、响应方法、构造方法
- 黑马程序员------OC基础-----点语法、id、构造方法、Category、成员变量作用域
- 黑马程序员——OC基础---核心语法(id,构造方法,Category,description,SEL)
- OC基础day5-点语法、property、编译器指令、id万能指针、类与类的判断、判断对象是否响应指定的方法、判断类中是否有这个方法、参数方法与响应、构造方法、synthesize
- OC中的点语法,成员变量,@property和@synthesize:id类型,构造函数
- 黑马程序员---iOS基础----OC中的点语法、构造方法
- OC基础DAY05 - 点语法和构造方法
- OC基础—构造方法
- oc学习笔记2—— 点语法 @property @synthesize
- 黑马程序员——OC基础---核心语法(点语法,成员变量的作用域,@property和@synthesize)
- OC特有语法—@property
- OC基础之-Property(属性)和点语法
- 黑马程序员——OC基础@property语法详解
- 如何给大容量硬盘合理分区_磁盘分区注意点
- Java serialVersionUID
- Dreamweaver CS5 中启用 WordPress 代码提示功能的图文方法
- C语言头文件的编写
- PID算法初步
- OC基础——点语法、@property、id、构造方法
- 先序+中序和中序+后序建树
- Swift(一)
- ZOJ1649 Rescue 路径深度图算法
- <黑马程序员>代理模式总结-仿制简单spring框架
- 软件版本号规则和命名规则
- 移植OpenWrt到RT5350
- Android PagerSlidingTitleIconTabStrip 可以在title旁边加小图标的PagerSlidingTabStrip
- javascript原生的事件扩展