对象和类
面向对象编程可以有效地帮助开发大规模的软件以及图形用户界面。
面向对象程序设计有助于更有效地开发 GUI (图形用户界面) 和大型软件系统。
为对象定义类
类为对象定义属性和方法。
面向对象程序设计 (OOP) 就是使用对象进行程序设计。对象 (object) 代表现实世界中可以明确标识的一个实体。
每个对象都有自己独特的标识、状态和行为.
- 一个对象的状态 (state,也称为特征 (property) 或属性 (attribute) ) 是由具有当前值的数据域来表示的。
- 一个对象的行为 (behavior, 也称为动作 (action) ) 是由方法定义的。调用对象的一个方法就是要求对象完成一个动作。
使用一个通用类来定义同一类型的对象。类是一个模板、蓝本或者说是合约,用来定义对象的数据域以及方法。一个对象是类的一个实例,可以从一个类中创建多个实例。创建实例的过程称为实例化 (instantiation)。对象 (object) 和实例 (instance) 经常是可以互换的。
Java 类使用变量定义数据域,使用方法定义动作。除此之外,类还提供了一种称为构造方法 (constructor) 的特殊类型的方法,调用它可以创建一个新对象。构造方法本身是可以完成任何动作的,但是设计构造方法是为了完成初始化动作。例如:初始化对象的数据域。
包含 main 方法的类称为主类 (main class) 。
类的模板和对象的图示可以使用统一建模语言 (UML)的图形符号进行标准化。
这种表示方法称为 UML 类图 (UML class diagram), 或简称为类图 (class diagram)。在类图中,数据域表示为:
dataFieldName: dataFieldType
构造方法可以表示为:
ClassName(parameterName: parameterType)
方法可以表示为:
methodNameCparameterName: parameterType): returnType
定义类和创建对象
类是对象的定义,对象从类创建。
可以把两个类放在同一个文件中,但是文件中只能有一个类是公共 (public) 类。此外,公共类必须与文件同名。
使用这样的类的程序通常称为该类的客户 (client) 。运行这个程序时,Java 运行系统会调用这个主类的 main 方法。
使用构造方法构造对象
构造方法在使用 new 操作符创建对象的时候被调用。
构造方法是一种特殊的方法。它们有以下三个特殊性:
- 构造方法必须具备和所在类相同的名字。
- 构造方法没有返回值类型,甚至连 void 也没有。
- 造方法是在创建一个对象使用 new 操作符时调用的。构造方法的作用是初始化对象。
构造方法具有和定义它的类完全相同的名字。和所有其他方法一样,构造方法也可以重载 (可以有多个同名的构造方法,但它们要有不同的签名) ,这样更易于用不同的初始数据值来构造对象。
错误: 将关键字 void 放在构造方法的前面。
构造方法是用来构造对象的。为了能够从一个类构造对象,使用 new 操作符调用这个类的构造方法,如下所示:
new ClassName(arguments);
通常,一个类会提供一个没有参数的构造方法。这样的构造方法称为无参构造方法(no-arg 或 no-argument constructor) 。一个类可以不定义构造方法。在这种情况下,类中隐含定义一个方法体为空的无参构造方法。这个构造方法称为默认构造方法 (default constructor)&#