iOS阶段学习第12天笔记(类的初始化)
iOS学习(OC语言)知识点整理
一、类的初始化
1)init初始化方法(构造方法):一般和alloc一起调用,用于给成员变量初始化。
2)id类型:相当于C中的void*,可以指向任何对象,不能加*,类似.net或java中的泛型。
3)带参的初始化方法(自定义的初始化方法),是实例方法,必须以initWith开头 。
例如:
-(id)initWithName:(NSString*)name andPrice:(float)price andPage:(int)page;
Book *b3=[[Book alloc]initWithName:@"iOS开发" andPrice: andPage:];
4)初始化类时需要判断父类对象是否已经初始化成功只有当父类对象初始化成功了才可以给类成员赋值。
初始化方法三步原则:
1)调用父类的init方法。
2)初始化自己的成员变量。
3)返回self 对象。
实例代码:
-(id)init
{
//调用父类的方法初始化从父类中继承的成员变量
//super实际上是一个编译器符号,表示调用父类的方法
self=[super init];
if(self!=nil){ //nil相当于c中的NULL,如果父类初始化成功,才可 以继续操作(实现成员变量的初始化)
_name=@"myBook";
_page=;
_price=;
}
return self;//返回当前对象
}
5)点语法的介绍,点语法本质是一个方法的调用;点语法调用的方法一般只能是一个参数的实例方法。
6)@property声明属性,会自动生成对应属性的set,get方法 ; 功能相当于以下2个方法的声明
1、-(void)setName:(NSString *)setname;
2、-(NSString *)getname;
7)self的说明,如果是在实例方法中self代表当前调用此方法的实例对象,如果是在类方法中self代表当前所在类的类对象。
8)@synthesize合成方法体 会自动生成property所对应元素的方法体,@synthesize name =_name;表明方法是操作成员变量_name,
如果_name不存在, 会自动创建一个 成员变量_name;如果要使用@synthesize,必须有@property; 但有@property 可以没有@synthesize。
9)@property 可以同时声明同种数据类型的多个属性;例如:@property(nonatomic,assign)int age,ID。
10)@property的修饰符介绍:
1、readonly:只读,只生成getter方法,没有setter方法。
2、 readwrite:可读写,会生成setter和getter方法,默认是readwrite
3、nonatomic:不需要考虑数据同步,单线程应用程序中效率较高
4、atomic:需要考虑线程同步,效率低,默认是这种。
与内存管理相关:
5、assign:直接赋值,一般用于int、float、double、long等基本类型
6、retain:一般用于对象
7、copy:一般用于字符串
8、默认是readwrite、atomic、assign
二、关于继承的介绍
1)子类继承父类:会继承父类中所有的成员变量(包括私有的)和方法,还可以增加自己特有的成员。
2)当父类的方法不适合子类,可以对其方法进行重写,重写需要方法和父类中的方法名完全一样。
3)当两个类有很多相同的属性和方法时,可以将相同的部分提取出来构成父类,让这两个类继承父类
当父类的功能不能满足需求时,可以考虑继承父类创建子类,如果类A完全拥有类B的部分属性和方法时,
可以考虑类B继承类A,也可以考虑组合。
1、继承的好处:可以表示类与类之间的关系,可以统一接口.
2、缺点是:耦合性太强。
4)super关键字的介绍:
1、super实际上是一个编译器符号,用于调用父类的方法
2、当子类重写父类的方法,同时又想保留父类的功能时,可以用super调用
3、super处在类方法中,自动调用父类的类方法,处在实例方法中,自动调用父类的实例方法
iOS阶段学习第12天笔记(类的初始化)的更多相关文章
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- iOS阶段学习第31天笔记(UINavigationBar介绍)
iOS学习(UI)知识点整理 一.UINavigationBar 的介绍 1)概念:UINavigationBar 是用于定义导航栏按钮的一个类对象 2)在使用UINavigationBar之前必须先 ...
- iOS阶段学习第29天笔记(UITextField的介绍)
iOS学习(UI)知识点整理 一.关于UITextField的介绍 1)概念: UITextField 是用于接收用户输入的一个控件 2)UITextField 初始化实例代码: //创建一个UIt ...
- iOS阶段学习第26天笔记(UILabel的介绍)
iOS学习(UI)知识点整理 一.关于UILabel的使用介绍 1)概念:UILabel是一个继承自UIView的用于展示文本信息的控件 2)UI中所有的控件都继承自UIView 即UIView 是U ...
- iOS阶段学习第20天笔记(MRC内存管理)
iOS学习(OC语言)知识点整理 一.OC中的内存管理 1)概念:内存管理的对象为所有继承了NSObject的对象,对基本数据(如:int .float.double...)无效 OC中采用 ...
- iOS阶段学习第19天笔记(协议-Protocol)
iOS学习(OC语言)知识点整理 一.关于协议(Protocol)的介绍 1)概念:协议指多个对象之间协商的一个接口对象,协议提供了一些方法用在协议的实现者和代理者 之间通讯的一种方式 2) ...
- iOS阶段学习第17天笔记(NSFileManager-NSFileHandle-文件操作)
iOS学习(OC语言)知识点整理 一.单例模式 1)单例是一种编程思想,一个设计模式,与语言无关在采用了单例对象的应用程序中,需要单例类自行提供实例化单例对象, 不管实例化单例对象多少次,只有一个对象 ...
- iOS阶段学习第15天笔记(NSDate操作)
iOS学习(OC语言)知识点整理 一.OC关于NSDate类的操作实例代码 //默认直接显示对象,显示的是格林威治时间 //获取当前日期时间的实例方法 NSDate *date1=[[NSDate a ...
- iOS阶段学习第15天笔记(NSArray与NSMutableArray 数组)
iOS学习(OC语言)知识点整理 一.OC中的数组 1)数组:也是一个对象,数组中存放的是对象的地址,可以存放任意类型对象的地址,只能是对象不能是具体的数值,数组是有序的, 可以存放重复的元 ...
随机推荐
- fsfds
ccc fs -fsd fsdfsfs
- Android开发小问题总结
Android开发遇到的小问题之小解: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- EXCEL的导出
具体实现代码: protected void EXCEL_Click(object sender, EventArgs e) { ToExcel(GridView1); } public void T ...
- salesforce 零基础开发入门学习(七)PickList的value值获取
之前介绍过PickList类型的声明以及赋值,但是如何取出呢?一个sObject对象可以理解为一条数据.通过sObject直接取恐怕很难做到,因为他只会显示一个值.这时候就要用到Schema命名空间中 ...
- iOS开发——高级技术&广告服务
广告服务 上 面也提到做iOS开发另一收益来源就是广告,在iOS上有很多广告服务可以集成,使用比较多的就是苹果的iAd.谷歌的Admob,下面简单演示一下如何 使用iAd来集成广告.使用iAd集成广告 ...
- 每天一个linux命令(31): /etc/group文件详解
Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件.linux /etc/group文件是有关于系统管理员对用户 ...
- 在 xampp 环境下安装 laravel
网上搜了很多教程,很多都是采用命令行安装的.但是对于web前端来说,根本就不知道在干吗! 于是,打算写一篇文章,来教后面的人如何在 XAMPP 环境下安装 laravel. 初步认识 XAMPP(Ap ...
- 快速入门系列--WCF--07传输安全、授权与审核
这部分主要涉及企业级应用的安全问题,一般来说安全框架主要提供3个典型的安全行为:认证.授权和审核.除了典型的安全问题,对于一个以消息作为通信手段的分布式应用,还需要考虑消息保护(Message Pro ...
- 【目录】Newlife XCode组件相关文章目录
本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.Newlife XCode组件相关文章目录 1.Newlife XCode组件资源目录汇总[2013年版] 2.Newlife ...
- 推荐一个算法编程学习中文社区-51NOD【算法分级,支持多语言,可在线编译】
最近偶尔发现一个算法编程学习的论坛,刚开始有点好奇,也只是注册了一下.最近有时间好好研究了一下,的确非常赞,所以推荐给大家.功能和介绍看下面介绍吧.首页的标题很给劲,很纯粹的Coding社区....虽 ...