java封装题目4
4.某公司要开发名为”我爱购物狂”的购物网站,请使用面向对象的思想设计描述商 品信息
要求:
7)分析商品类别和商品详细信息属性和方法,设计商品类别类和商品详细信息类
8)在商品详细信息类中通过属性描述该商品所属类别
9)设置属性的私有访问权限,通过公有的 get,set 方法实现对属性的访问
10)编写测试类,测试商品类别类和商品详细信息类的对象及相关方法(测试数据 信息自定)
11)创建包 info—存放商品类别类和商品详细信息类,创建包 test—存放测试类参考分析思路:
商品类别类:
属性:类别编号,类别名称商品详细信息类:
属性:商品编号,商品名称,所属类别,商品数量(大于 0),商品价格(大于 0)
方法:盘点的方法,描述商品信息。内容包括商品名称,商品数量,商品价格, 现在商品总价以及所属类别信息
运行效果图:

编写一个Category类,基本的变量和getset方法
public class Category {
private int id;
private String name;
public Category(){
}
public Category(String name){
this.name=name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
编写一个DetailsCategory类
public class DetailsCategory {
private int cid;
private String cname;
private String categorys;
private int num;
private double price;
public DetailsCategory(){ //无参构造
}
public DetailsCategory(String cname,int num,double price){ //有参构造
this.cname=cname;
setNum(num); //因为数量和价格需要进行判断,所以调用set方法
setPrice(price);
}
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public String getCategory() {
return categorys;
}
public void setCategory(String categorys) {
this.categorys = categorys;
}
public int getNum() {
return num;
}
public void setNum(int num) { //对库存数量进行判断
if(num>0){
this.num=num;
}else{
System.out.println("库存数量异常,请联系管理员");
this.num=0;
}
}
public double getPrice() {
return price;
}
public void setPrice(double price) { //对价格进行判断
if(price>0){
this.price=price;
}else{
System.out.println("你输入的价格不对!已修改为默认值0");
this.price=0;
}
}
//可以使用这种方法来获取另一个类里面的成员变量
public void Inventory(Category category){ //给Inventory方法写一个以类名为数据类型的形参
System.out.println("商品名称:"+cname);
System.out.println("所属类别:"+category.getName()); //调用该类里面的getName方法
System.out.println("商品售价为:"+price);
System.out.println("库存数量为:"+num);
System.out.println("商品总价为:"+num*price);
}
}
编写测试类
public class test {
public static void main(String[] args) {
Category c2 = new Category("洗发水");
DetailsCategory d1 = new DetailsCategory("海飞丝",15,20.5);
d1.Inventory(c2);
System.out.println("====================================");
DetailsCategory d2 = new DetailsCategory("蜂花洗发水250ml",0,11.5);
d2.Inventory(c2);
}
}

浙公网安备 33010602011771号