What is Difference between Static Variable and Static method and Static Class?
本问题已经有最佳答案,请猛点这里访问。
我在面试,面试官问我这个问题,我不能让他满意他正在寻找的正确答案,需要帮助,谢谢。
静态变量是一个变量:
1 | public static int whatever = 0; |
静态方法是一种方法:
1 | public static void whatever() {} |
静态类是一个类:
1 | public static class SomeInnerClass {} |
(当类嵌套在另一个类中时,它只能有
静态变量和方法可以从任何其他类访问,并且不绑定到该类的实例。例如,假设您有以下类:
1 2 3 4 5 6 7 | public class SomeClass { public static int myInt = 0; public static int add(int one, int two) { return one + two; } } |
从任何其他类中,您可以直接访问变量和方法,而无需创建
1 2 | SomeClass.myInt = 23; int sum = SomeClass.add(SomeClass.myInt, 2); //this will equal 25 |
如果变量和方法不是静态的,则必须先实例化某个类,然后引用该实例:
1 2 3 | SomeClass someClass = new SomeClass(); someClass.myInt = 23; int sum = someClass.add(someClass.myInt, 2); //this will equal 25 |
静态类用于将嵌套类与其父类分离,并移除对该父类实例的依赖关系。采用以下代码:
1 2 3 | public class ParentClass { public class ChildClass {} } |
从另一个(父类的非子类)类,您可以使用:
1 | ParentCLass parent = new ParentClass(); |
但你不能这样做:
1 | ChildClass child = new ChildClass(); //this won't compile if it's not in ParentClass |
但是,如果childclass变为静态:
1 2 3 | public class ParentClass { public static class ChildClass {} } |
您将能够从另一个(父类的非子类)类实例化它:
1 | ChildClass child = new ChildClass(); //this will compile when put in any class |
我建议阅读一些关于类如何工作的Java基础知识:HTTPS://www. GeksFurgEK.Org/CaseSoObjsJava/
在爪哇中,static是用来描述对象如何在内存中管理的关键字。这意味着静态对象专门属于类,而不是该类的实例。变量、方法、类可以是静态的。它们之间的区别和通常一样(变量、方法和类之间的区别)。静态变量(容器如int或string)、静态方法(一种内存中的方法,是类的一部分(可以调用没有类Hello .StActudiMod()的实例),静态类在Java中有点独特,用Java来研究静态类