OC中自定义构造方法

格式

-(instancetype)init(){
   self=[super init]
   if(self){

   }
   return self;
}

  

自定义构造方法规范

1)一定是对象方法,以减号开头
2)返回值一般是id类型
3)方法名一般以initWith开头

 带参数的构造方法

-(instatncetype) initWithName:(NSString *) name andAge:(int)age{  if(self=[super init]){

    _age=age;    _name=name;  }

  return self;

}

使用:  Person *p1=[[Person allco]initWithNmae:@"张三丰" andAge 19];

  

 

时间: 2024-11-07 02:55:07

OC中自定义构造方法的相关文章

OC中构造方法、自定义构造方法、id类型

一:id类型 1> id 是一种类型,万能指针,能够指向\操作任何的对象. typedef struct objc_object *id; 注意点:在使用id定义的时候,一定要注意(*)id类型默认已经包含了*所以不需要在加*; 局限性:调用一个不存在的方法,编译器会马上报错. 2>instancetype类型 (1)instancetype会让编译器检查实例化对象的准确类型 (2)instancetype只能用于返回类型,不能当做参数使用 3>.instancetype & i

OC语法4——自定义构造方法,description方法

自定义构造方法: 我们已经知道创建对象分两步,1:在内存中开辟存储空间,并把地址存储在指针变量里,2:调用指针变量的初始化方法init初始化该对象. Student * stu = [Student alloc]; stu = [stu init]; 在这里,init方法是系统原始的初始化方法,但有时我们需要重写该初始化方法,使其在创建该对象的同时赋予它属性的值. 假如,我们现在要重写原始初始化方法,使其创建一个有年龄(age)的stu. 首先,在Student.h中声明自定义方法: - (id

OC的构造方法init以及自定义构造方法

之前我们利用类来创建对象用到了一个类方法new,可是new方法具体是怎么执行的呢?例如 1 Person *p = [Person new]; 程序只要执行了这一行代码,内存中就会有一个Person类和Person对象,并且Person对象的所有实例变量都初始化为0,并且还有个isa指针指向Person类,那么这个对象实际上是通过两部产生的:第一步,调用Person类的alloc类方法分配一定的内存空间给Person对象,它的返回值就是对象本身,实际上也是这一段内存空间的首地址:第二步,调用对象

继承中的自定义构造方法

1.继承中的自定义构造方法 不能在子类访问父类私有变量 @interface Person : NSObject @property int age; - (id)initWithAge:(int)age; @end @interface Student : Person @property NSString *name; - (id)initWithAge:(int)age andName:(NSString *)name; @end @implementation Student - (id

OC中保存自定义类型对象的持久化方法

OC中如果要将自定义类型的对象保存到文件中,必须进行以下三个条件: 想要把存放自定义类型的数组进行 持久化(就是将内存中的临时数据以文件<数据库等>的形式写到磁盘上)必须满足: 1. 自定义对象必须要序列化(将数据有序的存放) 2. 需要使用归档来进行持久化 3. 如果要加载持久化文件需要进行反序列化(就是将有序存放的数据读取并变成自定义对象) 第一要将自定义类型序列化以及第三步并将文件反序列化必须实现OC中的  <NSCoding>协议. 以Student类为例 @interfa

OC中实例变量可见度、setter、getter方法和自定义初始化方法

在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识 实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特点如下: 具体的使用示例如下: 编程时默认的可见度是@protectde,为什么不使用@public呢? 因为OC是面向对象编程,使用@public关键字,暴漏了类内部的细节,从而不符合面向对象语言的三大特性之一——封装 实例变量经过@protectde修饰之后,我们就不能在该类和其子类外操作,例如

OC基础(七)构造方法与自定义构造方法

一.构造方法 在OC中构造方法是init开头的方法, 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值. 构造方法属于对象方法,以“-”开头 例如:在创建对象的时候就调用了init方法. Person *p = [[Person alloc] init]; 可以分解为 Person *p1 = [Person alloc]; //分配空间 Person *p = [p1 init];  //初始化对象,即调用init方法 书写格式: - (instancetype)init { se

OC中构造方法

构造方法:用来初始化对象的方法,是个对象方法,- 开头 创建对象 Class class = [Class new]; 在开发中一般都不使用new 方法 因为new 方法太局限性 new 方法可以拆分成2个步骤 1. 分配存储空间 +alloc Class class = [Class alloc]; 2. 对象初始化 –init Class class2 = [class init]; 上面2句话就可以写成 Class class = [[Class alloc] init]; 在开发中一般都

oc语言中的构造方法

一 构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法来分配存储空间(返回分配的对象):2)使用init方法来对对象进行初始化. 可以把new方法拆开如下: 1.调用类方法+alloc分配存储空间,返回未经初始化的对象 Person *p1=[person  alloc]; 2.调用对象方法-init进行初始化,返回对象本身    Person *p2=[p1 init];  3.以上