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:非常感谢你,编码员