基本物件構造和使用
物件來自他們自己的類,所以一個簡單的例子就是汽車(詳細解釋如下):
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"