为一个盒子创建一个类。 (JAVA)

时间:2014-03-06 07:25:21

标签: java class

嗨,我为我的班级做了这个任务:

  1. 实现一个名为Box的类,该类具有以下属性和方法: int长度,宽度,高度 字符串颜色

  2. 构造函数方法:

    • 会将3个整数初始化为10,8,6
    • 会将颜色初始化为“黑色”
  3. 4个属性中每个属性的setter和getter方法
  4. 获取盒子音量的方法
  5. 获取盒子表面区域(全部六面)的方法
  6. 我有所有吸气剂和定型器的长度和颜色。我唯一的问题是,对于音量,如果我将值设置为不同,它将无法正确计算。

    它只接受初始值。有什么想法吗?我的代码在课堂下面。例如,我可以.setLength(7)而不是打印总共7 * 8 * 6,它打印出的总数为10 * 8 * 6.

        public class Box
        {
          private int height = 6;
    
          public void se(int height){
          this.height=height;
         } 
          public int getHeight(){
             return height;
         } 
        private int width = 8;
        public void setWidth(int width){
          this.width=width;
        } 
          public int getWidth(){
             return width;
        } 
        private int length= 10;
        public void setLength(int length){
          this.length=length;
        } 
          public int getLength(){
             return length;
        }
         private String color="Black";
         public void setColor(String color){
          this.color=color;
        } 
         public String getColor(){
          return color;
        }
        private int vol=length*width*height;
          public void setVol(int vol){
          this.vol=vol;
    
        }
        public int getVol(){
           return vol;
          }
      }
    

2 个答案:

答案 0 :(得分:2)

摆脱vol属性和setVol setter;这不是课程规范的一部分,也是你问题的根本原因。重写getVol以在每次调用时根据长度,宽度和高度计算音量。

您当前的设计不起作用,因为只要vollengthwidth发生更改,就不会重新计算height。您可以保留当前的字段集并重写维度设置器,以便在每次调用时重新计算vol属性。这将加速getVol getter方法,代价是类设计的复杂性更高,并且设置器方法更慢。如你所知,这是你可以做或不做的权衡。但是,您需要摆脱setVol方法,因为在设置音量时,无法知道如何设置尺寸以使值保持一致。

答案 1 :(得分:0)

您需要为getter

创建vol函数

e.g。

public int getVol () {
   vol=length*width*height;
   return vol;
}

当然,中间vol的设置不是必需的。 你可以

return length*width*height;

这可确保始终正确计算当前vol