翻譯自O(shè)RALCE 《JAVA TUTORIAL 》
What Is a Class?
在現(xiàn)實世界中改抡,你經(jīng)常會發(fā)現(xiàn)許多單獨的對象都是一樣的∠灯埃可能有成千上萬的其他自行車存在阿纤,所有相同的品牌和型號。每輛自行車是由同一套藍圖構(gòu)成的夷陋,因此包含相同的組件欠拾。在面向?qū)ο蟮男g(shù)語中,我們說你的自行車是被稱為自行車的物體的一個實例肌稻。類是創(chuàng)建單個對象的藍圖清蚀。
以下自行車類是自行車的一種可能的實現(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編程語言的語法將看起來很新,但是這個類的設(shè)計是基于以前對自行車對象的討論爹谭。田徑節(jié)奏枷邪,速度和齒輪代表物體的狀態(tài),方法(changeCadence诺凡,changeGear东揣,speedUp等)定義該類與外界的交互。
您可能已經(jīng)注意到腹泌,Bicycle類不包含主要方法嘶卧。 這是因為它不是一個完整的應(yīng)用程序; 它只是可能在應(yīng)用程序中使用的自行車藍圖。 創(chuàng)建和使用新的自行車對象的責任屬于您的應(yīng)用程序中的其他類凉袱。
這是一個BicycleDemo類芥吟,它創(chuàng)建兩個單獨的自行車對象并調(diào)用它們的方法:
class BicycleDemo {
public static void main(String[] args) {
// Create two different
// Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// Invoke methods on
// those objects
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();
}
}
該測試的輸出打印兩輛自行車的踏板節(jié)奏,速度和檔位如下:
cadence:50 speed:10 gear:2
cadence:40 speed:20 gear:3