oc的第五天

    点语法与构造方法 
1,点语法
1.所谓的点语法就是通过对象名.去掉下划线的实例变量
点语法是编译器的特性,
编译器遇到点语法时就会自动把点语法替换成set/get的方法
2.调用首先是创建一个对象
指针 . 实例变量 =赋值
注意: 

千万不要把点语法看做是访问类的实例变量

点语法的根本基础 setget方法,如果没有setget方法,将不能使用点语法。

在set方法中不能使用self.XX=XXX;不然会造成无线循环
在get方法中也不能使用返回self .xxx;

2,关键字的使用

1,@property就是关键字来代替在.h文件中的set,get

格式;

@property  类型   实例变量名

@property int   age;
同种类型可以用逗号
实例变量必须是下划线开头才能被子类继承
2,@synthesize 就是来代替set,get方法的只在.m文件中
格式;
@stnthesize 实例变量
3,重新实现get,set方法就是在.m函数中再写一遍是、set的格式就是手动实现
但是set和get只能出现一个,实现其中一个
4,id的使用
nsobiect可以指向任何对象,可以调用子类的方法 但是需要强转一下

id 类型,可以使用 id类型,定义变量,变量的特点:万能指针

id 类型的作用,它可以指向任何对象,动态的给id变量赋值

不足:在编译的时候,无法确定是否能够响应这个方法

id 就是一个类型的  万能类型
  id  指针类型
指针类型 =[类   new];
[指针  行为  ];

4构造方法
1,就是给对象进行初始化的方法
就是init 初始化对象 默认的初始化为0
重写构造方法的目的就是
创建完成后会有一些默认的值
2,为什要初始化父类

    // 子类继承了父类

    // 当子类重写了父类的方法以后,子类调用init方法的时候

    //                        只调用子类的init,不掉要父类的init

    // 为了保证父类正常的初始化完成,子类先让父类初始化

//    self = [super init];  //初始化父类



    //疑问2:为什么要给self 重新赋值

    // 1) 父类初始化的时候,有可能release self指向的空间(可能性非常小

    //    如果释放掉空间了 self = nil

    //    问题:父类进行初始化怎么能够释放掉 self指向的空间

    //         父类中的self 和子类中的 self 指向的时同一个空间

    

格式:if (self =[super  init ]){

初始化子类的东西

}
return  self

        返回self ----> alloc 完成的那个对象

  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值