Java接口与类集

这篇博客介绍如何使用Java实现书店管理,包括定义一个`Book`接口,创建`ChildBook`和`ComputerBook`类实现接口,以及设计一个`BookShop`类来存储和操作各种书籍。通过接口和类集,可以进行添加、删除和查询书籍的操作。示例代码展示了如何创建和操作书籍对象,以及如何进行书籍的模糊查询。
摘要由CSDN通过智能技术生成
假设有以下一种情况:
    书店里可以放很多种的书
    儿童书
    电脑书  
要求实现以下一种功能:
    模拟书店,书店里可以存放多种书目,而且可以 进行添加操作、而且可以进行删除操作,还可以进行查询操作。
一个类集中可以加入多个对象,对于儿童书、电脑书
书店 -> List -> 书的接口 <- 各种书   
一、先写一个书的接口
interface Book
{
	//书的价格、书的名字、书的信息
	public float getPrice();
	public String getName();
	public String getInfo();
};
二、写类(儿童书,电脑书) 实现书的接口,书店类
//儿童书类
class ChildBook implements Book
{
	private String name;
	private float price;
	private String info;

	public ChildBook(String name,float price,String info){
		this.setName(name);
		this.setPrice(price);
		this.setInfo(info);
	}

	public String getName(){
		return this.name;
	}
	public float getPrice(){
		return this.price;
	}
	public String getInfo(){
		return this.info;
	}
	public void setName(String name){
		this.name = name;
	}
	public void setPrice(float price){
		this.price = price;
	}
	public void setInfo(String info){
		this.info = info;
	}
	public String toString(){
		return "儿童书:书名:" + this.getName() + ",价格:" + this.getPrice() + ",简介:" + this.getInfo();
	}

};
//电脑书类
class ComputerBook implements Book
{
	private String name;
	private float price;
	private String info;

	public ComputerBook(String name,float price,String info){
		this.setName(name);
		this.setPrice(price);
		this.setInfo(info);
	}

	public String getName(){
		return this.name;
	}
	public float getPrice(){
		return this.price;
	}
	public String getInfo(){
		return this.info;
	}
	public void setName(String name){
		this.name = name;
	}
	public void setPrice(float price){
		this.price = price;
	}
	public void setInfo(String info){
		this.info = info;
	}
	public String toString(){
		return "电脑书:书名:" + this.getName() + ",价格:" + this.getPrice() + ",简介:" + this.getInfo();
	}

};
//书店类
class BookShop
{
	private String name;
	//一个书店包含多种书
	private List allBooks;

	public BookShop(){
		this.allBooks = new ArrayList();
	}
	public BookShop(String name){
		this();
		this.setName(name);
	}
	
	//得到全部书
	public List getAllBooks(){
		return this.allBooks;
	}

	public void append(Book book){
		this.allBooks.add(book);
	}
	public void delete(Book book){
		this.allBooks.remove(book);
	}
	//根据书的名字,去找到一本书
	public Book findByName(String name){
		//从已有的数据中进行依次查询
		Book book = null;
		Iterator iter = this.allBooks.iterator();
		while(iter.hasNext()){
			//进行依次的比较
			Book temp = (Book)iter.next();
			if(name.equals(temp.getName())){
				//如果名字相等,则表示找到了
				book = temp;
				break;
			}
		}
		return book;
	}
	//书的检索,书的模糊查询
	public List index(String keyWord){
		List l = new ArrayList();
		Iterator iter = this.allBooks.iterator();
		while(iter.hasNext()){
			Book b = (Book)iter.next();
			if(b.getName().indexOf(keyWord) != -1){
				l.add(b);
			}
		}
		return l;
	}
	public void setName(String name){
		this.name = name;
	}
	public String getName(){
		return this.name;
	}
};
三、
public class ColDemo02
{
	public static void main(String args[]){
		Book b1 = new ChildBook("一千零一夜",10.0f,"一些传说故事");
		Book b2 = new ChildBook("喜羊羊",20.0f,"羊与狼的故事");
		Book b3 = new ChildBook("柯南",100.0f,"推理故事");
		Book b4 = new ComputerBook("JAVA",80.0f,"JAVA核心技术");
		Book b5 = new ComputerBook("C++",86.0f,"C++核心技术");
		Book b6 = new ComputerBook("Linux",88.0f,"服务器搭建");

		BookShop bs = new BookShop("Tsang网上书店");
		bs.append(b1);
		bs.append(b2);
		bs.append(b3);
		bs.append(b4);
		bs.append(b5);
		bs.append(b6);
	}
	public static void print(List all){
		Iterator iter = all.iterator();
		while(iter.hasNext()){
			Book b = (Book)iter.next();
			System.out.println(b);
		}
	}
};
查找keyword有“A”的词条
print(bs.index("A"));

从书店中查找所有的书
print(bs.getAllBooks());

假设将C++这本书从书店中删除掉
Book b = bs.findByName("C++");
bs.delete(b);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值