基本对象构造和使用
对象来自他们自己的类,所以一个简单的例子就是汽车(详细解释如下):
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"