Objective-C 面向对象初体验

1.类的声明


1-1@interface开始,@end结束

1-2变量和方法不能混在一起,实例变量必须放在{}内

1-3没有static、const的实例变量。在.m文件中可以声明static静态属性:属于类,不属于对象。同样,也没有const方法,没有友元方法。

1-4“-”声明的方法是protect,“+”声明是public,如果一个方法在.h中没有声明,但在.m中有定义,则只能是.m文件中类内部使用的private方法。所有方法都不能在类的声明中实现。

1-5所有的类都继承自NSObject。

1-6实例变量的默认访问权限是@protected.

1-7方法的返回值类型和参数可以不写,默认是id类型(相当于C++中的void*通用指针类型)。

1-8同一个类内方法不能重载,即方法的签名不能完全一样。

 

2.类的实现


2-1和.h文件下声明保持签名一致,必须有方法的实现体。如果一个方法在.h中没有声明,但在.m中有定义,则只能是.m文件中类内部使用的private方法。

 

3.类的实例化

3-1 ObjC中,所有对象都在堆区创建,不能在栈区创建对象。例如:在堆区分配内存,创建对象。

Fraction * frac = [Fraction alloc]init];

3-2 关于空对象nil。类似于C++ 中的NULL。

区别:nil是一个对象,而NULL只是一个值 NULL==0

nil调用人和方法都不起作用,不产生crash也不抛出异常。

3-3 –alloc方法继承自NSObject,子类不能重载(子类可以重写init方法)。alloc是类方法,只能通过类名调用。

3-4 alloc分配内存后还需要使用init方法将实例变量初始化。

 

4.消息

ObjC 中最大的特色就是消息传递。

消息的接收者一定是对象。消息接收者的实参可以是消息表达式。

 

5.对象初始化

5-1对象创建出来以后,对象的内存被初始化为0.

5-2 初始化方法实现(模式):

-(id)init

{

     if(self =[super init])

{

     …

}

return self;

}

5-3 初始化方法可以有多个,一般所有初始化方法都已init开头。参数少的初始化方法可以间接调用初始化参数多初始化方法,实现重用。

5-4 一个类可以多个初始化方法,但只能有一个指定初始化方法。它一般有最多的参数,做最多工作的初始化方法。其他初始化方法可以调用它。

 

6.属性

6-1 类的实例变量一般为保护或私有,通过对象不能访问这些实例变量,可以通过get或set访问。get和set命名规则:get+实例变量名(首字母大写),set相同原则。

6-2 属性声明机制:

@property 类型名 属性名 写在.h中

@synthesize 属性名  写在.m中

@property int age; 默认是可读可写readwrite,即自动生成get和set方法。@property(readonly)intage;只读属性,只生成get方法。@property(writeonly)int age;只可以写属性,只生成set方法。

6-3 属性的访问

stu.age; == [stu age];都是调用get方法

stu.age = 10; == [stu setAge:10]; 都是调用set方法

 

7.self和super

7-1 self是方法的一个隐藏参数,类似于C++中的this,

在.m文件中 self是指向当前实例的指针,它的值可以改变。(self->age)

当一个方法调用同类中另一个方法时self不可以省略。

([self initWithAge:20])

必须使用self指明消息的接受者。

7-2 super是一个编译指示符。它只是告诉编译器,当调用class的方法时,要去调用父类的方法,而不是本类的,但消息接收者依然是本类,即super不改变消息接收者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值