在Java中,我們可以通過面向對象編程來設計一個油箱類和汽車類。首先,我們來設計油箱類。
public class GasTank { private double capacity; // 容量 private double level; // 油量 public GasTank(double capacity) { this.capacity = capacity; this.level = 0; } public void addGas(double amount) { this.level = Math.min(this.capacity, this.level + amount); } public void useGas(double amount) { this.level = Math.max(0, this.level - amount); } public double getLevel() { return this.level; } public double getCapacity() { return this.capacity; } public boolean isFull() { return Math.abs(this.level - this.capacity)< 0.000001; } public boolean isEmpty() { return Math.abs(this.level)< 0.000001; } }
上面的代碼實現了一個油箱類,它有兩個私有成員變量capacity和level,分別表示容量和油量。我們可以使用構造方法來初始化容量,并提供一些方法來增加或消耗油量,并返回當前油量、容量以及油箱是否已滿或已空的狀態。
接下來,我們來設計汽車類。
public class Car { private String make; // 品牌 private String model; // 型號 private GasTank gasTank; // 油箱 private double mileage; // 里程 public Car(String make, String model, double tankCapacity) { this.make = make; this.model = model; this.gasTank = new GasTank(tankCapacity); this.mileage = 0; } public void drive(double miles) { double mpg = 25.0; // 每加侖行駛英里數 double gallons = miles / mpg; if (this.gasTank.getLevel() >= gallons) { this.gasTank.useGas(gallons); this.mileage += miles; } else { System.out.println("Need to refuel!"); // 提示需要加油 } } public void refill() { double amount = this.gasTank.getCapacity() - this.gasTank.getLevel(); System.out.println("Add " + amount + " gallons of gas."); // 提示加了多少加侖的油 this.gasTank.addGas(amount); } public double getMileage() { return this.mileage; } public boolean isTankFull() { return this.gasTank.isFull(); } public boolean isTankEmpty() { return this.gasTank.isEmpty(); } }
上面的代碼實現了一個汽車類,它有四個私有成員變量make、model、gasTank和mileage,分別表示品牌、型號、油箱和里程。我們可以使用構造方法來初始化品牌、型號和油箱容量,并提供一些方法來駕駛汽車、加油以及返回里程和油箱狀態。
通過上面的代碼設計,我們可以很方便地創建油箱和汽車對象,并進行相關的操作。這種面向對象的編程思想使得代碼更加簡潔、易讀、易維護和易擴展。
上一篇ajax動態請求js文件
下一篇php mktime屬性