oc35--自定义构造方法
// // 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.在OC中构造方法是init开头的方法, 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值. 构造方法属于对象方法,以"-"开头 例如:在创建对象的时候 ...
- 不写默认无参构造方法,调用自定义构造方法时报错No constructor found in com...
如果在实体类里面自定义构造方法,没有写默认无参构造方法,然后初始化类的对象,调用自定义构造方法的时候,就会报如下错误: 解决办法是:在实体类中加入无参数构造方法即可,如下图
- id、构造方法、Category 分类、类的本质、description方法、SEL
1.id: 万能指针id :id对象不能用点语法.id对象本身已经有 * 了 因此变量名不能有 * . 可以吧id理解为 NSObject * 类型数据! int main() { @autorele ...
- 杨校老师课堂之Java类与对象、封装、构造方法
杨校老师课堂之Java类与对象.封装.构造方法 本篇文章内容如下: 面向对象 类与对象 三大特征--封装 构造方法 教学目标 能够理解面向对象的思想 能够明确类与对象关系 能够掌握类的定义格式 能够掌 ...
- 06-自定义构造方法
1.自定义构造方法的规范 (1)一定是对象方法,一定以 - 开头 (2)返回值一般是id类型 (3)方法名一般以initWith开头 以Person类为例,初始化姓名和年龄属性 Person.h代码 ...
- java 重载赋值_java中构造方法,set/get方法,方法重载使用解读
给对象赋值的方法: 1.对于public修饰的属性,对象可以在外部直接调用. 定义一个类class Poker{ public String num; private String number; p ...
- oc语言中的构造方法
一 构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法来分配存储空间(返回分配的对象): ...
- php构造方法什么时候使用,php:构造方法的说明详解
1.构造方法的8点说明: ①构造方法名和类名相同(php4版),php5版的构造方法名可以和类名相同,也可以是construct() ②构造方法没有返回值 ③构造方法的主要作用是完成对新对象的初始化, ...
- 11.构造方法:什么是构造方法???使用构造方法要注意哪七点???
11.构造方法:什么是构造方法???使用构造方法要注意哪七点??? 学习:第7遍 常见单词: -->[constructor] 1.什么是构造方法??? 创建对象时会自动调用构造方法 构造方法也 ...
最新文章
- xp系统如何将计算机放到桌面快捷方式,如何整理xp系统电脑桌面快捷方式图标...
- 脑动力:C语言函数速查效率手册(附DVD光盘1张) [平
- UI Prototype Design IDE( 界面原型设计工具 )
- python 复制文件_10 行 Python 代码写 1 个 USB 病毒
- JAVA编写的火车票售票系统
- 从0到1分步实现一个出生日期的正则表达式(JavaScript)
- Rational Rose 逆向工程(java) 常见问题二则
- Docker新手入门,最全详解看这里!
- pb数据窗口显示图片_AkShare股票数据A股市净率
- LAMMPS分子动力学模拟技术及应用
- Unity查找图片被哪个Prefab引用
- 开机启动bat以及隐藏运行窗口
- Excel单元格下拉选择,单元格自动计算
- 漫画:头条面试官谈自我介绍
- 解决“由于文件许可权错误 word无法完成保存”问题
- Golang可视化工具——go-callvis
- 如何用html制作移动app,html移动开发app
- Mac Mojave10.14安装vmvare Fusion 11.0.0 win8 镜像
- 解决加密PDF的破解软件
- 安装指定版本docker
热门文章
- linux传文件到其他用户,Linux怎样拷贝文件到其他用户
- debian下安装LNMP(三)
- docker挂载目录原理
- 【深度学习】基于Pytorch的softmax回归问题辨析和应用(一)
- 【深度学习】生动分析半监督学习与负相关学习算法
- mooc浙大数据结构PTA习题之一元多项式的乘法与加法运算
- tclsh 遍历列表_Tcl / Tk 大全
- catia 无许可证服务器名称,win10升级2004后CATIA无法连接许可证服务器解决方案(2页)-原创力文档...
- 浏览器时间久了重新登录_以登录为例讲解什么是全面的测试设计
- mysql like 替代算法_mysql – 什么是替代连接查询