静态方法返回的值在Java中是静态的吗?
每当您从静态方法返回值时,默认情况下它们既不是静态值也不是实例值,它们只是值。
调用该方法的用户可以根据需要使用它们。即,您可以检索值并将其声明为静态。
但是,由于如果您需要声明静态方法返回的值,则无法声明静态方法的变量,因此需要在方法外部的类中调用它。
示例
假设我们有一个名为Demo的类-
class Demo{ int data = 20; public Demo(int data){ this.data = data; } public int getData(){ return this.data; } }
在下面的Java示例中,我们有两种方法getObject()
,分别getInt()
返回一个对象和一个整数。
我们在类和方法中两次调用了这些方法。在该类中,我们已将它们返回的值声明为static。
在方法中,我们将它们(方法返回的值)用作局部变量(显然是非静态的)。
public class StaticExample{ static int data = StaticExample.getInt(); static Demo obj = StaticExample.getObject(); public static Demo getObject(){ Demo obj = new Demo(300); return obj; } public static int getInt(){ return 20; } public static void main(String args[]) { System.out.println(StaticExample.data); System.out.println(StaticExample.obj.data); StaticExample obj = new StaticExample(); System.out.println(obj.getInt()); Demo demo = obj.getObject(); System.out.println(demo.data); } }
输出结果
20 300 20 300