《Android游戏开发详解》一2.12 设置和访问对象的状态

2.12 设置和访问对象的状态

Android游戏开发详解
现在,我们可以访问一个Phone对象了。myPhone表示使用Phone类(class)创建的一个单个的Phone对象(object)。它是一个独立的实体,独立于我们将来可能使用蓝图(Phone类)创建的任何其他Phone对象。我们使用实例(instance)这个术语来描述这种现象。

为了更加具体地说明,让我们考虑一下,在工厂中批量生产智能手机的时候会发生什么情况。我们使用相同的蓝图来生产数以千计的设备,而且它们都是彼此独立的。它们可以有自己的属性和行为,这意味着,关闭一个设备不会影响到使用相同的蓝图生产的其他设备。与此非常相似,由单个的类而创建的每一个对象,都是该类的一个独立的实例(instance),并且接受各个变量的自己的副本,来描述对象的状态。这些变量叫作实例变量(instance variable)。

我们现在可以开始修改myPhone的状态并且调用其行为了。让我们先来为单个的Phone对象的状态指定一些初始值,如程序清单2.11所示(从第6行到第9行)。

程序清单2.11 World.java——更新后的版本

01 public class World {
02    
03    public static void main(String[] args) {
04        System.out.println("Hello, world!");
05        Phone myPhone = new Phone();
06        myPhone.poweredOn = true;
07        myPhone.playingMusic = false;
08        myPhone.phoneManufacturer = "Samsung";
09        myPhone.androidVersionNumber = 4.4;
10    }
11 }

注意一下,我们是如何访问属于Phone对象的实例变量的。要获取一个对象的特定的变量,使用点运算符。点运算符用来表示所有权。例如,myPhone.poweredOn表示属于myPhone对象的poweredOn变量。

现在已经为Phone对象的变量指定了一些初始值,myPhone是描述性数据的一个集合。如果某人访问了我们的myPhone对象,他通过打印myPhone的当前状态的值,就能够完全知道其状态了,如程序清单2.11所示(从第11行到第15行)。

程序清单2.12 World.java—更新后的版本

01 public class World {
02    
03    public static void main(String[] args) {
04        System.out.println("Hello, world!");
05        Phone myPhone = new Phone();
06        myPhone.poweredOn = true;
07        myPhone.playingMusic = false;
08        myPhone.phoneManufacturer = "Samsung";
09        myPhone.androidVersionNumber = 4.4;
10    
11        System.out.println("myPhone's state:");
12        System.out.println("Powered on: " + myPhone.poweredOn);
13        System.out.println("Playing music: " + myPhone.playingMusic);
14        System.out.println("Manufacturer: " + myPhone.phoneManufacturer);
15        System.out.println("Version: " + myPhone.androidVersionNumber);
16    }
17 }

再次运行该程序。应该会看到如下所示的输出。

Hello, world!
myPhone's state:
Powered on: true
Playing music: false
Manufacturer: Samsung
Version: 4.4

正如你所看到的,我们能够将有意义的数据组织到一个集合中,即一个Phone对象中,这个对象的名称是myPhone。myPhone现在是一个复杂的信息集合。我们将在后面的小节中介绍这一点如何有用。

时间: 2024-09-20 04:14:06

《Android游戏开发详解》一2.12 设置和访问对象的状态的相关文章

《Android游戏开发详解》一2.13 调用对象的行为

2.13 调用对象的行为 Android游戏开发详解在前面的小节中,我们介绍了如何赋值和访问所创建的对象的状态.接下来,我们讨论方法,并且学习如何调用对象的行为. 调用方法也需要使用点运算符.我们使用点运算符来引用属于一个特定对象的具体的方法.在程序清单2.12的main方法的底部,添加如下所示的两行代码. myPhone.togglePower(); myPhone.upgrade(4.5); 如果我们再回头来看看Phone类,会看到togglePower方法检查boolean powered

《Android游戏开发详解》一2.17 对象是独立的

2.17 对象是独立的 Android游戏开发详解让我们来看一下实例和对象独立性的概念.使用一个类,我们可以创建想要的任意多个对象.例如,可以创建一个Spaceship类并且使用它来实例化(创建实例)50个Spaceship对象.这些Spaceship对象中的每一个,都叫作Spaceship类的实例.实例是更为"泛化"的类的"具体的"表示,这就好像乐高组合是其各个说明手册的具体化的表示.如图2-23所示. 就像现实生活中的对象一样,同一个类的不同实例是彼此独立的.还

《Android游戏开发详解》——第2章,第2.17节对象是独立的

2.17 对象是独立的Android游戏开发详解让我们来看一下实例和对象独立性的概念.使用一个类,我们可以创建想要的任意多个对象.例如,可以创建一个Spaceship类并且使用它来实例化(创建实例)50个Spaceship对象.这些Spaceship对象中的每一个,都叫作Spaceship类的实例.实例是更为"泛化"的类的"具体的"表示,这就好像乐高组合是其各个说明手册的具体化的表示.如图2-23所示. 就像现实生活中的对象一样,同一个类的不同实例是彼此独立的.还是

《Android游戏开发详解》——第2章,第2.12节设置和访问对象的状态

2.12 设置和访问对象的状态Android游戏开发详解现在,我们可以访问一个Phone对象了.myPhone表示使用Phone类(class)创建的一个单个的Phone对象(object).它是一个独立的实体,独立于我们将来可能使用蓝图(Phone类)创建的任何其他Phone对象.我们使用实例(instance)这个术语来描述这种现象. 为了更加具体地说明,让我们考虑一下,在工厂中批量生产智能手机的时候会发生什么情况.我们使用相同的蓝图来生产数以千计的设备,而且它们都是彼此独立的.它们可以有自

《Android游戏开发详解》——第1章,第1.7节控制流程第1部分——if和else语句

1.7 控制流程第1部分--if和else语句 Android游戏开发详解 我们现在把注意力转向控制流程(control flow ,也称为流程控制,flow control),这指的是代码行将要按照什么样的顺序执行.还记得代码执行的基本规则吧,它是说代码要从上到下地执行.在最简单的程序中,代码真的是按照线性方式从上向下执行的.然而,在任何有用的程序中,我们可能会看到,根据某些条件,会跳过一些代码行甚至重复执行一些代码行.让我们来看一些例子. 1.7.1 if-else语句块 if-else语句

《Android游戏开发详解》一1.7 控制流程第1部分——if和else语句

1.7 控制流程第1部分--if和else语句 Android游戏开发详解 我们现在把注意力转向控制流程(control flow ,也称为流程控制,flow control),这指的是代码行将要按照什么样的顺序执行.还记得代码执行的基本规则吧,它是说代码要从上到下地执行.在最简单的程序中,代码真的是按照线性方式从上向下执行的.然而,在任何有用的程序中,我们可能会看到,根据某些条件,会跳过一些代码行甚至重复执行一些代码行.让我们来看一些例子. 1.7.1 if-else语句块 if-else语句

《Android游戏开发详解》一2.19 使用字符串

2.19 使用字符串 Android游戏开发详解让我们通过使用熟悉的一个类String,来练习一下如何使用Java文档.创建一个名为FunWithStrings的新的Java项目,并且创建一个名为StringTester的.带有main方法的新的类,如程序清单2.18所示. 程序清单2.18 StringTester.java--空的版本 01 public class StringTester { 02 03 public static void main(String[] args) { 0

《Android游戏开发详解》一2.15 改进程序

2.15 改进程序 Android游戏开发详解让我们记住上面的原理,并且努力地改进程序.首先,添加一个内建的Java关键字private作为所有Phone对象的变量的修饰符,如程序清单2.14第4行到第7行所示. 程序清单2.14 隐藏Phone类中的变量 01 public class Phone { 02 03 // These variables describe the Phone object's state 04 private boolean poweredOn; 05 priva

《Android游戏开发详解》一2.9 类

2.9 类 Android游戏开发详解图2-19所示的一个对象框架,如何将其转换为Java代码呢?使用类(class).我们已经创建了很多类,但是,还没有介绍什么是类. 类提供了一个模板,以供创建Java对象.常用的类比把类描述为一个蓝图.如下是一个Phone类的样子. 程序清单2.8 Phone类的一个示例 01 public class Phone { 02 03 // These variables describe the Phone object's state 04 boolean