java:练习超市卖场

2023-05-20,,

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());
}
} }

  

 

java:练习超市卖场的相关教程结束。

《java:练习超市卖场.doc》

下载本文的Word格式文档,以方便收藏与打印。