//
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @property int age;
@end
//
// Person.m #import "Person.h" @implementation Person /*
// 重写init方法, 在init方法中初始化成员变量
// 注意: 重写init方法必须按照苹果规定的格式重写, 如果不按照规定会引发一些未知的错误
// 1.必须先初始化父类, 再初始化子类
// 2.必须判断父类是否初始化成功, 只有父类初始化成功才能继续初始化子类
// 3.返回当前对象的地址
- (instancetype)init
{
// 1.初始化父类
// 只要父类初始化成功 , 就会返回对应的地址, 如果初始化失败, 就会返回nil
// nil == 0 == 假 == 没有初始化成功
self = [super init];
// 2.判断父类是否初始化成功
if (self != nil) {
// 3.初始化子类
// 设置属性的值
_age = 6; }
// 4.返回地址
return self;
}
*/ /*
- (instancetype)init
{
self = [super init]; // self == nil == 0
if (self) {
// 初始化子类
_age = 6;
}
return self;
}
*/
- (instancetype)init
{
// self = [super init];
// 注意: 不要把 = 号写为 ==
// 一定要将[super init]的返回值赋值给self
if (self = [super init]) {
// 初始化子类
_age = ;
}
return self;
} @end
//
// main.m
// 构造方法基本概念 #import <Foundation/Foundation.h>
#import "Person.h" int main(int argc, const char * argv[]) {
/*
在OC中init开头的方法, 我们称之为构造方法
构造方法的用途: 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值
*/
Person *p = [[Person alloc] init];
// p.age = 6;
NSLog(@"%i", p.age); Person *p2 = [[Person alloc] init];
// p2.age = 6;
NSLog(@"%i", p2.age); Person *p3 = [[Person alloc] init];
// p3.age = 6;
NSLog(@"%i", p3.age); return ;
}

oc32--构造方法1的更多相关文章

  1. 那些年我们学过的构造函数(构造方法,C#)

    构造函数也称构造方法,在面向对象中称为构造方法,在面向过程中称为构造函数;C#是面向对象的语言,所以以下都称为构造方法, OK,下面我们先看一下什么是构造函数 class Dog { //创建一个狗类 ...

  2. 匿名对象 构造方法 重载 构造代码块 this 关键字

    一.匿名对象 1.匿名对象 :没有名字对象 2.匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值,无法获取属性值. 2.匿名对象永远都不可能事一个对象. 3.匿名对象的好处 : 书写简单. ...

  3. java中构造方法的特殊性

    构造方法名与类名相同 构造方法没有返回值,也不能写void 构造方法的主要作用是完成对对象的初始化工作 构造方法一般不由编程人员显示调用,而是由new来调用 在创建一个类的对象的同时,系统会自动调用该 ...

  4. java构造方法的作用以及简单java类

    public class TestDemo{ public static void main(String args[]){ Emp emp1 =new Emp(001,"tom" ...

  5. Java---类加载机制,构造方法,静态变量,(静态)代码块,父类,变量加载顺序

    直接上代码: 代码1: public class ConstroctTest { private static ConstroctTest test = new ConstroctTest(); // ...

  6. php构造方法与析构方法

    1. 构造方法 <?php //构造方法 __construct() 是在实例化对象时被自动调用 //用途:可以用于初始化程序(可以给成员属性赋值,也可以调用成员方法) //语法:[修饰符] f ...

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

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

  8. PHP构造方法

    构造方法 1.(特殊)对象创建完成后第一个自动调用的方法: 2.(特殊)方法名比较特殊,方法名可以与类相同: 3.给对象中的成员赋初始值: class boyfriend{ public $name; ...

  9. js对象常用2中构造方法

    //js 对象的构造方法通常有2中情况: //第一种是通过json对象构造 var persion={ name:"孙悟空", age:40, eat:function () { ...

  10. java 静态代码块 构造块 构造方法

    class className{ static{ }//静态代码块 { }//构造代码块 public className(){} //构造方法 }

随机推荐

  1. python框架之Flask基础篇(二)-------- 数据库的操作

    1.flask连接数据库的四步: 倒入第三方数据库扩展包:from flask_sqlalchemy import SQLAlchemy 配置config属性,连接数据库: app.config[&q ...

  2. SQL server 2005中无法新建作用(Job)的问题

    1.在使用sqlserver2005创建作业时,创建不了,提示 无法将类型为“Microsoft.SqlServer.Management.Smo.SimpleObjectKey”的对象强制转换为类型 ...

  3. vim下阅读代码时标签跳转设置

    1.在fedora14中的 /etc/vimrc下,加入如下几行,可根据源代码工程文件的结构来定 2. 在源代码工程内,输入如下命令 ctags -R 当前目录下将生成一个tags文件 3.查看源代码 ...

  4. 如何在eclipse中设置断点并调试程序

    eclipse导入源码后可以看见代码但并不能调试,(解决方法) 1.eclipse默认的运行环境不是jdk中的jre.将jre换成jdk: 2. 先去掉勾,apply,在打上勾,apply 参考:ht ...

  5. JAVA通用工具类

    1.异常验证框架 框架1:com.google.common.base.Preconditions 框架2:org.apache.commons.lang.Validate 框架3:org.apach ...

  6. BZOJ 2850: 巧克力王国 KDtree + 估价函数

    Code: #include<bits/stdc++.h> #define maxn 100000 #define inf 1000000008 #define mid ((l+r)> ...

  7. includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。

    注意:对象数组不能使用includes方法来检测. JavaScript Demo: Array.includes() var array1 = [1, 2, 3]; console.log(arra ...

  8. linux常用命令--ubuntu

    linux 操作系统 一.linux 操作系统概述 二.安装linux系统 三.linux系统环境 ubuntu,默认有6个命令交互通道和一个图形界面交互通道,默认进入到的是图形界面通道 命令交互模式 ...

  9. 解决windows64位系统上安装mysql-python报错

    解决windows64位系统上安装mysql-python报错 2018年03月12日 13:08:24 一个CD包 阅读数:1231    版权声明:本文为博主原创文章,未经博主允许不得转载. ht ...

  10. IO编程——复制一个文件中的内容到另一个文件

    public class TestIO { public static void main(String[] args) { File inputFile = new File("a.txt ...