小白学开发(iOS)OC_构造方法(2015-07-29)
来源:互联网 发布:ubuntu服务器密码修改 编辑:程序博客网 时间:2024/06/03 21:20
//
// main.m
// 构造方法的基本类型
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
// 简单的来说,构造方法就是初始化成员变量的方法
[Person new];
/*
这里通过Person类名调用父类的类方法new,得到一个对象
这里实际上做了三件事,分别为:
1. 开辟存储空间,使用 +alloc方法开辟存储空间
2. 初始化成员变量, 使用 +init 方法对对象中的成员变量初始化,系统初始化值为0
3. 返回地址(初始化后的对象地址)
*/
// 开辟存储空间,会返回一个没有初始化的对象
Person *p1 = [Person alloc];
// 对对象中的成员变量进行初始化,返回一个初始化后的对象
Person *p2 = [p1 init];
[p2 setAge:10];
// 开发中我们一般把这两步写在一起
Person *p3 = [[Person alloc]init];
[p3 setAge:20];
// 当我们想让对象一出生,它的某些属性就是固定值,也就是初始化一些值为我们想要的值,而是系统统一初始化为0,那么我们可以将init方法重写,或者自定义构造方法,通过参数进行赋值,例如我这里自定义构造方法,初始化age为固定值
Person *p4 = [[Person alloc]initWithAge:100];
NSLog(@" age = %d", [p4 age]);
/*
4. 自定义构造方法的格式:
> 一定是对象方法,以 “-”开头
> 方法名一定是以init开头,
> 方法返回值一般是id类型
例如:
- (id)initWithAge:(int)age
{
self = [super self];
if(self)
{
_age = age;
}
return self;
}
*/
return 0;
}
//
// Person.h
// 构造方法
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property int age;
- (id)initWithAge:(int)age;
@end
//
// Person.m
// 构造方法
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import "Person.h"
@implementation Person
- (id)initWithAge:(int)age
{
if (self = [super init]) {
_age = age;
}
return self;
}
@end
// main.m
// 构造方法的基本类型
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
// 简单的来说,构造方法就是初始化成员变量的方法
[Person new];
/*
这里通过Person类名调用父类的类方法new,得到一个对象
这里实际上做了三件事,分别为:
1. 开辟存储空间,使用 +alloc方法开辟存储空间
2. 初始化成员变量, 使用 +init 方法对对象中的成员变量初始化,系统初始化值为0
3. 返回地址(初始化后的对象地址)
*/
// 开辟存储空间,会返回一个没有初始化的对象
Person *p1 = [Person alloc];
// 对对象中的成员变量进行初始化,返回一个初始化后的对象
Person *p2 = [p1 init];
[p2 setAge:10];
// 开发中我们一般把这两步写在一起
Person *p3 = [[Person alloc]init];
[p3 setAge:20];
// 当我们想让对象一出生,它的某些属性就是固定值,也就是初始化一些值为我们想要的值,而是系统统一初始化为0,那么我们可以将init方法重写,或者自定义构造方法,通过参数进行赋值,例如我这里自定义构造方法,初始化age为固定值
Person *p4 = [[Person alloc]initWithAge:100];
NSLog(@" age = %d", [p4 age]);
/*
4. 自定义构造方法的格式:
> 一定是对象方法,以 “-”开头
> 方法名一定是以init开头,
> 方法返回值一般是id类型
例如:
- (id)initWithAge:(int)age
{
self = [super self];
if(self)
{
_age = age;
}
return self;
}
*/
return 0;
}
//
// Person.h
// 构造方法
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property int age;
- (id)initWithAge:(int)age;
@end
//
// Person.m
// 构造方法
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import "Person.h"
@implementation Person
- (id)initWithAge:(int)age
{
if (self = [super init]) {
_age = age;
}
return self;
}
@end
0 0
- 小白学开发(iOS)OC_构造方法(2015-07-29)
- 小白学开发(iOS)OC_类方法和对象方法(2015-07-22)
- 小白学开发(iOS)OC_继承(2015-07-26)
- 小白学开发(iOS)OC_多态(2015-07-27)
- 小白学开发(iOS)OC_封装_成员变量(set get方法)(2015-07-24)
- 小白学开发(iOS)OC_私有方法(2015-07-28)
- 小白学开发(iOS)OC_类的互引用(2015-07-29)
- 小白学开发(iOS)OC_ set方法的内存管理分析(2015-08-04)
- OC_构造方法(工厂方法)
- 小白学开发(iOS)OC_第一个OC (与C的区别)(2015-07-21)
- 小白学开发(iOS)OC_定义一个类(2015-07-21)
- 小白学开发(iOS)OC_类和对象(2015-07-22)
- 小白学开发(iOS)OC_匿名对象(2015-07-24)
- 小白学开发(iOS)OC_组合模式(2015-07-24)
- 小白学开发(iOS)OC_面向对象总结(2015-07-25)
- 小白学开发(iOS)OC_类的本质(2015-07-27)
- 小白学开发(iOS)OC_成员变量的作用域(2015-07-27)
- 小白学开发(iOS)OC_ 点语法(2015-07-27)
- centos 7下安装配置nginx
- xUtils 中 HttpUtils 的使用
- ConvertToTable(from Poco class to Table)
- 2015 Multi-University Training Contest 3 || HDU 5325 Crazy Bobo || 类似bfs
- Dwr 前端报Error提示解决办法
- 小白学开发(iOS)OC_构造方法(2015-07-29)
- android TextView自动实现省略号
- 防黑指南:普通用户上网时该注意什么?
- HDU5319
- MVVM指南二:Flickr搜索深入
- 程序员永远的痛之字符编码的奥秘
- python切片的问题
- 慕课网视频资源下载方法
- class.forName的官方用法说明