Java中静态方法的作用域
Java中静态方法的作用域是什么Java中静态方法的作用域,java,eclipse,Java,Eclipse,Java中静态方法的作用域是什么 1) (Eclipse) Project level 2) Application level 3) JVM level 为了让你了解我的问题,如果我们有课程: public class MyClass { private static int data; public static void setData(int val) { data = val; } public static int getData()
1) (Eclipse) Project level
2) Application level
3) JVM level
为了让你了解我的问题,如果我们有课程:
public class MyClass
{
private static int data;
public static void setData(int val)
{
data = val;
}
public static int getData()
{
return data;
}
}
如果我从另一个类(与MyClass
在同一个项目中)调用setData()
方法并传递一个值,比如10,我是否能够从另一个项目访问setdata
(即值10)?来自不同的应用程序?等-
或者,为了能够从不同的(eclipse)项目访问相同的数据
(即10),我需要做些什么
如果有与此相关的官方文档,请务必让我知道。
static
方法没有特殊的范围。范围是通过使用访问说明符定义的。由于您已将静态方法定义为public
,因此它将对相同或不同包中的所有类可见
如果您想在不同的项目中使用它,那么要么在新项目中导入当前项目的源代码,要么创建当前项目的jar并将其添加到新项目的类路径中。
静态
方法没有特殊的作用域。范围是通过使用访问说明符定义的。由于您已将静态方法定义为public
,因此它将对相同或不同包中的所有类可见
如果您想在不同的项目中使用它,那么要么在新项目中导入当前项目的源,要么创建当前项目的jar并将其添加到新项目的类路径中。您是在询问引用范围还是存在范围?给定标准Java包命名/作用域规则,任何可以访问方法类的类都可以访问公共静态方法。注意,这意味着(作为规则的一部分)只有同一JVM中的类才能访问 数据的存在范围是
java.lang.Class
的实例,该实例表示正在加载的类(我确信这有一些奇特的术语)。最多到JVM执行结束,但在某些情况下,类可以更早地“卸载”
还应该注意,给定类的多个副本(
java.lang.Class
instance)可以同时加载到给定的JVM中,并且该类的每个副本都有自己的静态变量。但是,这种情况非常罕见。您是在询问参考范围还是存在范围?给定标准Java包命名/作用域规则,任何可以访问方法类的类都可以访问公共静态方法。注意,这意味着(作为规则的一部分)只有同一JVM中的类才能访问
数据的存在范围是java.lang.Class
的实例,该实例表示正在加载的类(我确信这有一些奇特的术语)。最多到JVM执行结束,但在某些情况下,类可以更早地“卸载”
还应该注意,给定类的多个副本(
java.lang.Class
instance)可以同时加载到给定的JVM中,并且该类的每个副本都有自己的静态变量。然而,这将是非常罕见的。不完全是您所要求的,但我相信它可能会帮助您理解静态方法的概念
比如说,您有一个类Foo
,它具有静态方法calculatefo1()
和非静态方法calculatefo2()
非静态方法只能与此类的对象
(类实例
)关联使用。因此,在调用它之前,您需要实例化该对象
Foo f2 = new Foo();
cf.calculateFoo2;
可以使用类名调用静态方法,而不使用此类的实例
Foo.calculateFoo1();
您也可以使用该类的实例调用静态方法(若有)。编译器会理解的。不完全是您要求的,但我相信它可能会帮助您理解静态方法的概念
比如说,您有一个类Foo
,它具有静态方法calculatefo1()
和非静态方法calculatefo2()
非静态方法只能与此类的对象
(类实例
)关联使用。因此,在调用它之前,您需要实例化该对象
Foo f2 = new Foo();
cf.calculateFoo2;
可以使用类名调用静态方法,而不使用此类的实例
Foo.calculateFoo1();
您也可以使用该类的实例调用静态方法(若有)。编译器会理解的。你把两个概念混为一谈了。
静态意味着每个类有一个实例
范围取决于访问修饰符(专用、公用、受保护、默认)
如果希望从其他eclipse项目访问此方法,则需要将此项目添加到项目库中
右键单击新项目,选择生成路径,然后添加到生成路径
转到“项目”选项卡,添加具有此getDate方法的项目
现在您可以访问您的类MyClass您混合了两个概念。
静态意味着每个类有一个实例
范围取决于访问修饰符(专用、公用、受保护、默认)
如果希望从其他eclipse项目访问此方法,则需要将此项目添加到项目库中
右键单击新项目,选择生成路径,然后添加到生成路径
转到“项目”选项卡,添加具有此getDate方法的项目
现在您可以访问您的类MyClass让我们假设您正在讨论是否有一个数据的“实例”以及相应的静态方法
Java中静态方法的作用域是什么
1) (Eclipse) Project level
2) Application level
3) JVM level
1) (Eclipse)项目级
不,源代码/