需求:java用面向对象基础知识点实现基础的房屋系统增删改查

第1步:实体类

package com.lian.pojo.f.demo9;

/**
 * House的对象表示一个房屋信息
 */
public class House {
    //编号  房主  电话  地址  月租  状态(未出租/已出租)
    private int id;
    private String name;
    private String phone;
    private String address;
    private int rent;
    private String state;
    //构造器和setter,getter


    public House(String name, String phone, String address, int rent, String state) {
        this.name = name;
        this.phone = phone;
        this.address = address;
        this.rent = rent;
        this.state = 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
    //编号  房主  电话  地址  月租  状态(未出租/已出租)
    @Override
    public String toString() {
        return  id +
                "\t\t" + name +
                "\t" + phone +
                "\t\t" + address +
                "\t" + rent +
                "\t" + state ;
    }
}

第2步:工具类完成增删改查

package com.lian.pojo.f.demo9;

/**
 * 作用:数组增删改查的工具类
 *
 * HouseService.java<=>类 [业务层]
 * //定义House[] ,保存House对象
 * 1. 响应HouseView的调用
 * 2. 完成对房屋信息的各种操作(增删改查c[create]r[read]u[update]d[delete])
 *
 */
public class HouseUtils {

    private House[] houses; //保存house数组
    private int houseNums = 1; //记录当前有多少个House对象房屋信息
    private int idCounter = 1; //记录当前的id增长到哪个值,主键自增

    public HouseUtils(int size) {
        //默认创建HouseService对象,指定数组大小
        houses = new House[size];
        houses[0] = new House(1,"jack","110","haidian",1,"unrent");
    }

    //findById 方法,返回House对象或者null
    public House findById(int findId){
        for (int i = 0; i < houseNums; i++) {
            if (findId == houses[i].getId()){
                return houses[i];
            }
        }
        return null;
    }

    //del方法
    public boolean del(int delId) {
        int index = -1;
        for (int i = 0; i < houseNums; i++) {
            if (delId == houses[i].getId()) {
                index = i;  //要删除的数组下标
            }
        }
        if (index == -1) {
            return false;
        }
        //删除一个房子,房子数量就减少1,数组里的房子都往前挪,最后面一个位置删除即可
        for (int i = index; i < houseNums - 1; i++) {
            //例如删除的下标是i为5的房子,那么数组里的位置就从下标5开始,后面的依次往前挪
            houses[i] = houses[i + 1];
        }
        //数组最后一个位置设置为空
        houses[--houseNums] = null;
        return true;
    }

    //add
    public boolean add(House newHouse){
        //如果房子的数量和数组大小一样
        if (houseNums == houses.length){
            System.out.println("array enough ,can not fill into value");
            return false;
        }
        newHouse.setId(++idCounter);
        houses[houseNums++] = newHouse;
        return true;
    }

    //list
    public House[] list(){
        return houses;
    }

}

第3步:业务类实现增删改查逻辑

package com.lian.pojo.f.demo9;

import java.util.Scanner;

/**
 * 增删改查的逻辑
 */
public class HouseLogic {

    boolean flag = true;
    private HouseUtils houseServices = new HouseUtils(10); //只能放10个房子数组
    public static Scanner scanner = new Scanner(System.in);

    public void mainMenu() {

        do {
            System.out.println("           rentHouse system");
            System.out.println("           1 find house ");
            System.out.println("           2 add house ");
            System.out.println("           3 update house ");
            System.out.println("           4 delete house ");
            System.out.println("           5 house list ");
            System.out.println("           6 exit system ");

            int i = scanner.nextInt();
            if (i != 1 || i != 2 || i != 3 || i != 4|| i!= 5 || i != 6){
                System.out.println("please input correct number one to six");
                continue;
            }
            switch (i){
                case 1:
                    findHouse();
                    break;
                case 2:
                    addHouse();
                    break;
                case 3:
                    updateHouse();
                    break;
                case 4:
                    deleteHouse();
                    break;
                case 5:
                    houseList();
                    break;
                case 6:
                    exitSys();
                    break;
                default:
                    System.out.println("guy, look at front remember please");
                    break;
            }

        }while (flag);
    }

    private void findHouse() {
        System.out.println("find out house information, please input houseId");
        int i = scanner.nextInt();
        House house = houseServices.findById(i);
        if (house != null){
            System.out.println(house);
        }else {
            System.out.println("this house information not exist");
        }
    }

    private void addHouse() {
//        System.out.println("please input id");
//        int id = scanner.nextInt();
        System.out.println("please input name");
        String name = scanner.next();
        System.out.println("please input phone");
        String phone = scanner.next();
        System.out.println("please input address");
        String address = scanner.next();
        System.out.println("please input rent");
        int rent = scanner.nextInt();
        System.out.println("please input status");
        String status = scanner.next();
        House house = new House(name,phone,address,rent,status);
        boolean b = houseServices.add(house);
        if (b){
            System.out.println("add house success");
        }else {
            System.out.println("add house faild");
        }
    }

    private void updateHouse() {
        System.out.println("update house");
        System.out.println("please choose houseNo of house -1 represent exit");
        int updateId = scanner.nextInt();
        if (updateId == -1){
            System.out.println("give up update house");
            return;
        }
        House house = houseServices.findById(updateId);
        if (house == null){
            System.out.println("this house not exist");
            return;
        }
        System.out.print("姓名(" + house.getName() + "): ");

        System.out.println("please input your name");
        String name = scanner.next();
        if (name != ""){
            house.setName(name);
        }
        System.out.println("please input your phone");
        String phone = scanner.next();
        if (phone != ""){
            house.setPhone(phone);
        }
        System.out.println("please input your address");
        String address = scanner.next();
        if (address != ""){
            house.setAddress(address);
        }
        System.out.println("please input your rent");
        Integer rent = scanner.nextInt();
        if (rent != null){
            house.setRent(rent);
        }
        System.out.println("please input your status");
        String status = scanner.next();
        if (status != ""){
            house.setState(status);
        }
        System.out.println("update house information success");
    }

    private void deleteHouse() {
        System.out.println("please input house id what you want to delete ?");
        int i = scanner.nextInt();
        boolean b = houseServices.del(i);
        if (b){
            System.out.println("delete house success");
        }else {
            System.out.println("delete house faild");
        }
    }

    private void houseList() {
        House[] list = houseServices.list();
        for (int i = 0; i < list.length; i++) {
            if (list[i] != null) {
                System.out.println(list[i]);
            }
        }
    }

    private void exitSys() {
        System.out.println("are you sure exit ? y/n");
        String exit = scanner.next();
        if (exit.equalsIgnoreCase("y")){
            flag = false;
            return;
        }
    }

}

第4步:主启动类

package com.lian.pojo.f.demo9;

public class HouseApp {
    public static void main(String[] args) {
        //创建HouseView对象,并且显示主菜单,是整个程序的入口
        new HouseLogic().mainMenu();
        System.out.println("you exit system success");
    }
}

小知识 continue、break、return demo

package com.lian.pojo.f.demo9;

import java.util.Scanner;

/**
 * break、continue、return demo
 */
public class RentHouse {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
        while (i == 3){
            System.out.println("aaaaaaaaaa");
            /**
             * 跳出while循环
             * aaaaaaaaaa
             * bbbbbbbbbbbbb
             * i is : 3
             */
            //break;

            //continue是结束当前次循环,开始下一次,可循环条件i是固定值,此处死循环
            //continue;

            //return 是结束本方法,下面的代码不执行啦,只打印了 aaaaaaaaaa
            return;
        }
        System.out.println("bbbbbbbbbbbbb");
        System.out.println("i is : "+i);
    }
}