每当一个变量被声明为静态时,这意味着整个类只有它的一个副本,而不是每个实例都有自己的副本。
静态变量
声明静态变量时,将创建该变量的单个副本,并在类级别的所有对象之间共享。静态变量本质上是全局变量。该类的所有实例共享相同的静态变量。
静态变量的注意事项
我们只能在类级别创建静态变量。
静态块和静态变量按照它们在程序中出现的顺序执行。
静态变量只需借助类就可以直接调用,我们不需要在this中为类创建对象。
// Java program to demonstrate execution // of static blocks and variables class Test { // static variable static int a = m1(); // static block static { System.out.println("Inside static block"); } // static method static int m1() { System.out.println("from m1"); return 20; } // static method(main !!) public static void main(String[] args) { System.out.println("Value of a : " + a); System.out.println("from main"); } }
上述代码的结果:
from m1 Inside static block Value of a : 20 from main
静态方法可以使用类名调用另一个静态方法或变量。他们无法调用实例方法或变量。
实例方法可以使用类名或引用变量调用静态方法或变量。他们可以使用实例变量调用另一个实例方法或变量。
最终关键词
当 Final 关键字标记为静态时,您无法覆盖它。在Java中,final关键字用于表示一个变量、方法或类不能被修改或扩展。当一个变量被声明为final时,它的值一旦初始化就不能改变。
设计静态方法和字段
静态方法不需要类的实例。它们在班级的所有用户之间共享。实例方法的代码只有一份副本。类的每个实例都可以多次调用它。
当类第一次加载时,静态变量将被分配内存。对于静态变量方法,我们使用 className 而不是对象,例如 className.variable
有了静态方法,调用者就不需要实例化对象来调用该方法。您还可以使用对象的实例来调用静态方法。编译器将检查引用的类型并使用它而不是对象。
如果对非静态方法进行静态引用,您将收到编译器错误。
只有实例方法可以在不使用引用变量的情况下调用同一类上的其他实例方法。实例方法确实需要一个对象。
要点:
当 static 关键字是第一次赋值时,Final 变量可以被重新赋值,例如,如果我们声明一个 static Final 变量,这意味着我们可以在 static 块中将其初始化一次。如果声明了最终变量但从未初始化,我们会收到编译器错误。
请随意在下面的评论中添加您关于静态和实例变量的知识。
以上是Java中的静态变量的详细内容。更多信息请关注PHP中文网其他相关文章!