脚本宝典收集整理的这篇文章主要介绍了第1次任务:购物车程序的面向对象设计,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
注意:初期将重点放在面向对象设计、命名规范。
任务 | 姓名 |
---|---|
编码规范、前期调查与功能设计 | 原嘉怡 |
面向对象设计、博客制作 | 黄静 |
我们以京东商城为例,体验从搜索商品、加入购物车、操作购物车、到最后下单的全过程,并对此过程进行思考和学习,设计自己的购物车相关代码。
首先,进入京东商城首页,可以看到有一个搜索栏,右方为自己的购物车,左下方还有商品的类别检索,以及各个市场或活动会场的入口。
然后,在搜索栏中输入想要查询的商品,点击搜索,出现大量商品可供选择,还可根据上方的类别索引更加精确地寻找商品。商品上有单价与加入购物车标识。
点击商品,进去商品详情页面,内部包含商品名称和图片,包含用户配送地址,还有商品种类,数量等选择,最后选择好后可加入购物车。
进入购物车界面,列举了所有加入购物车的商品名称,种类以及它们各自的单价,数量,总价,还包含整个订单中的商品总数量,总价格
用户可在购物车中进行对商品进行数量增减,选择并删除商品,选择并下单商品等相关操作,且下单之后的商品也会被移出购物车
至此,完成了从搜索商品、加入购物车、操作购物车、到最后下单的网上购物全过程
@H_406_151@
用户 首先登陆主界面,选择进入商城,即可在商场内搜索自己需要购买的 商品 ,在商城中 展示用户所搜索查询的商品 之后,包括 商品的编号,名称,单价,类别等属性 ,用户可以选择将想要购买的商品 加入购物车 ,若购物车中已有该商品,即直接 增加该商品的数量 。在进入购物车后,可对购物车中的商品进行 展示 ,也可对选中的商品进行 删除 ,之后可根据用户的选择将选中的商品条目 生成订单 , 计算总价 ,完成购买。已购买商品从购物车中 移除 ,用户完成一次网上购物。
类的关键属性与方法、类与类之间的关系,每个类的功能描述可由UML类图展示。
商品的编号,名称、单价,类型等属性是购物车中商品的基本属性,不会因为用户的操作,如数量的增减而发生变化,在程序的运行过程中保持不变,因此,可对其进行封装。面向对象的封装性能够把信息封装,保证数据的完整和安全,使数据不会发生变化。 封装性包括属性的封装,方法的封装,类的封装,组件的封装等。
package shoppingcar;
import java.util.Objects;
//商品类
public class CommodITy {
private Integer id; //商品编号
private String name; //商品名称
private double price; //商品单价
private String description; //类别
public Commodity(Integer id,String name,double price) {
this.id=id;
this.name=name;
this.price=price;
}
public Commodity() {
}
//getter setter
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@override
public boolean equals(Object obj) { //比较id是否相同,若相同说明两个商品相同
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Commodity other = (Commodity) obj;
if(id==null) {
if(other.id!=null)
return false;
}
else if(!id.equals(other.id))
return false;
return true;
}
@Override
public String toString() {
return "Commodity [id=" + id + ", name=" + name + ", price=" + price + ", description=" + description + "]";
}
}
class Food extends Commodity{ //食品 继承商品
}
class Book extends Commodity{ //书籍 继承商品
}
class Electronics extends Commodity{ //电子产品 继承商品
}
package shoppingcar;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Menu1();
}
public static void Menu1() {
System.out.println("------------------");
System.out.println("→【1】.进入市场");
System.out.println("→【2】.我的购物车");
System.out.println("→【0】.退出系统");
}
public void Body(Commodity Item,ShoppingCart cart) {
Scanner in=new Scanner(System.in);
while(true) {
Menu1(); //初始页面
int tmp=0;
int choice=in.nextInt();
switch (choice) {
case 1: //进入市场:添加商品到购物车中
Menu2();
break;
case 2: //进入我的购物车:删除一个商品或者删除一整个商品条目并结算
Menu3();
break;
case 0:
tmp=1;
break;
}
if(tmp==1) {
System.out.println("成功退出系统!");
break;
}
}
}
private void Menu2() {
// TODO Auto-generated method stub
}
private void Menu3() {
// TODO Auto-generated method stub
}
}
package shoppingcar;
//购物车类:对购物车的商品进行增加、移除、结算
import java.util.ArrayList;
import java.util.List;
//商品清单
public class ShoppingCart {
//将商品添加到购物车中
public boolean addCommodity(Commodity e,int count) {
return true;
}
//从购物车中删除一个商品
public boolean removeCommodity(Integer id) {
return true;
}
//从购物车中删除条目
public boolean deleteCommodity(Integer id) {
return true;
}
//展示购物车
public void diplayShoppingCar() {
}
/**
* 查找id在购物车中是否已存在相关条目
* 声明为private,因为只在本类中适用
* 如果包含 返回相关条目所在下标,否则返回-1
**/
//查询id
private int seArchID(Integer id) {
return -1;
}
//内部类:购物车条目类
private class itemEntry{
Commodity item; //商品
Integer num; //数量
public itemEntry(Commodity item,int num) {
this.item=item;
this.num=num;
}
//添加商品数量
public void addNum() {
num++;
}
//减少商品数量
public void decreaseNum() {
num--;
}
//获取商品条目
public Commodity getItem() {
return item;
}
@Override
public String toString() {
return "itemEntry [item=" + item + ", num=" + num + "]";
}
}
}
- 阿里巴巴Java开发手册 终极版(1.3.0)
- 面向对象设计与UML类图中的什么是类与如何绘制类图。
- 5分钟读懂UML类图
以上是脚本宝典为你收集整理的第1次任务:购物车程序的面向对象设计全部内容,希望文章能够帮你解决第1次任务:购物车程序的面向对象设计所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。