Object_C初始化方法, 遍历构造器
//版本1
//- (id)init
//{
// work = @"工作";
// return self;
//}
//
// //版本2:调用父类的init方法,为父类的实例变量赋初值
//- (id)init
//{
// [super init];
// work = @"工作";
// return self;
//}
//
// //版本3:出于安全考虑,判断父类是否初始化成功,如果父类初始化成功,,在初始子类
//- (id)init
//{
// self = [super init];
// if (self != nil) {
// work = @"工作";
// }
// return self;
//}
//版本4 代码优化
//- (id)init
//{
// self = [super init];
// if (self) {
// work = @"工作";
// }
// return self;
//}
//版本5:优化代码
//- (id)init
//{
// if (self = [super init]) {
// work = @"工作";
// }
// return self;
//}
//初始化方法
//1.返回值类型为id
//2.方法名一般以init开头
//3.
//重写系统方法
- (id)init
{
self = [super init];//调用父类初始化
if (self) { //判断父类是否初始化成功
work = @"工作";//给实例变量赋初值
}
return self;//最终返回self
}
@interface Student : NSObject
{
NSString *name;
NSInteger number;
CGFloat score;
}
//自定义初始化方法
//解决的问题:把初始化和实例变量的赋值,结合在一起
//1.实例方法(-)
//2.返回值类型为id
//3.方法以init开头
- (id)initWithName:(NSString *)aName number:(NSInteger)aNumber score:(CGFloat)aScore;
- (id)initWithName:(NSString *)aName;
//便利构造器
//解决问题:把对象的创建和实例变量的赋值,结合在一起
//1.类方法(+)
//2.返回值类型为当前类(Student *)
//3.方法以当前类名开头(student)
+ (Student *)studentWithName:(NSString *)aName number:(NSInteger)aNumber score:(CGFloat)aScore;
+ (Student *)studentWithName:(NSString *)aName number:(NSInteger)aNumber score:(CGFloat)aScore
{
//1
// Student *student = [[Student alloc] init];
// [student setName:aName];
// [student setNumber:aNumber];
// [student setScore:aScore];
// return student;
//2
// Student *student = [[Student alloc] initWithName:aName number:aNumber score:aScore];
// return student;
//3
return [[Student alloc] initWithName:aName number:aNumber score:aScore];
}
Object_C初始化方法, 遍历构造器的更多相关文章
- OC基础:继承.初始化方法,便利构造器 分类: ios学习 OC 2015-06-16 19:27 84人阅读 评论(0) 收藏
继承: 1.单向继承,一个类只能有一个父类,一个父类可以有多个子类. 2.单向继承,基类(根类)是OSObject 3.子类可以继承父类的属性和方法 当父类的方法不满足子类的需求时,子类可以重写父类的 ...
- OC:继承、初始化方法、便利构造器
A继承 的作用就是为了,节省代码. 继承 :子类会继承父类 里面所有的内容 思想 :凡是继承过来的实例变量和方法 都是自己的(是从父类遗传过来的) 继承的使用场景 : 当我们多 ...
- 初始化方法,init,构造器
1.继承于NSObject class student: NSObject { var name : String? var age : Int = var friend : Int = init(n ...
- Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)
原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...
- 静态工厂方法VS构造器
我之前已经介绍过关于构建者模式(Builder Pattern)的一些内容,它是一种很有用的模式用于实例化包含几个属性(可选的)的类,带来的好处是更容易读.写及维护客户端代码.今天,我将继续介绍对象创 ...
- oc实例变量初始化方法
1 使用实例setter方法 默认初始化方法 + setName:xxx setAge:xxx 2 使用实例功能类方法,默认初始化方法 + setName:xxx age:xxx3 使用实例初始化方法 ...
- iOS学习之Object-C语言继承和初始化方法
一.继承 1.面向对象的三大特性:封装,继承,多态. 面向对象提供了继承特性.把公共的方法和实例变量写在父类里,子类只需要写自己独有的实例变量和方法即可.继承既能保证类的完整,又能简化代码. ...
- CLR类型设计之方法与构造器
无论学习那门语言都要学习函数体,C#,JAVA,PHP,都会涉及到函数体,而C#的函数体成员并不少,方法和构造器就是函数体成员之一,函数体成员还包括但不限于:方法,属性,构造器,终结器,运算符及索引器 ...
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
JAVA之旅(三)--数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想 我们继续JAVA之旅 一.数组 1.概念 数组就是同一种类型数据的集合,就是一个容器 数组的好 ...
随机推荐
- Nagios自定义扩展
原理:监控端通过check_nrpe把要监控的指令发送给被监控端,被监控端在本机执行监控任务,并把执行的结果发送回监控端. 如何扩展Nagios,以实现自定义监控? 借助插件进行的每一次有效的Nagi ...
- mysql 建库建表建用户
1.创建数据库 create database school; 2.使用数据库 Use school; 3.创建用户 create user jame@localhost identified by ...
- org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException
使用Intelij Idea时,报错如下: org.apache.catalina.core.StandardContext.listenerStart Error configuring appli ...
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)
3.通过 SVN 检入工程 在 bae 上的应用添加部署成功后,如图 7 点击“点击查看”按钮,会打开一个新页面,页面上会打印 “hello world” ,这是因为我们的应用包含有示 ...
- Clustered Index & Non Clustered Index(聚簇索引和非聚簇索引)
每个表只能有一个聚簇索引,而能有200多个非聚簇索引. 在物理分配上, 每个表的数据都是分配在页上,一个页大概有8k左右,假设一条数据占1000字节的话,那么8000条数据占8000*1k/8k = ...
- 使用HttpModule实现网址重写
1. 修改配置文件: <httpModules> <</span>add name="html" type="HttpModule&quo ...
- jquery获取当前屏幕宽度
参考文章 <script type="text/javascript"> $(document).ready(function() { alert($(window). ...
- Python学习day5作业
目录 Python学习day5作业 ATM和购物商城 1. 程序说明 2. 基本流程图 3. 程序测试帐号 4. 程序结构: 5. 程序测试 title: Python学习day5作业 tags: p ...
- js取当前页面名称
// 取当前页面名称(不带后缀名) function pageName() { var a = location.href; var b = a.split(& ...
- 集合List与DataTable互转
/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...