【Java复健指南09】项目练习全解--房屋出租系统( 五 )

HouseService.javapackage com./.../.houserent.service;import com./.../.houserent.domain.House;/** //定义House[],保存House对象1.响应HouseView的调用2.完成对房屋信息的各种操作* (增删改查c[create]r[read]u[update]d[delete])*/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;}//findById()方法,根据id查找房屋 , 返回House对象或者nullpublic House findById(int findId){//遍历房屋数组for (int i = 0; i < houseNums; i++) {if(findId == house[i].getId()){return house[i];}}return null;}//del方法 , 删除一个房屋信息public boolean del(int delId){//应先找到删除房屋的对应下标,房屋编号与下标不对应int index = -1;for (int i = 0; i < houseNums; i++) {if(delId == house[i].getId()){//要删除的房屋(id),是数组下标为i的元素index = i;//记录i}}if(index == -1){//说明delId在数组中不存在return false;}//如果找到应该怎么删除?//待删除的下标位置的元素的后一个元素前移,覆盖待删除元素//然后最后一位,置为null,重复上述操作for (int i = index; i < houseNums - 1; i++) {house[i] = house[i+1];}//置空最后一个元素//house[houseNums - 1] = null;//houseNums--;//少一个元素house[--houseNums] = null;//把当前存在的房屋信息的最后一个置空return true;}//add方法,添加新对象 , 返回booleanpublic boolean add(House newHouse){//判断是否还可以继续添加(暂时不考虑数组扩容问题)if(houseNums == house.length){//不能再加System.out.println("数组已满,无法添加");return false;}//把newHouse对象加入到数组//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;}}House.javapackage com./.../.houserent.domain;/** 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 ;}}HouseRentApp.javapackage com./.../.houserent;import com./.../.houserent.view.HouseView;public class HouseRentApp {public static void main(String[] args) {//创建HouseView对象,显示界面,是程序的主入口new HouseView().mainMenu();System.out.println("========已退出========");}}

推荐阅读