15---接口与类集综合应用
来源:互联网 发布:黑魂3帧数优化补丁3dm 编辑:程序博客网 时间:2024/06/04 18:34
List、 Set、 Map
看一下情况;
图书大厦里可以放很多种的书:
儿童类书;
计算机类书;
建筑类的书;
要求实现以下一种功能:
模拟 图书大厦,图书大厦里可以存放多种书目,而且可以进行添加操作,
而且可以进行查询,删除操作;
注意:一个类集合可以放多种类型的对象,但是为了防止操作不慎操作转型错误,我们一般规定
只放一种类型的;
图书大厦--》List--》书的接口《--各种书
import java.util.*;
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.name=name;
this.price=price;
this.info=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.name+"价格:"+this.price+"信息:"+this.info;
}
}
class ComputerBook implements Book{
private String name;
private float price;
private String info;
public ComputerBook(String name,float price,String info){
this.name=name;
this.price=price;
this.info=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.name+"价格:"+this.price+"信息:"+this.info;
}
}
class BookShop{
private String name;
//一个书店包含很多书
private List<Book> allBooks;
public BookShop(){
this.allBooks=new ArrayList();
}
public BookShop(String name){
this();
this.name=name;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
//增加书
public void append(Book book){
this.allBooks.add(book);
}
//得到全部书
public List<Book> getAllBooks(){
return this.allBooks;
}
//删除书
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<Book> index(String keyWord){
List list=new ArrayList();
Iterator iter=this.allBooks.iterator();
while(iter.hasNext()){
Book b=(Book)iter.next();
if(b.getName().indexOf(keyWord)!=-1){
list.add(b);
}
}
return list;
}
}
public class Demo{
public static void main(String args[]){
Book b1=new ChildBook("大灰狼的故事",10.0f,"一个大坏蛋");
Book b2=new ChildBook("十万个为什么",20.0f,"为什么");
Book b3=new ChildBook("喜洋洋",10.0f,"善良的小羊");
Book b4=new ComputerBook("Java",60.0f,"java基础");
Book b5=new ComputerBook("C++",50,"C++基础");
BookShop bs=new BookShop("网上书店");
bs.append(b1);
bs.append(b2);
bs.append(b3);
bs.append(b4);
bs.append(b5);
print(bs.getAllBooks());
print(bs.index("A"));
//假设将C++这本书从书店中删除
Book b=bs.findByName("C++");
if(b!=null){
bs.delete(b);
}
System.out.println("========================");
print(bs.getAllBooks());
}
public static void print(List all){
Iterator iter=all.iterator();
while(iter.hasNext()){
Book b=(Book)iter.next();
System.out.println(b);
}
}
}
- 15---接口与类集综合应用
- 接口与类集综合应用
- SIP与RTP综合应用
- SIP与RTP综合应用
- SIP与RTP综合应用
- listbox与WMI进程的综合应用
- SIP与RTP综合应用1
- SIP与RTP综合应用2
- SIP与RTP综合应用3
- SIP与RTP综合应用4
- 智能家居中的信息综合与应用
- 综合应用集成项目总结与心得
- File类的综合应用
- java接口、继承、多态的综合应用
- 抽象类与接口应用(转载)
- 抽象类与接口的应用
- 抽象类与接口的应用区别
- 抽象类与接口的应用
- 13---网络编程
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- 14---类集应用
- 打开Access 提示没有使用对象的必要权限
- 如何通过HTML标记或JS代码实现跳转返回页面顶部
- 15---接口与类集综合应用
- 理解 Java 时间, 日期
- IOS下app的发布流程
- 16---java反射机制00(Class类的理解)
- Android-NDK开发之基础--Android JNI实例代码(二)-- 获取/设置类的域或者说属性字段
- 这些小问题你会回答吗?
- 大小端问题
- 16---java反射机制01(认识Class)
- 16---java反射机制02(使用Class)