从零开始学Java自己利用接口和集合框架做的简单图书管理系统

本文介绍了一位初学者如何使用Java从零开始构建一个图书管理系统。通过接口分离原则,创建了一个包含查询、登录和图书出库功能的接口,由用户类和管理员类实现。同时,定义了一个图书类的抽象类来定义图书属性,允许用户和管理员对其进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    从零开始学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());
    	}
		
	}
	
	 

}

                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值