从零开始学Java,本来利用数组只在一个界面就可以实现增删改查功能,学到接口后觉得实现分离效果会更好一些!所以进行了尝试,将管理员和用户中的图书查询,登录,图书出库合并在一起写了一个接口,用户类和管理员类实现这个接口!图书类写了一个抽象类里面都是一些图书的属性,用户类管理员类对图书类进行操作。
具体实现如下:
接口:存在三种方法 用户类和管理员类去实现这个接口,并实现着里面的方法
public interface Person {
public boolean login(String user,String pwd); //登录方法
public void search(); //查询方法
public void reduce(String s,int i); // 图书出库
}
用户类: 实现接口,里面都是用户的方法,在测试类里调用这些方法实现其功能
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class User implements Person{
private final String user = "user";
private final String pwd = "user";
List list = new ArrayList();
public void addBook(Book book){ //增加图书
list.add(book);
}
public boolean login(String user, String pwd) { //登录方法
if(this.user.equals(user) &&this.pwd.equals(pwd)){
return true;
}
return false;
}
@Override
public void reduce(String s, int i) { //结账
Iterator it = list.iterator();
while(it.hasNext()){
Book b = (Book)it.next();
if(b.getNum().equals(s)){
if(b.getCount() >= i){
int m = b.getCount()-i;
b.setCount(m);
System.out.println("你的图书总价为:"+(b.getPrice()*i));
}else
System.out.println("你输入的书本数目超出了当前库存!");
}else{
System.out.println("没找到,你要加入的图书!");
}
}
}
@Override
public void search() { //查询图书当前情况
Iterator it = list.iterator();
while(it.hasNext()){
Book b = (Book)it.next();
System.out.println(b.getNum()+"\t"+b.getName()+"\t"
+b.getAnthor()+"\t"+b.getFromTime()
+"\t"+b.getPrice()+"\t"+b.getCount());
}
}
}