Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何在同一类的另一个方法中调用一个类的方法?_Java - Fatal编程技术网

Java:如何在同一类的另一个方法中调用一个类的方法?

Java:如何在同一类的另一个方法中调用一个类的方法?,java,Java,我正在制作一个程序,其基本代码如下: double range = getMaximumValue() - getMinimumValue(); 公共类统计学家扩展ArrayList{ public double getMinimumValue() {...} public double getMaximumValue() {...} public double range(){ double range = StatisticalList.g

我正在制作一个程序,其基本代码如下:

double range = getMaximumValue() - getMinimumValue();
公共类统计学家扩展ArrayList{

    public double getMinimumValue() {...}

    public double getMaximumValue() {...}

    public double range(){

          double range = StatisticalList.getMaximumValue() - StatisticalList.getMinimumValue();

          return range;
}
在本文中,我实现了两个方法,getMinimumValue和getMaximumValue。接下来我要实现一个方法getRange。似乎不需要再次进行计算,只需调用get\uu Value()方法即可


但这会导致一个错误,即类型ArrayList的方法maxValue()未定义。我想在需要多次在程序中的其他方法中使用方法的情况下执行这种类型的计算。如何使其工作?

您正在调用getMaximumValue()和getMinimumValue(),因为静态方法调用StatisticalList

double range = getMaximumValue() - getMinimumValue()

应该可以得到您想要的东西。

您正在调用getMaximumValue()和getMinimumValue(),作为StatisticalList上的静态方法调用

double range = getMaximumValue() - getMinimumValue()

基本上语法是StatisticalList.getMaximumValue()用于调用静态方法

您试图调用的方法是
instance
方法

所以,如果你想在同一节课上给他们打电话

   double range = getMaximumValue() - getMinimumValue();
如果你想在其他地方使用它,你需要有一个
StatisticalList

StatisticalList  s = new StatisticalList();
double range = s.getMaximumValue() - s.getMinimumValue();

基本上,语法
StatisticalList.getMaximumValue()
用于调用静态方法

您试图调用的方法是
instance
方法

所以,如果你想在同一节课上给他们打电话

   double range = getMaximumValue() - getMinimumValue();
如果你想在其他地方使用它,你需要有一个
StatisticalList

StatisticalList  s = new StatisticalList();
double range = s.getMaximumValue() - s.getMinimumValue();

在类中定义的方法在该类的任何地方都是可访问的。此外,因为您使用了“public”访问修饰符,您的方法可以从包中的任何其他类访问。但是,要在不同包中的类中访问它们,您需要导入该类。请参阅文档和有关访问修饰符的更多信息

您还可以简化range()方法:


在类中定义的方法在该类的任何地方都是可访问的。此外,因为您使用了“public”访问修饰符,您的方法可以从包中的任何其他类访问。但是,要在不同包中的类中访问它们,您需要导入该类。请参阅文档和有关访问修饰符的更多信息

您还可以简化range()方法:

简言之:

double range = getMaximumValue() - getMinimumValue();
但是让我们解释一下。 首先,我不确定这段代码是如何编译的。 以“classname.methodname”的形式调用方法是针对静态方法的,因此当您调用
StatisticalList.getMaximumValue()
时,java编译器希望在那里看到静态方法。
我认为您也需要它。您希望
getMaximumValue
ArrayList
中的值中找到最大值。因此,您应该在“this”对象上调用此方法。只需从此行中删除2X
StatisticalList.
,并按如下方式进行操作:

double range = getMaximumValue() - getMinimumValue();
此外,您还应该注意如何实现get\u Value()方法。 您的收藏扩展了
ArrayList
,因此基本上是
ArrayList
它可以保存所有类型的对象,而不仅仅是数字。 将类定义更改为

public class StatisticalList extends ArrayList<Double> {
public class StatisticalList扩展了ArrayList{
可能会更有意义

试一试..

简而言之:

double range = getMaximumValue() - getMinimumValue();
但是让我们解释一下。 首先,我不确定这段代码是如何编译的。 以“classname.methodname”的形式调用方法是针对静态方法的,因此当您调用
StatisticalList.getMaximumValue()
时,java编译器希望在那里看到静态方法。
我认为您也需要它。您希望
getMaximumValue
ArrayList
中的值中找到最大值。因此,您应该在“this”对象上调用此方法。只需从此行中删除2X
StatisticalList.
,并按如下方式进行操作:

double range = getMaximumValue() - getMinimumValue();
此外,您还应该注意如何实现get\u Value()方法。 您的收藏扩展了
ArrayList
,因此基本上是
ArrayList
它可以保存所有类型的对象,而不仅仅是数字。 将类定义更改为

public class StatisticalList extends ArrayList<Double> {
public class StatisticalList扩展了ArrayList{
可能会更有意义


试试看。

因为方法不是静态的,所以可以直接调用它们,例如
getMaximumValue()
因为方法不是静态的,所以可以直接调用它们,例如
getMaximumValue()