黑马程序员 11-OC匿名对象

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———

匿名变量:利用类创建一个对象的时候,没有将对象的地址交给一个指针变量保存,这样的对象称为匿名对象,即没有指针指向的对象。

//匿名变量

 1 #import <Foundation/Foundation.h>
 2 //类的声明
 3 @interface Car : NSObject
 4 {
 5     @public//表示允许外界指针间接访问对象的成员变量
 6     int _speed;//速度
 7 }
 8 //方法声明
 9 - (void)run;//跑
10 @end
11
12 //类的实现
13 @implementation Car
14 //方法实现
15 - (void)run
16 {
17     NSLog(@"速度为%d的车子跑起来了", _speed);
18 }
19
20 @end
21
22 int main(int argc, const char * argv[])
23 {
24     /*
25      Car *c;
26      c = [Car new];
27      c->_speed = 250;
28
29      [c run];
30      */
31
32     // 不要写类似匿名对象这样的代码
33     // 只要求能说出输出结果
34     [Car new]->_speed = 300;
35
36     [[Car new] run];
37
38     return 0;
39 }

分析:

1、如果将34-36行注释掉,打开24-30行;表示创建了一个对象c,并给对象c的成员变量_speed赋值250,然后对象c调用对象方法run,输出结果为:

 速度为250的车子跑起来了

2、如果注释掉24-30行,打开34-36行;

  第34行表示:创建一个Car类型的匿名对象,并对该匿名对象的成员变量_speed赋值300

  第36行[[Car new] run];这里又出现一个[Car new],说明在这里又创建了一个新的匿名对象(并不是第34行创建的匿名对象),新匿名对象由于没有赋值,默认初始化为0,调用run方法,输出结果为:速度为0的车子跑起来了

3、这里要求我们知道这个输出结果即可,不建议写匿名对象这样的代码。

时间: 2024-10-05 04:09:23

黑马程序员 11-OC匿名对象的相关文章

【黑马程序员】————OC特有语法

一.点语法 点语法的本质还是方法调用 p.age = 10; // [p setAge:10]; int a = p.age; // [p age]; 二.成员变量的作用域 @public : 在任何地方都能直接访问对象的成员变量 @private : 只能在当前类的对象方法中直接访问(@implementation中默认是@private) @protected : 可以在当前类及其子类的对象方法中直接访问 (@interface中默认就是@protected) @package : 只要处在

【黑马程序员】OC基本语法——类与对象相关概念

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 最近在学OC的面向对象部分,可能是因为以前学Java和PHP时习惯了主流的面向对象思想,接触到OC的面向对象有很多说法都不习惯,查了很多东西,终于基本都搞清楚了,在这里小结一下. 一.类和对象 1.类:类是一个抽象概念,代表着一类事物,如:人,动物,交通工具等:这个和Java或PHP里类的概念没有区别. 其定义方法如下: @interface Student : NSObject { NSSt

黑马程序员—12-oc类跟对象

一.类和对象的关系 面向对象中有2个非常重要的概念:类和对象 1. 如何创建对象 1)  面向对象解决问题的时候必须有对象,那如何创建对象呢? 2)  现实生活的例子:如何创造汽车对象? a)   需要先有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能(行为) Ø   属性:轮子数.时速 Ø   功能(行为):跑 b)   然后再根据图纸上的描述生成汽车 c)   每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例 d)   图纸是抽象的,房子是具体的.图纸是对房子对象的高度概括

黑马程序员___类和对象

类和对象 面向对象 面向对象的思想就是关注解决的问题需要哪些对象,然后直接用对象的方法解决问题,C语言是面向过程的语言,面向过程关注的时解决问题需要哪些步骤 生活中面向对象的例子 ¬ 想打电话\发短信  找手机,不用分析电话要怎样才能拨通 ¬ 去饭店吃饭  找服务员,不用分析怎么到厨房炒菜 ¬ 汽车坏了  找汽车维修工,不用分析修车的步骤 ¬ 境界:万物皆对象 常用术语 ¬ 面向过程 Procedure Oriented ¬ 面向对象 Object Oriented,简称OO ¬ 面向对象编程

黑马程序员--java基础--其他对象

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 第一讲     System类 一.概述 1.System是描述系统一些信息的类,类中的属性和方法都是静态的.不能被实例化,没有提供构造函数. 2.字段摘要 out:标准输出流.默认是控制台. in:标准输入流.默认是键盘. 二.方法 1

《黑马程序员》 OC的三大特性

OC 的三大特性:封装.继承.多态. 封装:过滤不合理的值 #import <Foundation/Foundation.h> // set 方法 // 作用:提供一个方法给外界设置成员变量,可以在方法对成员变量进行赋值和过滤 // get 方法 // 作用:返回对象内部的成员变量,得到成员变量的值. @interface Student : NSObject { // 成员变量名的命名规范 // 成员变量名肯定以下划线开头 // 好处:可以区分参数名称和成员变量的名称,也可以区分变量名和成员

《黑马程序员》类和对象(Objective - c)

一.类和对象的概念 OC中有两个很关键的概念就是类和对象,类和对象的关系就如同模具和用这个模具制作出的物品之间的关系.一个类为它的全部对象给出了一个统一的定义,而他的每个对象则是符合这种定义的一个实体,因此类和对象的关系就是抽象和具体的关系. 创建对象:创建对象需要现有类,对象需表述清楚应该具备的属性和功能(行为)  格式[行为执行者  行为名称] 创建类: 需关心三项条件: 事物名称(类名):人(Person) 属性:身高(height).年龄(age)等 行为(功能):跑(run).吃(ea

黑马程序员————数组工具类对象建立

今天学习了数组工具类对象的建立巩固掌握以前学习的语句,函数,数组等相关知识 /** 建立一个用于操作数组的工具类,其中包括者常见的对数组操作的函数,如:最值,排序等 @author lostnotes */ public class ArraryTool { private ArrayTool () {}//该类中的方法都是静态的,所以不需要创建对象. //为了保证其他成员不创建该类对象,可以构造函数私有化. } /** 获取整数类型数组的最大值 @param arr 接收一个元素为int类型的

黑马程序员--Objective-C类方法与对象方法、区别、与调用-我之见解

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 类方法. 1. 特点: 以加号( + )开头, 调用格式:  [类名  方法名] 类方法的好处:不需要创建实例对象,直 接通过类名访问,节省空间 ,提高了效率 2.注意事项: 类方法可以和实例方法同名, 相互之间互不影响 类方法可以从父类

黑马程序员——11 正则表达式

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 正则表达式 一.概念 符合一定规则的表达式,用于专门操作字符串,可以简化对字符串的复杂操作,主要用于一些特定的符号来表示一些代码操作. 二.常见符号 2.1字符 x                  字符 x \\                 反斜线字符 \t                 制表符 ('\u0009') \n                 新行(换行)符 ('\u000