//
// main.m
// 匿名对象 #import <Foundation/Foundation.h>
#import "Person.h"
#import "Iphone.h" int main(int argc, const char * argv[]) {
// 匿名就是没有名字, 匿名对象就是没有名字的对象 // 1.有名字的对象
// 只要用一个指针保存了某个对象的地址, 我们就可以称这个指针为某个对象
// 称p为Person对象
Person *p =[Person new]; // 0ffc12
p->_age = ;
p->_name= @"lnj";
[p say];
/*
0ffc12->_age = 30;
0ffc12->_name= @"lnj";
[0ffc12 say]; */ // 2.没有名字的对象
// 无论有没有名字, 只要调用new方法都会返回对象的地址
// 每次new都会新开辟一块存储空间
[Person new]->_age = ;
[Person new]->_name = @"LMJ";
[[Person new] say];//name=(null),age=0 // 3.匿名对象的应用场景
// 3.1当对象只需要使用一次的时候就可以使用匿名对象
Iphone *phone = [Iphone new]; // 0ffb11 phone = 0ffb11
[phone brand]; // [0ffb11 brand];
[[Iphone new] brand]; // [0fff5 brand]; // 3.2匿名对象可以作为方法的参数(实参)
Person *p1 = [Person new];
// Iphone *phone1 = [Iphone new];
// [p1 signal:phone1];
[p1 signal:[Iphone new]]; return ;
}
//
// Person.h
// day12 #import <Foundation/Foundation.h>
#import "Iphone.h"
@interface Person : NSObject
{
@public
int _age; // 年龄
NSString *_name; // 姓名
}
- (void)say;
- (void)signal:(Iphone *)phone;
@end
//
// Person.m
// day12
#import "Person.h"
// .h和.m之间切换 command + control + ⬆️
@implementation Person
-(void)say
{
NSLog(@"name = %@, age = %i", _name, _age);
}
- (void)signal:(Iphone *)phone
{
[phone callWithNumber:];
}
@end
//
// Iphone.h
// day12 #import <Foundation/Foundation.h>
@interface Iphone : NSObject
- (void)brand;
- (void)callWithNumber:(int)number;
@end
//
// Iphone.m
// day12
#import "Iphone.h"
@implementation Iphone
- (void)brand
{
NSLog(@"苹果手机");
}
- (void)callWithNumber:(int)number
{
NSLog(@"打电话给%i", number);
}
@end

oc14--匿名对象的更多相关文章

  1. 当类型为dynamic的视图模型遭遇匿名对象

    当年在ASP.NET MVC 1.0时代我提到,在开发时最好将视图的Model定制为强类型的,这样可以充分利用静态检查功能进行排错.不过有人指出,这么做虽然易于静态检查,但是定义强类型的Model类型 ...

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

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

  3. C# 匿名对象随笔

      最新更新请访问: http://denghejun.github.io   C#中匿名对象的一般写法是这样的: object o=new {Name="TestName"}; ...

  4. MongoDB学习笔记~以匿名对象做为查询参数,方便查询子对象

    回到目录 对于MongoDB的封装还在继续,对于不断追求简单的编程还在继续,对于喜欢代码的那么感觉,还在继续... 当你的mongo数据表里有子对象时,尤其是列表对象时,使用官方的驱动很是不爽,要记得 ...

  5. dynamic与匿名对象

    用dynamic接收匿名对象很方便,因为不需要去定义model了,但是也有一个弊端,就是匿名对象的作用范围是internal的,也就是只能存在于当前程序域,所以用dynimic跨程序域去接收一个匿名对 ...

  6. 构造 & 析构 & 匿名对象‍

    ‍以前仅知道创建对象,但对匿名对象的了解基本为0. 通过阅读google chromium源代码 中关于 log 的使用,查阅相关资料,了解了一下匿名对象,予以记录. 什么是匿名对象‍ 匿名对象可以理 ...

  7. java匿名类和匿名对象及this的其他用法

    /* 匿名内部类:就是内部类的简写格式. 必须前提:内部类必须继承或者实现一个类或者接口. 匿名内部类其实就是一个匿名 子类对象. 格式:new 父类对象 or 接口(){ 子类内容:(覆盖父类的, ...

  8. java匿名对象_面向对象

    class Student{ public void tell(){ System.out.println("Hello jikexueyuan"); } public void ...

  9. 匿名对象和object的转换

    有时候经常用到需要把一个匿名对象存入session或List<object>或其他容器中,可是取出来的时候变成object了,不太方便使用. 下面是一种转换方式:     class Pr ...

  10. Linq专题之匿名对象

    匿名对象是c#3.0的一个新的机制,使用new关键字和一个对象的初始化器,就能创建一个匿名对象.顾名思义,创建的时候这个对象是一个匿名类型的对象,没有具体的类型.说到匿名对象,那么我们前面讲过的var ...

随机推荐

  1. 易企CMS主要模板文件介绍

    article.tpl 文章内容页模板 catalog.tpl 文章,产品目录页模板 category.tpl 分类页模板 comment.tpl 留言页模板 footer.tpl 页尾模板 head ...

  2. backface-visibility当元素不面向屏幕时是否可见

    html代码 <h1>div1可见</h1> <div class="div1">div---1</div> <h1>d ...

  3. jQuery中容易让人困惑的东西

    前言:jqueryt很灵活,太灵活了,可以说是他一个优点,也是他一个缺点,达到一种效果,十个人也许会用十种不同的方法来实现这个过程,结果一样,过程不一样,这到底是好,还是坏呢. 一,什么是jquery ...

  4. Linux 帮助与语言设置以及(\)

    1.命令太长可以用反斜杠(\)来转义回车键,使用命令连续到下一行.注意:反斜杠后就立刻接着特殊字符才能转义. 2.修改语系为英文 LANG=en_US.utf8 export LC ALL=en_US ...

  5. 【C#】【分享】 XXX分钟学会C#

    原文地址 https://www.cnblogs.com/younShieh/p/10945264.html     前几天在刷即刻的时候发现了一个GitHub上的项目,该项目名为"lear ...

  6. eas之数据融合

    1.如何进行自由融合自由融合无须指定区域,KDTable将根据指定的融合模式,融合相邻且值相等的单元.// 自由行融合table.getMergeManager().setMergeMode(KDTM ...

  7. 15.5.2 【Task实现细节】骨架方法的结构

    尽管骨架方法中的代码非常简单,但它暗示了状态机的职责.代码清单15-11生成的骨架方 法如下所示: [DebuggerStepThrough] [AsyncStateMachine(typeof(De ...

  8. Java语言输出HelloWorld

    1.新建一个名为HelloWorld.txt的文本文件. 2.将HelloWorld.txt改为.java. 3.将HelloWorld.java用文本文件的方式打开,并输入代码. 4.打开命令行,进 ...

  9. GDI 边框绘制函数(8)

    绘制矩形 调用 Rectangle 函数可以绘制一个矩形(它将填充这个矩形): BOOL Rectangle( HDC hdc, // 设备环境句柄 int nLeftRect, // 左边线的位置 ...

  10. Linux基础知识和命令

    1,用户登录:    root(管理员),权限最大.安全生产必要时再使用.    普通用户:权限有限.2,    终端终端设备终端:输入和输出设备,如:键盘鼠标显示器;     图形终端:虚拟机进入窗 ...