30/09/2018, 18:07

Thắc mắc danh sách bán hàng

Đây là yêu cầu phần bài tập của mình

Ở class Order, mình không hiểu cái chỗ addLineItem phải ghi như thế nào, bạn nào giúp mình với. Dưới là code của mình.

Class Order

package tuan02.baitapthem;

import java.util.*;

public class Order {
	private int orderID;
	private Date orderDate;
	private OrderDetail lineitems;
	private Product product;
	public Order(int orderID, Date orderDate) {
		super();
		this.orderID = orderID;
		this.orderDate = orderDate;
	}
	public Date getOrderDate() {
		return orderDate;
	}
	public void setOrderDate(Date orderDate) {
		this.orderDate = orderDate;
	}
	public int getOrderID() {
		return orderID;
	}
	
	public void addLineItem(Product product,int soluong)
	{
		
	}
	
	public double calcTotalCharge(){
		return product.getPrice()*lineitems.getQuantity();
	}
	
	@Override
	public String toString(){
		return String.format("%-5d %-10s",orderID,orderDate);
	}
}

class OrderDetail

package tuan02.baitapthem;

public class OrderDetail {
	private int quantity;
	private Product product;

	public int getQuantity() {
		return quantity;
	}

	public OrderDetail(int quantity, Product product) {
		super();
		this.quantity = quantity;
		this.product = product;
	}

	public void setQuantity(int quantity) {
		this.quantity = quantity;
	}

	public OrderDetail(int quantity) {
		super();
		this.quantity = quantity;
	}

	@Override
	public String toString() {
		return String.format("%3d %5f", quantity,calcTotalPrice());
	}
	public double calcTotalPrice(){
		return quantity*product.getPrice();
	}
	
}

class Product

package tuan02.baitapthem;

public class Product {
	private String productID;
	private String description;
	private double price;
	public String getProductID() {
		return productID;
	}
	public Product(){
		this("00000","mo ta",0);
	}
	public Product(String productID, String description, double price) {
		super();
		this.productID = productID;
		this.description = description;
		this.price = price;
	}
	public void setProductID(String productID) {
		this.productID = productID;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	@Override
	public String toString() {
		return String.format("%-7s%-10s%-5f",productID,description,price);
	}
}
Khiem Nguyen viết 20:18 ngày 30/09/2018

mình không làm Java nhưng theo như mình hiểu thì addLineItem có vẻ như là thêm một mặt hàng vào trong bảng OrderDetail với tham số là Mã Sản Phẩm và Số Lượng Sản Phẩm muốn đặt hàng.

public void addLineItem(Product product,int soluong)
{
	OrderDetail.Insert(maSP, soluong);
}

nhưng vẫn chưa hiểu tại sao addLineItem lại nằm trong Order class, đúng thì nó phải nằm ở OrderDetail class

Chi Ngo viết 20:13 ngày 30/09/2018

Cái không đúng trong lớp Order như sau:

  1. OrderDetail bạn chỉ lưu được 1 sản phẩm duy nhất. Do đó, bạn phải khai báo một danh sách OrderDetail.
  2. Trường product trong lớp Order chẳng có ý nghĩa gì. Bỏ trường này đi.
  3. Phương thức calcTotalCharge phải viết lại vì lúc này dùng một danh sách các OrderDetail rồi. Hơn nữa, trong lớp OrderDetail bạn đã phương thức calcTotalPrice thì trong phương thức calcTotalCharge bạn phải sử dụng lại nó chứ. Nếu không sử dụng thì đôi khi việc tính giá sẽ không đồng nhất (rồi đến lúc mò cũng không ra lỗi)

For a brighter future! http://chingovan.blogspot.com

Bài liên quan
0