【Java復健指南09】項目練習全解--房屋出租系統( 二 )

業務方法list()list()需要返回系統用于存放房屋信息的一個數組 , 數組元素為房屋對象
通過遍歷此數組可以獲取所有房屋的信息
/** //定義House[],保存House對象1.響應HouseView的調用2.完成對房屋信息的各種操作* (增刪改查c[create]r[read]u[update]d[delete])*/public class HouseService {private House[] house;//構造器public HouseService(int size){house = new House[size];//創建HouseService對象時,需要指定House數組的大小//測試,初始化一個默認HouseService對象house[0] = new House(1, "jk", "13544856575","西青區", 1800,"未出租");}//list方法返回house(數組)public House[] list(){return house;}}這里已經需要使用房屋類了,自然的我們需要編寫房屋類
定義房屋類房屋類House.java如下
/** House的對象表示一個房屋信息*/public class House {//需要以下信息//編號房主電話地址月租狀態(未出租/已出租)private int id;private String name;private String phone;private String address;private int rent;private String state;public House(int id, String name, String phone, String address, int rent, String state) {this.id = id;this.name = name;this.phone = phone;this.address = address;this.rent = rent;this.state = state;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public int getRent() {return rent;}public void setRent(int rent) {this.rent = rent;}public String getState() {return state;}public void setState(String state) {this.state = state;}//為了方便的輸出對象信息 , 需要實現toString方法//比如有House h1 , 這樣直接sout(h1)就可以打印房屋信息了@Overridepublic String toString() {return id +"\t" + name +"\t" + phone +"\t" + address +"\t" + rent +"\t" + state ;}}實現房屋添加實現房屋列表之后,實際上房屋類也完成了定義
那么現在可以考慮實現房屋信息的添加
每個房屋添加進來應該給一個編號,這是需要注意的,后續需要通過編號查詢
//編寫addHouse()接受輸入,創建House對象,調用add方法//addHouse()僅負責在界面層面的添加,實際去操控House對象數組完成添加的方法屬于具體的業務功能//即add()方法應該在HouseService.java中定義,在HouseView.java的addHouse()調用,遵循之前的類關系圖設計public void addHouse(){System.out.println("=============添加房屋============");System.out.print("姓名: ");String name = Utility.readString(8);System.out.print("電話: ");String phone = Utility.readString(12);System.out.print("地址: ");String address = Utility.readString(16);System.out.print("月租: ");int rent = Utility.readInt();System.out.println("狀態: ");String state = Utility.readString(3);//按照輸入信息 , 創建一個新的House對象//id是系統分配House newHouse = new House(0, name, phone, address, rent, state);if(houseService.add(newHouse)){System.out.println("=============添加房屋成功============");}else {System.out.println("=============添加房屋失敗============");}}業務方法add()需要在該業務方法中實現對房屋對象數組的新增數據操作
并且需要實現對房屋信息的自動編號
public class HouseService {private House[] house;private int houseNums = 1;//記錄當前有多少個房屋信息private int idCounter = 1;//記錄當前的id增長到的值//構造器public HouseService(int size){house = new House[size];//創建HouseService對象時,需要指定House數組的大小//測試,初始化一個HouseService對象house[0] = new House(1, "jk", "13544856575","西青區", 1800,"未出租");}//list方法返回house(數組)public House[] list(){return house;}//add方法,添加新對象,返回boolean//輸入參數是House對象public boolean add(House newHouse){//判斷是否還可以繼續添加(暫時不考慮數組擴容問題)if(houseNums == house.length){//若房屋信息數量大于數組長度則不能再加System.out.println("數組已滿,無法添加");return false;}//數組還沒滿的話把newHouse對象加入到數組,同時房屋數量計數+1//house[houseNums] = newHouse;//houseNums ++;//新增一個房屋//上述代碼可以利用"后++"的特性整合//houseNums++的值是運行一次之后才會自增的//例如 , 當前houseNums為1,數組設定為10,新增房屋信息肯定是可以的//因此 , 在數組索引為1的地方加入newHouse,之后houseNums自增為2house[houseNums++] = newHouse;//后++//需要設計一個id自增長機制,然后更新newHouse的id//idCounter ++;//newHouse.setId(idCounter);newHouse.setId(++idCounter);//前++,同理return true;}}

推薦閱讀