在真實(shí)世界中,你經(jīng)常會(huì)發(fā)現(xiàn)許多單獨(dú)的對(duì)象都屬于相同的種類。可能存在有上千種自行車,它們?nèi)慷加邢嗤臉?gòu)成與模型。每種自行車都構(gòu)造于相同的藍(lán)圖集并且因此而包含了相同的組成部分。在向?qū)ο蟮男g(shù)語中,我們就可以說你的自行車是自行車對(duì)象類的一個(gè)實(shí)例。也就是說,類就是那些被創(chuàng)建對(duì)象的藍(lán)圖。
下列 Bicycle 類就是一種可能的自行車實(shí)現(xiàn):
class Bicycle { int cadence = 0; int speed = 0; int gear = 1; void changeCadence(int newValue) { cadence = newValue; } void changeGear(int newValue) { gear = newValue; } void speedUp(int increment) { speed = speed + increment; } void applyBrakes(int decrement) { speed = speed - decrement; } void printStates() { System.out.println("cadence:"+cadence+" speed:"+speed+" gear:"+gear); } }
Java 編程語言的語法對(duì)于你來說可能是全新的,但是這個(gè)類的設(shè)計(jì)是基于前面所討論的自行車對(duì)象。字段 cadence,speed 和 gear 呈現(xiàn)了對(duì)象的狀態(tài),而方法(changeCadence、changeGear,speedUp 等等。)則定義了它與外部世界的交互。
你可能已經(jīng)注意到 Bicycle 類并沒有包含 main 方法。這是因?yàn)樗皇且粋€(gè)完整的應(yīng)用程序;它只是可能在某個(gè)應(yīng)用程序中被使用的自行車藍(lán)圖。創(chuàng)建并且使用新的 Bicycle 對(duì)象的職責(zé)則屬于你的應(yīng)用程序中的一些其他的類。
下面的 BicycleDemo 類創(chuàng)建了兩個(gè)單獨(dú)的 Bicycle 對(duì)象并且調(diào)用它們的方法:
class BicycleDemo { public static void main(String[] args) { // 創(chuàng)建兩個(gè)不同的 Bicycle 對(duì)象 Bicycle bike1 = new Bicycle(); Bicycle bike2 = new Bicycle(); // 調(diào)用這些對(duì)象的方法 bike1.changeCadence(50); bike1.speedUp(10); bike1.changeGear(2); bike1.printStates(); bike2.changeCadence(50); bike2.speedUp(10); bike2.changeGear(2); bike2.changeCadence(40); bike2.speedUp(10); bike2.changeGear(3); bike2.printStates(); } }
這個(gè)測(cè)試打印輸出了這兩部自行車最終的踏板特性:cadence,speed 與 gear。
cadence:50 speed:10 gear:2 cadence:40 speed:20 gear:3