如何从类的其他方法访问该方法?

时间:2017-10-29 15:32:49

标签: java class methods access

我想计算盒子(体积)的密度。我计算了盒子的体积,但我无法计算盒子的密度。

import java.util.*;
     class DimBox{
        int width;
        int depth;
        int height;
        int s;
            DimBox(int width,int depth,int height){
            this.width=width;
            this.height=height;
            this.depth=depth;
        }
            int getDimBox(){
            int s= width*depth*height;
            return s;
        }
     }
     class DensityBox{
        int density;
        int getDimBox;
        int getWeightBox();
            int getDensity(int density){
            density = getDimBox * getWeightBox();
            return density;
        }
     }
     class WeightBox{
        int weight;
            WeightBox(int weight){
            this.weight=weight;
        }
        int getWeightBox(){
            return weight;
        }
         }
     public class Main {
        public static void main(String[] args)  {
        DimBox dimBox=new DimBox(20,50,30);
        System.out.println(dimBox.getDimBox());
        WeightBox weightBox=new WeightBox(75);
        DensityBox densityBox=new DensityBox();
        System.out.println(densityBox.density);
        }
     }

2 个答案:

答案 0 :(得分:2)

注意我没有提供直接代码,因为提供直接代码无法帮助您理解基础知识,并且以后会遇到很多困难。

这可以通过许多不同的方式解决。

一个选项是Composition,DensityBox应该有DimBox实例和Weight实例变量来访问它们的方法。

在构造DensityBox实例或稍后使用DensityBox实例上的setter时,在DensityBox实例中设置DimBox和Weight实例,以便可以访问它们的成员方法。

另一种选择是使用具有不同类对象作为参数的静态辅助方法来执行脏工作。

还有一个选项是调用main方法中所有类的方法,在main方法本身中进行所需的计算。但我不推荐这个,因为它没有展示OOP,这只是FYI。

您需要回到基础知识来理解基本的OOP概念并理解对象的组合或如何使用传递给它的对象来执行脏工作的静态帮助器方法。

答案 1 :(得分:1)

我认为你想要的东西如下:

class DensityBox{

    float weight, volume;

    DensityBox(float weight, float volume){
        this.weight = weight; // check >0
        this.volume = volume; //check >=0
    }

    float getDensity() {  return volume/weight;   }
 }

并使用它:

DensityBox densityBox = new DensityBox(weightBox.getWeightBox(), dimBox.getDimBox());
float density = densityBox.getDensity();