Java 在不同的类中使用变量

Java 在不同的类中使用变量,java,class,Java,Class,我有两个独立的类,一个是我实际计算一个正方形的面积,如下面的第一位,另一个是我显示结果,但另一个是我显示的结果给了我一个错误,说它找不到“computeSquareArea”符号。为什么它要这样做而不在班级之间转移 public double computeSquareArea(double length) { return length * length; } double sqArea = computeSquareArea(length); System.out.println

我有两个独立的类,一个是我实际计算一个正方形的面积,如下面的第一位,另一个是我显示结果,但另一个是我显示的结果给了我一个错误,说它找不到“computeSquareArea”符号。为什么它要这样做而不在班级之间转移

public double computeSquareArea(double length)
{
    return length * length;
}


double sqArea = computeSquareArea(length);
System.out.println("Area of the square is " + sqArea);

非静态方法属于对象的实例,而静态方法属于类

在代码中,
computeSquareArea()
是一种非静态方法。这意味着为了调用它,必须在它所在的类的实例上调用它

如果您希望能够在不需要实例的情况下调用该方法,那么可以使用静态方法。要使方法成为静态的,请将
public-double-computeSquareDistance()
更改为
public-static-double-computeSquareDistance()


您可以阅读更多关于此的信息

非静态方法属于对象的实例,而静态方法属于类

在代码中,
computeSquareArea()
是一种非静态方法。这意味着为了调用它,必须在它所在的类的实例上调用它

如果您希望能够在不需要实例的情况下调用该方法,那么可以使用静态方法。要使方法成为静态的,请将
public-double-computeSquareDistance()
更改为
public-static-double-computeSquareDistance()


您可以阅读更多关于这方面的内容,正如我所看到的,您的方法
computeSquareArea(双倍长度)
不是静态的。因此,我想您需要
intantation
拥有方法
computeSquareArea(双倍长度)
的类。例如,假设您的名称为
SomeClass

SomeClass someClass = new SomeClass();
double sqArea = someClass.computeSquareArea(length); // This would be the method of your newly created Instance of SomeClass
System.out.println("Area of the square is " + sqArea);

正如我所看到的,您的方法
computeSquareArea(双倍长度)
不是静态的。因此,我想您需要
intantation
拥有方法
computeSquareArea(双倍长度)
的类。例如,假设您的名称为
SomeClass

SomeClass someClass = new SomeClass();
double sqArea = someClass.computeSquareArea(length); // This would be the method of your newly created Instance of SomeClass
System.out.println("Area of the square is " + sqArea);

用我猜的对象调用你的函数。显示你的整个类。用我猜的对象调用你的函数。显示你的整个类。即使在添加静态im后,我也有同样的问题。我必须在另一个类中构造一个对象才能在第一个类中使用它吗?比如说,
computeSquareArea()
在一个名为Foo的类中。为了从另一个类调用该方法,应该调用
Foo.computeSquareArea()
。如果这对你不起作用,试着发布实际的代码,这样我们可以进一步帮助你。这个问题不是静态与非静态的。您需要适当地调用该方法。如果是静态的,则适当的方法是
className.methodName()
。如果不是静态的,则适当的方法是
instanceRef.methodName()
。如果只调用
methodName()
,则必须在调用发生的同一类中定义该方法。即使在添加具有相同问题的静态im之后也是如此。我必须在另一个类中构造一个对象才能在第一个类中使用它吗?比如说,
computeSquareArea()
在一个名为Foo的类中。为了从另一个类调用该方法,应该调用
Foo.computeSquareArea()
。如果这对你不起作用,试着发布实际的代码,这样我们可以进一步帮助你。这个问题不是静态与非静态的。您需要适当地调用该方法。如果是静态的,则适当的方法是
className.methodName()
。如果不是静态的,则适当的方法是
instanceRef.methodName()
。如果只调用
methodName()
,则必须在调用发生的同一类中定义该方法。