需求: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);
}
}