1.对象有状态和行为
注:类所描述的是对象知道什么与执行什么
类是对象的蓝图。在编写类时,你是在描述Java虚拟机应该如何制作该类型的对象。你已经知道每个对象有独立的实例变量值。但方法呢?
2.同一类型的某个对象能够有不同的方法行为吗?
嗯…差不多。
任一类的每个实例都带有相同的方法,但是方法可以根据实例变量的值来表现不同的行为。
Song这个类有title与artist这两个实例变量。play()会播放title值所表示的歌曲。所以调用某个实例的play()可能会播放“Politik" 而另一个 实例会播放"Darkstar" 。然而方法却是相同的:
void play() {
soundPlayer .playSound(title) ;
}
3.方法的参数
(1)你可以传值给方法
如同其他的程序设计语言,你可以传值给方法。举例来说,你可能会要告诉Dog对象叫几声:
d.bark(3) ;
由于不同的程序设计背景和个人喜好,你可能会用实参(argument) 或形参(parameter)来调用传给方法的参数。虽然在正统学院派的信息工程领城中这两者是不同的,但我们可以这样来区分:
(2)方法会运用形参。调用的一方会传入实参。
实参是传给方法的值。当它传入方法后就成了形参。参数跟局部(local) 变量是一样的。它有类型与名称,可以在方法内运用。
重点是:如果某个方法需要参数,你就一定得传东西给它。那个东西得是适当类型的值。
(3)你可以从方法中取返回值
方法可以有返回值。每个方法都声明返回的类型,但目前我们都是把方法设成返回void类型,这代表并没有返回任何东西。
void go() {
}
但我们可以声明一个方法,回传给调用方指定的类型值,如:
int giveSecret()