第02天OC语言(12):匿名对象
2017-07-12 00:00
441 查看
####一、概念
####二、code
匿名 就是没有名字,匿名对象 就是没有名字的对象
####二、code
>>>main.m
#pragma mark 12-匿名对象
#pragma mark 概念
/*
匿名 就是没有名字,匿名对象 就是没有名字的对象 */
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#import "IPhone.h"
#pragma mark - main函数
int main(int argc, const char * argv[])
{
// 1.有名字的对象
// 只要用一个指针保存了某个对象的地址,我们就可以称 这个指针未某个对象
// 称p为Person对象
Person *p = [Person new];
p->_age = 12;
p->_name = @"lyh";
[p say];
// 2.没有名字的对象
// 无论有没有名字, 只要调用 new 方法都会返回对象的地址
// 每次 new 都会新开辟一块内存空间
[Person new]->_age = 30;
[Person new]->_name = @"lll";
[[Person new] say];
#pragma 1.匿名对象的应用场景
// 1.当对象只需要使用一次的时候, 就可以使用匿名对象
IPhone *phone = [IPhone new];
[phone brand];
[[IPhone new]brand];
// 3.2 匿名对象 可以作为方法的参数(实参)
Person *p1 = [Person new];
[p1 signal:[IPhone new]];
return 0;
}
>>>Iphone
.h
#import <Foundation/Foundation.h>
@interface IPhone : NSObject
// 打印手机品牌
- (void)brand;
- (void)callWithNumber:(int)number;
@end
.m
#import "IPhone.h"
@implementation IPhone
- (void)brand
{
NSLog(@"苹果品牌");
}
- (void)callWithNumber:(int)number
{
NSLog(@"打电话给 %i",number);
}
@end
>>>Person
.h
#import <Foundation/Foundation.h>
#import "IPhone.h"
@interface Person : NSObject
{
@public
int _age;
NSString *_name;
}
- (void)say;
- (void)signal:(IPhone *)phone;
@end
.m
#import "Person.h"
// .h 和 .m 之间的切换 command + control + 上下箭头
@implementation Person
- (void)say
{
NSLog(@"age = %i,name = %@",_age,_name);
}
- (void)signal:(IPhone *)phone
{
[phone callWithNumber:12344];
}
@end
相关文章推荐
- 第02天OC语言(04):结构体作为对象属性
- 第02天OC语言(09):对象作为方法的参数连续传递下
- 第02天OC语言(05):对象作为方法参数分析
- 第02天OC语言(10):对象作为返回值
- 第02天OC语言(06):对象作为方法参数传递
- 第02天OC语言(08):对象作为方法的参数连续传递上
- 【学习笔记】【OC语言】面向对象思想
- 【OC语言基础】之面向对象开发(类和对象)
- 12-20java面向对象之Object类&包装类&匿名内部类
- 黑马程序员-OC语言之类和对象
- 黑马程序员-OC语言-对象和方法之间的关系(听课笔记)
- [黑马程序员]12[OC语言]OC基本语法部分学习笔记总结
- 黑马程序员——OC语言基础篇---面向对象之三大特性
- 黑马程序员——OC语言中的类和对象
- 黑马程序员-OC语言-类和对象
- 黑马程序员-OC语言-创建一个对象并访问成员变量(听课笔记)
- 黑马程序员--ios基础--oc语言--类和对象
- 黑马程序员之ios学习总结——12 OC语言的内存管理2
- 在oc语言中对象对象属性的封装
- 黑马程序员-OC语言类和对象