为了账号安全,请及时绑定邮箱和手机立即绑定

静态变量和静态方法和静态类有什么区别?

静态变量和静态方法和静态类有什么区别?

慕神8447489 2021-12-01 18:57:14
我在面试,面试官问了我这个问题,我不能用他想要的正确答案让他满意,需要帮助,谢谢
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

静态变量是一个变量:


public static int whatever = 0;

静态方法是一种方法:


public static void whatever() {}

静态类是一个类:


public static class SomeInnerClass {}

(一个类只有在static嵌套在另一个类中时才能有修饰符)


静态变量和方法可以从任何其他类访问,并且不绑定到该类的实例。例如,假设您有以下类:


public class SomeClass {

    public static int myInt = 0;


    public static int add(int one, int two) {

        return one + two;

    }

}

从任何其他类,您可以直接访问变量和方法,而无需创建 的实例SomeClass:


SomeClass.myInt = 23;

int sum = SomeClass.add(SomeClass.myInt, 2); //this will equal 25

如果变量和方法不是静态的,则必须首先实例化 SomeClass 然后引用该实例:


SomeClass someClass = new SomeClass();

someClass.myInt = 23;

int sum = someClass.add(someClass.myInt, 2); //this will equal 25

静态类用于将嵌套类与其父类分开,并消除对父类实例的依赖。取以下代码:


public class ParentClass {

    public class ChildClass {}

}

从另一个(父类的非子类)类中,您将能够使用:


ParentCLass parent = new ParentClass();

但是你不能这样做:


ChildClass child = new ChildClass(); //this won't compile if it's not in ParentClass

但是,如果 ChildClass 变为静态:


public class ParentClass {

    public static class ChildClass {}

}

您将能够从另一个(父类的非子类)类实例化它:


ChildClass child = new ChildClass(); //this will compile when put in any class

我建议阅读一些关于类如何工作的 Java 基础知识:https : //www.geeksforgeeks.org/classes-objects-java/


查看完整回答
反对 回复 2021-12-01
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

在 Java 中,static 是一个关键字,用于描述对象在内存中的管理方式。这意味着静态对象专门属于该类,而不是该类的实例。变量、方法、类可以是静态的。它们之间的区别和往常一样(变量、方法和类之间的区别)。一个静态变量(例如int或String等容器),静态方法(一个存在于内存中并且是类的一部分的方法(可以在没有Hello.staticMethod()类的实例的情况下调用),一个静态类有点在 Java 中独一无二,看看这个Java 中的静态类


查看完整回答
反对 回复 2021-12-01
  • 2 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信