这篇文章主要介绍了JavaWeb后台购物车类实现代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
相信大家肯定都在电商网站买过东西,当我们看中一件喜欢又想买的东西时,这时候你又不想这么快结账,这时候你就可以放入购物车;
就像我们平时去超市买东西一样,会推着购物车去买东西;
那么我们接下来看看Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)怎么实现购物车的功能,其实原理很简单,java的特点就是面向对象,并且有着封装继承多态三大特性;
Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)实现这个购物车功能是通过内存来实现的而不是将数据添加到数据库中
首先是项目类,一个项目就代表购物车里面的一行数据
包com。wxd。购物;
公共类项目{
private int id//商品身份证明(识别)
私有字符串名称;//商品名称
私弦城;//商品产地
私人双倍价格;//商品价格
私有(同Internationalorganizations)国际组织数;//商品数量
私串图片;//商品图片地址
public int getId() {
返回id;
}
public void setId(int id) {
this.id=id
}
公共字符串getName() {
返回名称;
}
公共void集合名称(字符串名){
this.name=name
}
公共字符串getCity() {
返回城市;
}
public void setCity(String city) {
这个城市=城市
}
public double getPrice() {
退货价格;
}
公共无效定价(双倍价格){
this.price=价格;
}
public int getNumber() {
退货数量;
}
公共无效集编号(整数){
this.number=数字;
}
公共字符串getPicture() {
返回图片;
}
公共无效设置图片(字符串图片){
图片=图片
}
/**
* 重写哈希码方法,使得在购物车添加商品的时候,如果身份证明(识别)和名称相同就判定为同一件商品
* @返回
*/
@覆盖
public int hashCode() {
返回(这个。getid()this。getname()).hashCode();
}
/**
* 重写等于方法,判断是否为同一个对象
* @param obj
* @返回
*/
@覆盖
公共布尔等于(对象对象){
if(this==obj){
返回真实的
}
如果(项目的对象实例){
Item I=(Item)obj;
如果(这个。getid()==I . getid()this。getname().equals(I . getname()){
返回真实的
}否则{
返回错误的
}
}否则{
返回错误的
}
}
@覆盖
公共字符串toString() {
返回项目{ '
id=' id
,name='' name '\ ' '
,city='' city '\ ' '
,价格='价格
,编号='编号
,picture='' picture '\ ' '
'}';
}
//有参构造
公共项目(int id,String name,String city,double price,int number,String picture) {
this.id=id
this.name=name
这个城市=城市
this.price=价格;
this.number=数字;
图片=图片
}
//无参构造
公共项目(){
}
}
购物车类分装了项目和数量的一个集合,还有商品的总金额
下面是购物车类的详细代码以及测试方法:
包com。wxd。购物;
导入Java。util。hashmap
导入Java。util。迭代器;
导入Java。util。地图;
导入Java。util。设置;
//购物车
公共类购物车{
//购买商品的集合
私有HashMapItem,整数商品;
//购物车的总金额
私人双倍总价;
//构造方法初始化数据
公共购物车(){
goods=new HashMapItem,Integer();
总价=0.0
}
public HashMapItem,Integer getGoods() {
退货;
}
public void setGoods(HashMapItem,Integer goods) {
this.goods=商品;
}
public double getTotalPrice() {
返回总价;
}
public void setTotalPrice(双倍总价){
这个。总价=总价;
}
//添加商品进购物车的方法
public boolean addGoodsInCart(Item Item,int number){
if(goods.containsKey(item)){
goods.put(项目,商品. get(项目)编号);
}否则{
商品. put(项目,编号);
}
calTotalPrice();//重新计算购物车的总金额
返回真实的
}
//删除商品的方法
public boolean removegoodsfromcarth(Item Item){
商品移除(项目);
calTotalPrice();//重新计算购物车的总金额
返回真实的
}
//统计购物车的总金额
public double calTotalPrice(){
双和=0.0;
SetItem keys=goods。keyset();
迭代器iterator=keys。迭代器();
while (iterator.hasNext()){
item I=迭代器。next();
sum=I . getprice()*商品。get(I);
}
这个。settotalprice(总和);//设置购物车的总金额
返回这个。gettotalprice();
}
//测试的主要的方法
公共静态void main(String[] args) {
//先创建两个商品对象
项目i1=新项目(1,'耐克','温州,300.0,500,' 001 .jpg’);
项目i2=新项目(2,'阿迪','广州,500.0,500,' 001 .jpg’);
项目i3=新项目(1,'耐克','温州,300.0,500,' 001 .jpg’);
Cart c=new Cart();
c.addGoodsInCart(i1,1);
c.addGoodsInCart(i2,2);
//再次购买耐克鞋
c.addGoodsInCart(i3,3);
//遍历购买商品的集合
HashMapItem,Integer goods=c . get goods();
设置地图.EntryItem,整数条目=商品。条目集();
对于(图EntryItem,Integer itemEntry:entries){
系统。出去。println(项目条目。tostring());
}
System.out.println('购物车总金额:' c . gettotalprice());
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。