在本章的开始提到,类通常由两个要素组成:实例变量和方法。方法是个很大的话题,因为Java 给他们如此大的功能和灵活性。事实上,下一章的大部分都用来介绍方法。然而,你现在需要学习一些基础以便你能开始把方法加到你的类中。
这是方法一般的形式:
type name(parameter-list) {
// body of method
}
其中,type 指定了方法返回的数据类型。这可以是任何合法有效的类型,包括你创建的类的类型。假如该方法不返回任何值,则它的返回值type 必须为void 。方法名由name 指定。除了被当前作用域中的其他项使用的标识符以外,方法名可以是任何合法的标识符。parameter-list (自变量列表)是一系列类型和标识符对,用逗号分开。自变量本质上是变量,它接收方法被调用时传递给方法的参数值。假如方法没有自变量,那么自变量列表就为空。
对于不返回void 类型的方法,使用下面格式的return语句,方法返回值到它的调用程序:
return value;
其中,value 是返回的值。接下来,你将看到怎样创建多种类型的方法,包括带参数的和那些有返回值的方法。
6.4.1 为Box类添加一个方法
尽管创建一个仅包含数据的类是相当不错的事情,但这样的情况很少发生。大部分情况是你将使用方法存取由类定义的实例变量。事实上,方法定义大多数类的接口。这答应类实现函数可以把内部数据结构的特定布局隐蔽到方法抽象后面。除了定义提供数据的存取的方法,你也可以定义被类的内部自己所使用的方法。
让我们由对Box 类增加一个方法开始。回顾一下前面计算盒子体积的例子,你会发现用Box 类有时会比使用BoxDemo 类能更好地处理这个问题。不管怎么说,一个盒子的体积依靠于盒子的大小,这就是我们想到用Box类来计算盒子的体积。为了做到这一点,你必须对Box类增加一个方法,示例如下:
// This program includes a method inside the box class.
class Box { double width; double height; double depth;
// display volume of a box void volume() { System.out.print("Volume is ");
System.out.println(width * height * depth);
}
}
class BoxDemo3 {
public static void main(String args[]) {
Box mybox1 = new Box();
Box mybox2 = new Box();
// assign values to mybox1's instance variables
mybox1.width = 10;
mybox1.height = 20;
mybox1.depth = 15;
/* assign different values to mybox2's
instance variables */
mybox2.width = 3;
mybox2.height = 6;
mybox2.depth = 9;
// display volume of first box
mybox1.volume();
// display volume of second box
mybox2.volume();
}
}
该程序产生的输出如下,与先前版本程序的输出一样。
Volume is 3000.0
Volume is 162.0
注重看下面两行程序:
mybox1.volume ();
mybox2.volume ();