zoukankan      html  css  js  c++  java
  • java:练习超市卖场

    java:练习超市卖场

    涉及到:大商品类,具体商品(以书为例),卖场类

    Goods,Book,superMart, 

    商品类Goods:

    public interface Goods {
    
    	//商品类
    	public String getName();
    	public int getCount();
    	public float getPrice();
    	
    	
    	
    	
    }
    

     书:

    注意:复写hashCode,和equals是为了实现删除按钮

    package abc;
    
    public class Book implements Goods {
    
    	private String name;
    	private int count;
    	private float price;
    	public String getName() {
    		return name;
    	}
    	
    	
    	
    	
    	public Book() {
    		super();
    	}
    
    
    
    
    	public Book(String name, int count, float price) {
    		super();
    		this.name = name;
    		this.count = count;
    		this.price = price;
    	}
    
    	
    	
    
    
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public int getCount() {
    		return count;
    	}
    	
    	public void setCount(int count) {
    		this.count = count;
    	}
    	
    	public float getPrice() {
    		return price;
    	}
    	
    	public void setPrice(float price) {
    		this.price = price;
    	}
    
    	
    	
    
    
    	//复写hashCode,和equals是为了实现删除按钮
    	@Override
    	public int hashCode() {
    		return this.name.hashCode() + 
    				new Integer(this.count).hashCode() +
    				 new Float(this.price).hashCode();
    	}
    
    
    
    	//复写hashCode,和equals是为了实现删除按钮
    	@Override
    	public boolean equals(Object obj) {
    		if(obj == this)
    		{
    			return true;
    		}
    		if(!(obj instanceof Book))
    		{
    			return false;
    		}
    		Book b = (Book) obj;
    		if( b.name.equals(this.name) && b.count == this.count && b.price == this.price)
    		{
    			return true;
    		}else {
    			return false;
    		}
    	}
    
    
    
    
    	@Override
    	public String toString() {
    		return "书名:" + name + ", 数量:" + count + ", 价格:" + price ;
    	}
    	
    	
    	
    	
    	
    	
    	
    	
    	
    }
    

      

    超级市场:

    需要注意remove删除方法,必须在BOOK中定义相关的equals,hashCode方法才能删除

    //删除,需要复写book里面的equals和hasCode
    remove(Goods good)
    package abc;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class SuperMark {
    
    	private List<Goods> allGoods;
    
    
    	public SuperMark()
    	{
    		this.allGoods = new ArrayList<Goods>();
    	}
    	
    	
    	public void add(Goods good)
    	{
    		this.allGoods.add(good);
    	}
    	
    	//删除,需要复写book里面的equals和hasCode
    	public void remove(Goods good)
    	{
    		this.allGoods.remove(good);
    	}
    	
    	public List<Goods> search(String keyword)
    	{
    		List<Goods> temp = new ArrayList<Goods>();
    		Iterator<Goods> iter = this.allGoods.iterator();
    		while(iter.hasNext())
    		{
    			Goods g = iter.next();
    			if(g.getName().indexOf(keyword) != -1)
    			{
    				temp.add(g);
    			}
    		}
    		return temp;
    	}
    	
    	
    	public List<Goods> getAllGoods()
    	{
    		return this.allGoods;
    	}
    	
    	
    	
    }
    

      

    测试:

    public class Demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    
    		System.out.println("gaga");
    		
    		
    		
    		SuperMark sm = new SuperMark();
    		sm.add(new Book("java",5,10.4f));
    		sm.add(new Book("net",6,22.f));
    		sm.add(new Book("php",6,10f));
    		
    		print(sm.search("j"));
    		
    		
    		
    	}
    	
    	
    	public static void print(List all)
    	{
    		Iterator iter = all.iterator();
    		while(iter.hasNext())
    		{
    			System.out.println(iter.next());
    		}
    	}
    
    }
    

      

     

  • 相关阅读:
    Spring Cloud第九篇 | 分布式服务跟踪Sleuth
    Spring Cloud第八篇 | Hystrix集群监控Turbine
    Spring Cloud第七篇 | 声明式服务调用Feign
    Spring Cloud第六篇 | Hystrix仪表盘监控Hystrix Dashboard
    Spring Cloud第五篇 | 服务熔断Hystrix
    Spring Cloud第四篇 | 客户端负载均衡Ribbon
    Spring Cloud第三篇 | 搭建高可用Eureka注册中心
    Spring Cloud第二篇 | 使用并认识Eureka注册中心
    Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览
    一套简约漂亮的响应式博客园主题皮肤分享给你们(二)
  • 原文地址:https://www.cnblogs.com/achengmu/p/7674785.html
Copyright © 2011-2022 走看看