Objective-C学习- 便利初始化函数和便利构造器

  在面向对象的语言中,Objective-C的 便利初始化函数 可以理解为 如 Java,C++ 中的含参数的构造函数,但又有些不同...

  例如,用Student类为例

  

首先是Student.h文件

  #import <Foundation/Foundation.h>

  @interface Student : NSObject

  //定义属性

  @property NSString *studentName; //学生姓名

  @property int age; //学生年龄

  //含姓名参数和年龄参数的构造函数(便利构造初始化函数)

  -(id) initWithName:(NSString *)name andWithAge:(int)age;

  //便利构造器(是类方法)  

  +(id) initWithName:(NSString *)name andWithAge:(int)age;

  @end

然后是管理实现的Student.m文件

  #import "Student.h"

  @implementation Student

  //含姓名参数和年龄参数的构造函数(便利构造初始化函数)

  -(id) initWithName:(NSString *)name andWithAge:(int)age

  {

    if (self =  [super init])

    {

    [self setStudentName:name];

    [self setAge:age];

      }

  return self;

  }

  //便利构造器(是类方法)

  +(id) initWithName:(NSString *)name andWithAge:(int)age

   {

  Student *student = [[Student alloc] initWithName:name andWithAge:age];

return student;

    }

  @end

在main.m里面查看用法

  #import <Foundation/Foundation.h>

  #import "Student.h"

  int main(int argc, const char * argv[]) {

  //之前的定义方法

  Student *student = [[Student alloc]initWithName:@"小明" andWithAge:19];

    //用便利构造器,用便利构造器可以看出来,定义要简单的多

  Student *student1 = [Student initWithName:@"小明" andWithAge:19];

  return 0;

  }

时间: 2024-11-09 09:03:19

Objective-C学习- 便利初始化函数和便利构造器的相关文章

OC语言中的便利初始化函数和便利构造器

便利遍历初始化函数与便利构造器(以Student类为例): main函数 Student.h(声明) ................... Student.m(实现) .................

iOS: 聊聊 Designated Initializer(指定初始化函数)

iOS: 聊聊 Designated Initializer(指定初始化函数) 一.iOS的对象创建和初始化 iOS 中对象创建是分两步完成: 分配内存 初始化对象的成员变量 我们最熟悉的创建NSObject对象的过程: 苹果官方有一副图片更生动的描述了这个过程: 对象的初始化是一个很重要的过程,通常在初始化的时候我们会支持成员变量的初始状态,创建关联的对象等.例如对于如下对象: 1 @interface ViewController : UIViewController 2 3 @end 4

iOS: Designated Initializer(指定初始化函数)

一.iOS的对象创建和初始化 iOS 中对象创建是分两步完成: 分配内存 初始化对象的成员变量 我们最熟悉的创建NSObject对象的过程: 苹果官方有一副图片更生动的描述了这个过程: 对象的初始化是一个很重要的过程,通常在初始化的时候我们会支持成员变量的初始状态,创建关联的对象等.例如对于如下对象: Test ViewController 上面的VC中有一个成员变量XXService,在viewWillAppear的时候发起网络请求获取数据填充VC. 大家觉得上面的代码有没有什么问题? 带着这

Objective-C学习笔记_继承、初始化方法、便利构造器

一.继承 继承的上层:父类,继承的下层:子类.继承是单向的,不能相互继承.继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和?为.子类能继承父类全部的特征和行为. 例题 打僵尸.需求: 1.定义普通僵尸类: 实例变量:僵尸总血量.僵尸每次失血量. 方法:初始化方法(总血量).被打击失血.死亡. 2.定义路障僵尸类: 实例变量:僵尸总血量.僵尸每次失血量,道具,弱点. 方法:初始化方法(总血量).被打击失血.失去装备.死亡. 3.定义铁桶僵尸类: 实例变量:僵尸总血量.僵尸每次失血量,道

Objective-C 继承、初始化方法、便利构造器

继承.初始化方法.便利构造器 今天我们要学习继承 初始化方法 以及遍历构造器 首先我们要理解一些概念性的东西. 继承: 在OC里,继承是单继承的,所谓的单继承就是一个子类继承一个父类,例如我们之前创建的Person类是继承于NSObject的.回顾一下继承的格式 @interface Person : NSObject //在冒号后面是继承的父类. 人继承与NSObject 子类是只能继承一个父类,但父类却可以有多个子类.例如: @interface Student : Person // 学生

swift学习笔记-&gt;初始化

这节重点讲下swift的初始化函数   也就是构造函数init 类,结构,枚举  都有初始化函数,就拿类举例 首先说明一点   在类的初始化时  所有储存属性必须有值   这点在前面类的学习中也有提到过 class test{ var i:Int } 所以说这样是会报错的 初始化方法  构造器 class test{ var i:Int = 1 }//此时该类拥有一个默认的初始化方法 方法中给变量ii赋值 class test1{ var i:Int init (){ self.i=1 } }

20151212jquery学习笔记--工具函数

工具函数是指直接依附于 jQuery 对象,针对 jQuery 对象本身定义的方法,即全局性 的函数.它的作用主要是提供比如字符串.数组.对象等操作方面的遍历. 一.字符串操作 在 jQuery 中,字符串的工具函数只有一个,就是去除字符串左右空格的工具函数: $.trim(). //$.trim()去掉字符串两边空格 varstr=' jQuery '; alert(str); alert($.trim(str)); 二.数组和对象操作 jQuery 为处理数组和对象提供了一些工具函数,这些函

MySQL学习笔记-自定义函数

MySQL学习笔记-自定义函数 1.自定义函数简介 自定义函数:用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同 自定义函数的两个必要条件:(1)参数  (2)返回值 自定义函数: 创建自定义函数 CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} routine_body 关于函数体: 1.函数体可以由合法的SQL语句构成: 2.函数体可以是

深度学习——MSRA初始化

本次简单介绍一下MSRA初始化方法,方法同样来自于何凯明paper <Delving Deep into Rectifiers:Surpassing Human-Level Performance on ImageNet Classification>. Motivation MSRA初始化 推导证明 补充说明 Motivation 网络初始化是一件很重要的事情.但是,传统的固定方差的高斯分布初始化,在网络变深的时候使得模型很难收敛.此外,VGG团队是这样处理初始化的问题的:他们首先训练了一个