//  Created by Stephen on 16/3/2.
//  Copyright © 2016年 Stephen. All rights reserved.
//
// 回顾上一章节Person 类的 set 和 get 方法 现在我们自己来写一个构造方法,来实现初始化的时候 Person 类的两个私有变量可以被赋值

Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
int _age;
int _height;
} -(id)initWithAge:(int)age andHeight:(int)height; // 自定义的构造方法,是一个动态方法 - (void)showInfo; @end

Person.m

//  Created by Stephen on 16/3/2.
// Copyright © 2016年 Stephen. All rights reserved.
// #import "Person.h" @implementation Person // 实现自定义的构造方法 -(id)initWithAge:(int)age andHeight:(int)height // id 类型也是约定俗成的
{ //先从父类那初始化 固定模板
self = [super init];
if(self !=nil){ _age = age;
_height = height;
} return self; } -(void) showInfo{
NSLog(@"name is %d and age is %d",_age, _height);
} @end

这里我们看到了,初始化方法返回的类型是id类型,关于OC中的id类型,可以认为和C语言中的void*是相等的,这种类型在OC中经常被用到,还有就是self关键字的使用,这里的self关键字就相当于Java中的this关键字,指代当前类对象,还有super关键字,这个和Java中的super也是一样的,指代父类对象。还有一个是nil,他就相当于Java中的null,空对象的概念,用于判断的。

同时这里还要记住一点:

以后OC中自定义初始化的方法的模板:

  1. //固定写法,可以背下来哦~~
  2. //调用父类的初始化方法
  3. self = [super init];
  4. if(self != nil){
  5. _name = name;
  6. _age = age;
  7. }
  8. return self;

这个没什么好说的,就是一个模板,所以初学者就背下来吧,不过用多了,自然就记住了。

main.m

//
//
// Created by Stephen on 16/3/2.
// Copyright © 2016年 Stephen. All rights reserved.
// #import <Foundation/Foundation.h>
#import "Person.h" int main(int argc, const char * argv[]) {
@autoreleasepool {
// Person *person = [[Person alloc]init];
//person.age = 20;
//person.height = 50; Person *person =[[Person alloc]initWithAge:20 andHeight:180]; [person showInfo]; //NSLog(@"age = d% height = d%",person.age , person.height);
}
return 0;
}

运行结果:

2016-03-02 22:23:17.656 4.构造方法[1723:45115] name is 20 and age is 180
Program ended with exit code: 0

5--OC--构造方法的更多相关文章

  1. OC 构造方法(对象初始化)

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

  2. OC 构造方法

    #import <Foundation/Foundation.h> @interface Student : NSObject { int _age; int _no; } - (void ...

  3. objective-c 语法快速过(4)

    oc 里的字符串 字符串的快速创建(最简单的方法) NSStirng *str = @“Hello”;//oc的字符串都是@“”形式的 oc的字符串也是类的对象,是NSString类的对象,创建没有那 ...

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

    new方法实现原理: new做了三件事情 1.开辟存储空间  + alloc 方法 2.初始化所有的属性(成员变量) - init 方法 3.返回对象的地址 [Person new]; == [[Pe ...

  5. OC 类方法,对象方法,构造方法以及instancetype和id的异同

    OC 类方法,对象方法,构造方法以及instancetype和id的异同 类方法: 类方法是可以直接使用类的引用,不需要实例化就可以直接使用的方法.一般写一些工具方法. 类方法: 声明和实现的时候,以 ...

  6. OC语言构造方法

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

  7. OC基础--构造方法

    OC语言中类的构造方法学了两种: 一.方法一:[类名 new] 例:[Person new] 缺点:可扩展性不强,假如在Person类中有_age 成员变量,在初始化时想让_age 中的值为20,ne ...

  8. 李洪强iOS开发之OC语言构造方法

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

  9. OC语法4——自定义构造方法,description方法

    自定义构造方法: 我们已经知道创建对象分两步,1:在内存中开辟存储空间,并把地址存储在指针变量里,2:调用指针变量的初始化方法init初始化该对象. Student * stu = [Student ...

  10. 「OC」构造方法和分类

    一.构造方法 (一)构造方法的调用 创建一个可用的对象:Person *p=[Person new]; new方法实际上是分为两步来创建一个对象: 1)使用+alloc方法来分配存储空间(返回分配的对 ...

随机推荐

  1. tab一些 添加 删除 搜索

    tab一些 添加 删除 搜索 案例 <!DOCTYPE html><html lang="en"><head> <meta charset ...

  2. SharePoint 2013 图文开发系列之列表定义高级篇

    转载自  http://www.cnblogs.com/jianyus/p/3484714.html SharePoint列表库,是我们使用过程中最常用的库,下面,我们简单介绍下代码定义自定义列表,主 ...

  3. varnish屏蔽control+F5导致缓存失效

    刚刚接触Varnish缓存,对静态资源进行缓存.目前问题,当浏览器Control+F5刷新页面,导致缓存失效. 参照:http://zhangxugg-163-com.iteye.com/blog/1 ...

  4. Copy Constructor的构造操作

    Copy Constructor的构造操作 有三种情况,会以一个object的内容作为另一个class object的初值: 1.  对一个object做显式的初始化操作 class X{…}; X ...

  5. Python 查找binlog文件

    经常需要在 binlog 中查找一些日志信息,于是写了一个简单的脚本.对于非常巨大的 binlog 文件,该脚本可能会速度慢,毕竟还是用的 list,暂时没想到好办法. 详细看代码: #/usr/bi ...

  6. wordpress建站过程1

    使用wordpress我们需要理解一些概念: 1.WordPress是一种使用PHP语言开发的博客平台,它的程序是由php构成的,所以想要使用word press必须会php. 2.Wordpress ...

  7. 理解VMware虚拟机下网络连接的三种模式(如何配置虚拟机上网)

    很多朋友都用vmware来测试不同的系统,我结合自己的经验谈一下对网络设置的理解,不对的地方请指正. bridge:这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡 绑定两 ...

  8. 详细理解servlet实现的几种方式和生命周期

    现在很多的开发都是用的框架,然后很多同学学习的时候又是直接接触的框架,对于底层的一些开发,完全没有任何的了解.虽然对于业务上面来说,没有什么问题.但是很多时候当你被面试问到,或者是想要了解框架底层原理 ...

  9. 图片特效-仿 iPhone 图片查看器效果

    —————————————————————— <script type="text/javascript">                    var arr = ...

  10. 新随笔ps泡泡制作

    http://jingyan.baidu.com/article/4d58d5413568a79dd4e9c016.html