基本物件構造和使用

物件來自他們自己的類,所以一個簡單的例子就是汽車(詳細解釋如下):

public class Car {
    
    //Variables describing the characteristics of an individual car, varies per  object
   private int milesPerGallon;
   private String name;
   private String color;
   public int numGallonsInTank; 
    
    public Car(){
        milesPerGallon = 0;
        name = "";
        color = "";
        numGallonsInTank = 0;
    }
    
    //this is where an individual object is created
    public Car(int mpg, int, gallonsInTank, String carName, String carColor){
        milesPerGallon = mpg;
        name = carName;
        color = carColor;
        numGallonsInTank = gallonsInTank;
    }

    //methods to make the object more usable

    //Cars need to drive
    public void drive(int distanceInMiles){
        //get miles left in car
        int miles = numGallonsInTank * milesPerGallon;
        
        //check that car has enough gas to drive distanceInMiles
        if (miles <= distanceInMiles){
            numGallonsInTank = numGallonsInTank - (distanceInMiles / milesPerGallon)
            System.out.println("Drove " + numGallonsInTank + " miles!");
        } else {
            System.out.println("Could not drive!");
        }
    }

    public void paintCar(String newColor){
        color = newColor;
    }
        //set new Miles Per Gallon
    public void setMPG(int newMPG){
        milesPerGallon = newMPG;
    }

       //set new number of Gallon In Tank
    public void setGallonsInTank(int numGallons){
        numGallonsInTank = numGallons;
    }
    
    public void nameCar(String newName){
        name = newName;
    }

    //Get the Car color
    public String getColor(){
        return color;
    }

    //Get the Car name
    public String getName(){
        return name;
    }

    //Get the number of Gallons
    public String getGallons(){
        return numGallonsInTank;
    }
    
}  

物件是其類的例項。因此,建立物件的方式是在主類中以兩種方式之一呼叫 Car 類(Java 中的 main 方法或 Android 中的 onCreate)。

選項 1

`Car newCar = new Car(30, 10, "Ferrari", "Red");

選項 1 是你在建立物件時基本上告訴程式有關 Car 的所有內容。更改汽車的任何屬性都需要呼叫其中一種方法,例如 repaintCar 方法。例:

 newCar.repaintCar("Blue");

注意: 確保將正確的資料型別傳遞給方法。在上面的示例中,只要資料型別正確,你也可以將變數傳遞給 repaintCar 方法。

這是一個更改物件屬性的示例,接收物件的屬性需要使用 Car 類中具有返回值的方法(意味著不是 void 的方法)。例:

String myCarName = newCar.getName();  //returns string "Ferrari"

當你在建立時擁有所有物件的資料時,選項 1 是最佳選項。 ****

選項 2

`Car newCar = new Car();

選項 2 獲得相同的效果,但需要更多工作才能正確建立物件。我想在 Car 類中回憶一下這個建構函式:

public void Car(){
        milesPerGallon = 0;
        name = "";
        color = "";
        numGallonsInTank = 0;
    }

請注意,你不必將任何引數實際傳遞到物件中以建立它。當你沒有物件的所有方面但是需要使用你擁有的部件時,這非常有用。這會將通用資料設定到物件的每個例項變數中,這樣,如果你呼叫一個不存在的資料,則不會丟擲任何錯誤。

注意: 不要忘記,你必須稍後設定物件的部分,而不是使用它進行初始化。例如,

Car myCar = new Car();
String color = Car.getColor(); //returns empty string

這是未使用所有資料初始化的物件中的常見錯誤。避免了錯誤,因為有一個建構函式允許使用替代變數public Car(){}) 建立空的 Car 物件,但 myCar 的任何部分都沒有實際定製。建立 Car Object 的正確示例:

Car myCar = new Car();
myCar.nameCar("Ferrari");
myCar.paintCar("Purple");
myCar.setGallonsInTank(10);
myCar.setMPG(30);

並且,作為提醒,通過呼叫主類中的方法來獲取物件的屬性。例:

String myCarName = myCar.getName(); //returns string "Ferrari"