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

Java 如何从类的其他方法访问该方法?,java,class,methods,Java,Class,Methods,我想计算盒子的密度(体积)。我计算了盒子的体积,但我不能计算盒子的密度 import java.util.*; class DimBox{ int width; int depth; int height; int s; DimBox(int width,int depth,int height){ this.width=width; this.hei

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

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);
        }
     }
注意:我没有给出直接代码,因为给出直接代码不会帮助您理解基础知识,以后会面临很多困难

这可以用许多不同的方法来解决

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

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

另一种选择是使用静态助手方法,这些方法将不同类的对象作为参数来执行脏工作

还有一个选项是从main方法中的所有类调用方法,以在main方法本身中执行所需的计算。但我不推荐这个,因为它没有演示OOP,这只是供参考

你需要回到基础上来理解基本的OOP概念,理解对象的组成,或者如何使用传递了对象的静态帮助器方法来做脏活。

注意:我没有给出直接代码,因为给出直接代码不会帮助你理解基础,并且会面临很多困难稍后

这可以用许多不同的方法来解决

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

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

另一种选择是使用静态助手方法,这些方法将不同类的对象作为参数来执行脏工作

还有一个选项是从main方法中的所有类调用方法,以在main方法本身中执行所需的计算。但我不推荐这个,因为它没有演示OOP,这只是供参考


您需要回到基础上来理解基本的OOP概念,理解对象的组成,或者如何使用将对象传递给它的静态帮助器方法来完成脏活。

我想您需要的是:

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();

我想你想要的是:

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();


请把你的代码放进去,并展示你到目前为止所做的事情。你的代码在哪里?我的代码在顶部。这段代码编译了吗<代码>int getWeightBox()没有方法体,这也不是抽象类。代码也很糟糕。零OOP。如果您希望调用一个方法,可以这样做
System.out.println(densityBox.getDensity())
并确保getter没有输入参数,因为对于这种场景的getter来说,拥有这样的参数是没有意义的谢谢你,但我知道这一点。只是忘了写()。请把你的代码放进去,并展示你到目前为止所做的事情。你的代码在哪里?我的代码在顶部。这段代码甚至可以编译吗<代码>int getWeightBox()没有方法体,这也不是抽象类。代码也很糟糕。零OOP。如果您希望调用一个方法,可以这样做
System.out.println(densityBox.getDensity())
并确保getter没有输入参数,因为对于这种场景的getter来说,拥有这样的参数是没有意义的谢谢你,但我知道这一点。只是忘了写()。非常感谢非常感谢JRG。最好的答案!我想勾选你的答案,但我无法勾选。因为你已经选择了另一个答案:),如果你喜欢,请投票@Iwantask我是为你做的(0:非常感谢你编码员非常感谢你JRG。最佳答案!我想勾选你的答案,但我无法勾选。因为你已经选择了另一个答案:),如果你喜欢,请投票@我是为你做的(0:非常感谢你,编码员