原文連結位址:
<a href="http://java.sun.com/docs/books/tutorial/java/concepts/index.html" target="_blank">Lesson: Object-Oriented Programming Concepts</a>
<a href="http://java.sun.com/docs/books/tutorial/java/concepts/class.html" target="_blank">What Is a Class?</a>
原文:
A class is a blueprint or prototype from which objects are created. This section defines a class that models the state and behavior of a real-world object. It intentionally focuses on the basics, showing how even a simple class can cleanly model state and behavior.
什麼是類?
類是對象的藍圖或者原型。這一部分會詳細說明類是怎樣模拟現實世界中對象的狀态和行為的。它是基礎,它會告訴你就是一個簡單的類也能很好地模拟對象的狀态和行為。
在現實世界中,你會發現很多獨特的對象具有相同的種類。比如成千上萬輛自行車,制作方法和模型都是相同的。每一個輛自行車都是從相同的裝置和圖紙中制造出來的,是以具有相同的元件。在面向對象的術語中,我們就說這輛自行車是自行車這個對象的中的一個執行個體。類就是對象的藍圖。
下面給出自行車這個類的用法:
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文法可能對于來說是很新鮮的,但是這個類的設計是基于前面所讨論的自行車對象。字段cadence,speed和gear都是對象的狀态,方法changeCadence,changeGear,seepUp等等定義了與外界的互動。
你可能注意到自行車類不包含main方法。這是因為上面的不是一個完整的應用程式,它僅僅是可能會在自行車對象中被使用的藍圖。它的功能是建立一個自行車的新對象,這個對象可以在其他的程式中使用。
下面這個BicycleDemo類就是建立兩個單獨的自行車對象,還要調用它們的方法:
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.changeGear(3);
bike2.printStates();
}
其列印的結果是:
cadence:50 speed:10 gear:2
cadence:40 speed:20 gear:3
本文轉自 sundunjam 51CTO部落格,原文連結:http://blog.51cto.com/sunspot/132583,如需轉載請自行聯系原作者