引言
在Java編程中,懂得類的持續、封裝跟多態是至關重要的。本文將經由過程一個具體的案例——「凱越」跟「君威」汽車銷售體系,深刻剖析Java編程中的關鍵不雅點。
案例背景
假設我們正在開辟一個汽車銷售體系,其中包含兩種車型:「凱越」跟「君威」。我們須要實現以下功能:
- 管理庫存,確保銷售時不會超出庫存數量。
- 表現以後銷售情況,包含每種車型的銷售數量。
類的計劃
為了實現上述功能,我們將計劃多少個類,包含Car
、Saler
跟Main
。
Car類
public class Car {
private String type;
private String id;
public Car(String type, String id) {
this.type = type;
this.id = id;
}
public String getType() {
return type;
}
public String getId() {
return id;
}
}
Saler類
import java.util.ArrayList;
import java.util.List;
public class Saler {
private List<Car> cars;
public Saler() {
cars = new ArrayList<>();
}
public void addCar(Car car) {
if (car.getType().equals(type0 ? "凱越" : "君威") && !exists(cars, car)) {
cars.add(car);
}
}
public void printStockInfo(int num, int type0) {
int c = 0;
for (Car car : cars) {
if (car.getType().equals(type0 ? "凱越" : "君威")) {
c++;
}
}
if (c < num) {
System.out.printf("庫存缺乏 , 現實售出 %s %d 輛\n", type0 ? "凱越" : "君威", num);
} else {
System.out.printf("售出 %s %d 輛\n", type0 ? "凱越" : "君威", num);
}
}
public void printSalesInfo() {
System.out.println("以後銷售情況一覽");
System.out.printf("%10s%10s\n", "汽車格式", "汽車編號");
for (Car car : cars) {
System.out.printf("%10s%10s\n", car.getType(), car.getId());
}
System.out.println("---------------------------");
System.out.printf("小計:%d 輛\n", cars.size());
}
private boolean exists(List<Car> list, Car car) {
for (Car c : list) {
if (c.getId().equals(car.getId())) {
return true;
}
}
return false;
}
}
Main類
public class Main {
public static void main(String[] args) {
Saler saler = new Saler();
saler.addCar(new Car("凱越", "001"));
saler.addCar(new Car("君威", "002"));
saler.printStockInfo(2, 0);
saler.printSalesInfo();
}
}
關鍵不雅點剖析
持續
在上述代碼中,我們倒黴用持續,但假如我們須要為「凱越」跟「君威」增加更多屬性或方法,我們可能創建一個基類CarType
,然後讓「凱越」跟「君威」持續自該基類。
封裝
在Car
類中,我們將type
跟id
屬性設置為私有,並經由過程大年夜眾方法拜訪它們。這是封裝的一個例子,它有助於保護數據不被外部代碼直接拜訪。
多態
在這個案例中,我們倒黴用多態,但假如我們須要對差其余車型履行差其余操縱,我們可能利用介面或抽象類來實現多態。
總結
經由過程這個案例,我們深刻懂得了Java編程中的關鍵不雅點。在現實開辟中,懂得並利用這些不雅點將有助於我們編寫更高效、更保險的代碼。