java:练习超市卖场
JAVA 练习 超市
2023-09-14 08:57:51 时间
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 clone 以及 浅/深拷贝
- Java实现 LeetCode 593 有效的正方形(判断正方形)
- Java实现 LeetCode 167 两数之和 II - 输入有序数组
- java实现平面4点最小距离
- Java实现 蓝桥杯VIP 算法提高 栅格打印问题
- Java实现 蓝桥杯VIP 基础练习 完美的代价
- Java实现 蓝桥杯VIP 基础练习 完美的代价
- Java实现 蓝桥杯VIP 基础练习 完美的代价
- Java实现 蓝桥杯VIP 基础练习 分解质因数
- Java实现 蓝桥杯VIP 基础练习 芯片测试
- Java实现 蓝桥杯VIP 基础练习 报时助手
- Java实现 蓝桥杯 算法训练 2的次幂表示
- Java实现 蓝桥杯 基础练习 数列特征
- Java实现 蓝桥杯 基础练习 查找整数
- Java实现 蓝桥杯 基础练习 查找整数
- java 环境配置 maven 环境配置
- [Java Spring] Global exception handler for application with @ControllerAdvice
- Java Spring ClassPathXmlApplicationContext是如何判断容器内包含某个Bean的
- Atitit.收银机小票打印功能的设计 java php c#.net版本
- 【Java】java中javaSE与javaEE的区别
- java中Date日期类型的大小比较
- Java开发之高并发编程篇(八)——安全访问的集合(2)
- Java刷题面试系列习题(三)
- Java JDK 各版本更新信息API文档(帮助文档下载)