22-oc构造方法基本概念

wc&Home      2022-02-07     703

关键词:

构造方法

 在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;

}

 


 

java基本概念

...,成员变量,类变量。简单理解三个变量就是:在方法、构造方法或者语句块中定义的变量被称为局部变量。方法结束后会自动销毁成员变量是定义在类中,方法体之外的变量。成员变量可以被类中方法、构造方法和特定类 查看详情

09多线程--基本概念

...。将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。 查看详情

java——面向对象——方法的概念和语法

...向对象——方法一、概念二、基本语法语法1-无参方法的构造:语法2-有参方法的构造:语法3-无返回值方法的构造:语法4-有返回值方法的构造:语法5-方法的重载:语法6-定义任意个数参数的方法:一、概... 查看详情

(王道408考研数据结构)第五章树-第四节3:哈夫曼树基本概念构造和哈夫曼编码

...本概念(1)相关术语(2)哈夫曼树定义二:哈夫曼树的构造三:哈夫曼树特点四:哈夫曼树典型应用-哈夫曼编码在计算机中,文件压缩一项非常重要的技术,它除了可以减少文档在磁盘上的空间外,还可以便于网络传输所谓压... 查看详情

java语言学习总结扩展篇包装类的概念及其使用(代码片段)

...类型的数据,包装到包装类中(基本类型的数据->包装类)构造方法:  Integer(intvolue)构造一一个新分配的Integer对象,它表示指定的int值。  Integer(Strings)构造一-个新分配的Integer对象,它表示String参数所指示的int值。  传递的... 查看详情

反射与类加载之反射基本概念与class

...内容来阐述反射与类加载:[三种获取Class对象的方式][获取构造器实例化对象与属性信息][Android配置打包签名信息的两种方法][Hook动态注入代码]一、反射基本概念与三种获取Class对象的方式Class类是一切的反射根源。Class类表示什... 查看详情

《一》对象和封装(代码片段)

...出名词,确定方法剔除与业务无关的属性和方法 三、构造方法及其重载3.1构造语法:访问修饰符构造方法名()//初始化代码 3.2方法重载的规则:方法名相同参数 查看详情

散列的基本概念构造散列函数以及解决冲突

散列定义  散列表(Hash Table,也称哈希表),是一种根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度... 查看详情

Java 从基本构造函数调用基本方法

】Java从基本构造函数调用基本方法【英文标题】:Javacallbasemethodfrombaseconstructor【发布时间】:2011-08-2819:44:33【问题描述】:如何从Super::Super()调用Super::printThree?在下面的示例中,我改为调用Test::printThree。classSuperSuper()printThree()... 查看详情

uml的概念模型

...语言的概念模型,这要求学习建模的3个要素:UML的基本构造块、支配这些构造块如何放在一起的规则和一些运用于整个UML的公共机制。如果掌握了这些思想,就能够读懂UML模型,并能建立一些基本模型。当有了较丰富的应用UML... 查看详情

gstreamer基础教程02-基本概念(代码片段)

...的控制pipline中的element,我们需要单独创建element,然后再构造pipeline,下面将介绍GStreamer的一些基本概念并展示pipeline的另一种构造方式。 基本概念Element我们知道element是构建GStreame 查看详情

stl库之集合基本使用方法

...头引入这个头文件,并且同样加上一句usingnamespacestd二、构造一个集合C++中直接构造一个set的语句是:set<int>a.这样我们就定义了一个名为a的、储存数据类型为int的集合(与vector类似 查看详情

计算机程序的思维逻辑(16)-继承的细节

...有一些相关的细节,本节就来探讨这些细节,具体包括:构造方法重名与静态绑定重载和重写父子类型转换继承访问权限(protected)可见性重写防止继承(final)下面我们逐个来解释。构造方法super上节我们说过,子类可以通过sup 查看详情

java学习(代码片段)

类(1)创建类后没有手动添加构造方法时,系统默认有一个没有参数的构造方法.(2)当给类手动添加构造方法后,默认无参的构造方法将不存在,需要我们手动添加一个无参的构造方法.堆栈相关知识参考视频Java八种基本数据类型又可以... 查看详情

js面向对象的基本概念和基本使用方法

js面向对象的基本概念和基本使用方法->js是不是一个面向对象的语言?不是:与传统面向对象的理论语言有矛盾。C#,Java。是:js里面到处都是对象,数组,时间,正则…和DOM。也可以像传统面向对象的语言那样用new的方式创建... 查看详情

构造方法

*java中没有构造函数的概念构造方法是创建对象时调用的方法,不要理解为构造方法就是创建对象的方法,因为构造方法主要是用来加载和初始化类的一些资源,创建一个对象并不完全靠构造方法完成,构造方法主要进行创建对... 查看详情

class的基本语法(代码片段)

...的由来JavaScript语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。functionPoint(x,y)this.x=x;this.y=y;Point.prototype.toString=function()return‘(‘+this.x+‘,‘+this.y+‘)‘;;varp=newPoint(1,2);上面这种写法跟传统的面向对象语言(... 查看详情

数据结构6.查找(代码片段)

...概念6.4散列(Hash)表6.4.1散列表的基本概念6.4.2散列函数的构造方法6.4.3处理冲突的方法1.开放定址 查看详情