//
//  Person.h#import <Foundation/Foundation.h>@interface Person : NSObject@property int age;
@property NSString *name;/*自定义构造方法:其实就是自定义一个init方法1.一定是对象方法2.一定返回id/instancetype3.方法名称一定以init开头
*/
- (instancetype)initHwwAge:(int)age;// 一个类可以有0个或者多个自定义构造方法
- (instancetype)initWithName:(NSString *)name;// 自定义构造方法可以有1个或多个参数
- (instancetype)initWithAge:(int)age andName:(NSString *)name;
@end

//
//  Person.m#import "Person.h"@implementation Person- (instancetype)init
{if (self = [super init]) {_age = 10;}return self;
}- (NSString *)description
{return [NSString stringWithFormat:@"age = %i, name = %@", _age, _name];
}- (instancetype)initHwwAge:(int)age
{if (self = [super init]) {_age = age;}return self;
}- (instancetype)initWithName:(NSString *)name
{if (self  =[super init]) {_name = name;}return self;
}- (instancetype)initWithAge:(int)age andName:(NSString *)name
{if (self = [super init]) {_age = age;_name = name;}return self;
}
@end

//
//  main.m
//  自定义构造方法#import <Foundation/Foundation.h>
#import "Person.h"int main(int argc, const char * argv[]) {Person *p9 = [Person new];//_age=10,_name=nilPerson *p8 = [[Person alloc] init];p8.age = 20;//_age=10,_name=nilPerson *p7 = [[Person alloc] initHwwAge:20];//_age=20,_name=nilPerson *p6 = [[Person alloc] initWithName:@"lnj"];//_age=0,_name=@"lnj"Person *p5 = [[Person alloc] initWithAge:20 andName:@"lnj"];//_age=20,_name=@"lnj"NSLog(@"%@", p5);Person *p4 = [[Person alloc] init];p4.age = 30;//_age=30,_name=nilPerson *p3 = [[Person alloc] initHwwAge:30];//_age=30,_name=nilPerson *p23 = [[Person alloc] initWithName:@"lmj"];//_age=0,_name=@"lmj"Person *p2 = [[Person alloc] initWithAge:30 andName:@"lmj"];//_age=30,_name=@"lmj"NSLog(@"%@", p2);return 0;
}

转载于:https://www.cnblogs.com/yaowen/p/7417377.html

oc35--自定义构造方法相关推荐

  1. 七:构造方法与自定义构造方法

    一.构造方法 1.在OC中构造方法是init开头的方法, 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值. 构造方法属于对象方法,以"-"开头 例如:在创建对象的时候 ...

  2. 不写默认无参构造方法,调用自定义构造方法时报错No constructor found in com...

    如果在实体类里面自定义构造方法,没有写默认无参构造方法,然后初始化类的对象,调用自定义构造方法的时候,就会报如下错误: 解决办法是:在实体类中加入无参数构造方法即可,如下图

  3. id、构造方法、Category 分类、类的本质、description方法、SEL

    1.id: 万能指针id :id对象不能用点语法.id对象本身已经有 * 了 因此变量名不能有 * . 可以吧id理解为 NSObject * 类型数据! int main() { @autorele ...

  4. 杨校老师课堂之Java类与对象、封装、构造方法

    杨校老师课堂之Java类与对象.封装.构造方法 本篇文章内容如下: 面向对象 类与对象 三大特征--封装 构造方法 教学目标 能够理解面向对象的思想 能够明确类与对象关系 能够掌握类的定义格式 能够掌 ...

  5. 06-自定义构造方法

    1.自定义构造方法的规范 (1)一定是对象方法,一定以 - 开头 (2)返回值一般是id类型 (3)方法名一般以initWith开头 以Person类为例,初始化姓名和年龄属性 Person.h代码 ...

  6. java 重载赋值_java中构造方法,set/get方法,方法重载使用解读

    给对象赋值的方法: 1.对于public修饰的属性,对象可以在外部直接调用. 定义一个类class Poker{ public String num; private String number; p ...

  7. oc语言中的构造方法

    一 构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法来分配存储空间(返回分配的对象): ...

  8. php构造方法什么时候使用,php:构造方法的说明详解

    1.构造方法的8点说明: ①构造方法名和类名相同(php4版),php5版的构造方法名可以和类名相同,也可以是construct() ②构造方法没有返回值 ③构造方法的主要作用是完成对新对象的初始化, ...

  9. 11.构造方法:什么是构造方法???使用构造方法要注意哪七点???

    11.构造方法:什么是构造方法???使用构造方法要注意哪七点??? 学习:第7遍 常见单词: -->[constructor] 1.什么是构造方法??? 创建对象时会自动调用构造方法 构造方法也 ...

最新文章

  1. xp系统如何将计算机放到桌面快捷方式,如何整理xp系统电脑桌面快捷方式图标...
  2. 脑动力:C语言函数速查效率手册(附DVD光盘1张) [平
  3. UI Prototype Design IDE( 界面原型设计工具 )
  4. python 复制文件_10 行 Python 代码写 1 个 USB 病毒
  5. JAVA编写的火车票售票系统
  6. 从0到1分步实现一个出生日期的正则表达式(JavaScript)
  7. Rational Rose 逆向工程(java) 常见问题二则
  8. Docker新手入门,最全详解看这里!
  9. pb数据窗口显示图片_AkShare股票数据A股市净率
  10. LAMMPS分子动力学模拟技术及应用
  11. Unity查找图片被哪个Prefab引用
  12. 开机启动bat以及隐藏运行窗口
  13. Excel单元格下拉选择,单元格自动计算
  14. 漫画:头条面试官谈自我介绍
  15. 解决“由于文件许可权错误 word无法完成保存”问题
  16. Golang可视化工具——go-callvis
  17. 如何用html制作移动app,html移动开发app
  18. Mac Mojave10.14安装vmvare Fusion 11.0.0 win8 镜像
  19. 解决加密PDF的破解软件
  20. 安装指定版本docker

热门文章

  1. linux传文件到其他用户,Linux怎样拷贝文件到其他用户
  2. debian下安装LNMP(三)
  3. docker挂载目录原理
  4. 【深度学习】基于Pytorch的softmax回归问题辨析和应用(一)
  5. 【深度学习】生动分析半监督学习与负相关学习算法
  6. mooc浙大数据结构PTA习题之一元多项式的乘法与加法运算
  7. tclsh 遍历列表_Tcl / Tk 大全
  8. catia 无许可证服务器名称,win10升级2004后CATIA无法连接许可证服务器解决方案(2页)-原创力文档...
  9. 浏览器时间久了重新登录_以登录为例讲解什么是全面的测试设计
  10. mysql like 替代算法_mysql – 什么是替代连接查询