小白学开发(iOS)OC_ id类型(2015-07-28)
来源:互联网 发布:ubuntu服务器密码修改 编辑:程序博客网 时间:2024/05/29 11:55
//
// main.m
// id类型
//
// 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[]) {
/*
1. 首先id类型既然是一种类型,那么它就可以有一用途
> 定义变量
> 做函数返回值类型
> 做参数类型
2. id类型被称为万能指针类型, id ==NSString *
3. id的本质:typedef struct objc_object *id
4. 注意:
> 如果用id类型接收一个对象,调用对象特有方法不用进行强制类型转换
> id 是一个万能指针,可以用来指向任何对象, 注意id后面不要加*
*/
Person *p = [Person new];
[p setAge:10];
// 多态:用父类指针接收
NSObject *p1 = [Person new];
Person *p2 = (Person *)p1; // 这里为了使编译器编译通过,做强制类型转换
[p2 setAge:20]; // 而事实上,在运行的时候会动态绑定,自动找到真实类
return 0;
// id类型接收
id p3 = [Person new];
[p3 setAge:30];
}
//
// Person.h
// id类型
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property int age;
@end
//
// Person.m
// id类型
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import "Person.h"
@implementation Person
@end
// main.m
// id类型
//
// 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[]) {
/*
1. 首先id类型既然是一种类型,那么它就可以有一用途
> 定义变量
> 做函数返回值类型
> 做参数类型
2. id类型被称为万能指针类型, id ==NSString *
3. id的本质:typedef struct objc_object *id
4. 注意:
> 如果用id类型接收一个对象,调用对象特有方法不用进行强制类型转换
> id 是一个万能指针,可以用来指向任何对象, 注意id后面不要加*
*/
Person *p = [Person new];
[p setAge:10];
// 多态:用父类指针接收
NSObject *p1 = [Person new];
Person *p2 = (Person *)p1; // 这里为了使编译器编译通过,做强制类型转换
[p2 setAge:20]; // 而事实上,在运行的时候会动态绑定,自动找到真实类
return 0;
// id类型接收
id p3 = [Person new];
[p3 setAge:30];
}
//
// Person.h
// id类型
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property int age;
@end
//
// Person.m
// id类型
//
// Created by admin on 15/7/29.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import "Person.h"
@implementation Person
@end
0 0
- 小白学开发(iOS)OC_ id类型(2015-07-28)
- 小白学开发(iOS)OC_继承(2015-07-26)
- 小白学开发(iOS)OC_多态(2015-07-27)
- 小白学开发(iOS)OC_私有方法(2015-07-28)
- 小白学开发(iOS)OC_第一个OC (与C的区别)(2015-07-21)
- 小白学开发(iOS)OC_定义一个类(2015-07-21)
- 小白学开发(iOS)OC_类和对象(2015-07-22)
- 小白学开发(iOS)OC_类方法和对象方法(2015-07-22)
- 小白学开发(iOS)OC_匿名对象(2015-07-24)
- 小白学开发(iOS)OC_封装_成员变量(set get方法)(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)
- 小白学开发(iOS)OC_构造方法(2015-07-29)
- 小白学开发(iOS)OC_类的互引用(2015-07-29)
- 小白学开发(iOS)OC_ 使用继承来扩充类(2015-08-07)
- 淘宝卖家评价体系
- oracle 中如何获取本机ip地址,根据IP地址获取域名?
- html中设置锚点定位的几种常见方法
- 九度oj 1087
- 线段树入门
- 小白学开发(iOS)OC_ id类型(2015-07-28)
- HDU 5319(2015多校3)-Painter(dfs)
- 欢迎使用CSDN-markdown编辑器
- LeetCode || Spiral Matrix II
- VB.NET的拖放操作
- 继承,特质
- Nginx+PHP+Swfupload 上传大文件
- centos 7下安装配置nginx
- xUtils 中 HttpUtils 的使用