天天看點

【翻譯】The Java Tutorial中的Class概念

原文連結位址:

<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,如需轉載請自行聯系原作者