22-oc构造方法基本概念

构造方法

在OC中init开头的方法, 我们称之为构造方法

构造方法的用途

构造方法的用途: 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值

如何实现构造方法

重写init方法, 在init方法中初始化成员变量



重写init方法

重写init方法必须按照苹果规定的格式重写, 如果不按照规定会引发一些未知的错误

必须先初始化父类, 再初始化子类

必须判断父类是否初始化成功, 只有父类初始化成功才能继续初始化子类

返回当前对象的地址

- (instancetype)init

{

// 1.初始化父类

// 只要父类初始化成功 , 就会返回对应的地址, 如果初始化失败, 就会返回nil

// nil == 0 == 假 == 没有初始化成功

self = [super init];

// 2.判断父类是否初始化成功

if (self != nil) {

// 3.初始化子类

// 设置属性的值

_age = 6;

}

// 4.返回地址

returnself;

}



注意子类构造方法中一定要使用super调用父类的方法

自定义构造方法

自定义构造方法就是自定义一个init方法

有时候我们需要在创建某个对象的时候,让对象的某些属性就具有值,这时候就需要传入一些参数给对象的属性,为了满足这个需求,就需要自定义构造方法

自定义构造方法的格式

一定是对象方法

一定返回id/instancetype

方法名称一定以init开头

- (instancetype)initWithAge:(int)age;



自定义构造方法在继承中的表现

自己的事情自己做,属于谁的属性就由谁来进行操作

父类的属性交给父类的方法来处理,子类的方法处理子类自己独有的属性

自定义构造方法在子类,如何调用的父类构造方法的

子类在重写自定构造方法时,一般使用super调用父类的构造方法,先让父类将父类的属性进行初始化

- (instancetype)initWithAge:(int)age andName:(NSString *)name andNo:(int)no

{

if (self = [super initWithAge:age andName:name]) {

_no = no;

}

returnself;

}



22-oc构造方法基本概念

时间: 2024-07-28 17:02:54

22-oc构造方法基本概念的相关文章

OC构造方法

构造方法我们创建一个对象的时候一般喜欢直接调用一个类方法,比如有一个Person类,我们为这个Person类创建对象一般是直接这样[Person new];其实new是NSObject中的一个类方法,这个new方法中是先调用了alloc方法,alloc方法也是一个类方法,作用是创建这个类的对象,再将这个对象的指针返回:再调用创建的对象的对象方法init,作用是初始化创建的对象的属性,然后返回这个已经被初始化的对象.比如: Person *p1 = [Person new]; 完全等价于: Per

<<黑马程序员>>OC构造方法

构造方法: ①  用来初始化对象的方法        ②   肯定是对象方法        ③   目的:使创建出来的对象都有一个默认是属性 创建对象的方式: 一 :   Person   *p  =  [ Person  new]              ①  创建对象会有两个步骤                  Person  *p  = [ Person  alloc ]     //  调用类方法 alloc 来分配存储空间                  Person  *p1

OC基础知识概念和注意点

------不喜勿喷------ ???面向对象的思想 以对象为主体,强调有拥有这些功能的对象. 好处:将复杂的事情简单化,更加符合人民的思想,从执行者到指挥者 ???对象 世界万物都是对象 ???类 对具体事物(对象)的抽象. 确定Object-C是面向象对象的 1.Foundation是一个框架 Foundation.h是框架的主头文件  import 是include的升级版,可以自动防止重复包含 注意:以后都要使用import 2.printf与NSLog的区别(C和OC输出函数的区别)

OC的基本概念

1.OC头文件为#import <Foundation/Foundation.h>意思为导入基础框架:2.输出形式为NSlog(@“格式声明");  @autoreleasepool,自动释放池:3.具有bool型变量(YES,NO);自己定义类:在工程名文件上右击鼠标,点击NEW file,选择sorce,点击cocoa class点击下一步,就会生成.h和.文件.4.OC:面向对象语言:面向过程重要为函数,以函数为单位,面向对象语言重要用类:以类为单位,用#import导入文件,

OC 构造方法

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

OC单例概念以及样例

单例: 一个类中在整个程序只会创建一个对象,这个单例对象的数据是整个程序所有的文件所有的函数可以共享.和全局变量类似 NSFileManagerUIApplication //函数开头 defaultXXXX或者 sharedXXX 非标准单例 + (MyPlane *)defaultPlane{     static MyPlane * plane = nil;     @synchronized(self){         if (!plane) {             plane =

OC基础--构造方法 id类型

new方法实现原理: new做了三件事情 1.开辟存储空间  + alloc 方法 2.初始化所有的属性(成员变量) - init 方法 3.返回对象的地址 [Person new]; == [[Person alloc] init]; alloc: 1.开辟存储空间 2.将所有的属性设置为0 3.返回当前实例对象的地址 init:  1.初始化成员变量, 但是默认情况下init的实现是什么都没有做 2.返回初始化后的实例对象地址 注意: alloc返回的地址, 和init返回的地址是同一个地址

C和OC的基础语法(易混淆的概念知识)

List 0. 深复制与浅复制, NSObject万能指针.id指针.instancetype区别,单例import.include.@class的区别 strong 与 weak 区别 #define  和  typedef的区别, static 与  extern 区别,@required与@optional 区 别,@private.@protected .@public.@package区别 变量的命名规则以及规范(4规则,2规范) 数据类型转换 printf与scanf,自增自减,逻辑

OC基础复习(六)之构造方法小结

写到这里心慌慌的,压力骤然而起, 1.什么是构造方法? OC构造方法 构造方法我们创建一个对象的时候一般喜欢直接调用一个类方法,比如有一个Person类,我们为这个Person类创建对象一般是直接这样[Person new];其实new是NSObject中的一个类方法,这个new方法中是先调用了alloc方法,alloc方法也是一个类方法,作用是创建这个类的对象,再将这个对象的指针返回:再调用创建的对象的对象方法init,作用是初始化创建的对象的属性,然后返回这个已经被初始化的对象.比如: Pe