gpt4 book ai didi

java - 在我们的应用程序中最好使用静态最终变量或最终变量

转载 作者:行者123 更新时间:2023-12-01 16:56:54 24 4
gpt4 key购买 nike

public class FinalClassVariable {
public static void main(String[] args) {
ClassVariable classVariable = new ClassVariable();
System.out.println("Value of PI accessed thorugh class itself = "+ClassVariable.PI);
//System.out.println(ClassVariable.E);
System.out.println("Value of PI accessed thorugh object = "+classVariable.PI);
System.out.println("The value of constant E = " + classVariable.E);
}
}

class ClassVariable {
public static final double PI = 3.14;

public final double E = 2.7182818284590452353602874713527;
}

变量“PI”和“E”之间的主要区别我们可以通过访问“PI”类名和对象,“E”只能通过对象访问

这两个都是不变的,我们不会改变它们的值。

我已经完成了马德里卡洛斯三世大学的 Java 类(class)大学,还观看了 Mehran Sahami 的斯坦福大学视频

这两个人都建议在final中使用关键字static。

我的问题是,我们是否可以通过声明 final 来创建常量那么为什么我们必须声明它 static还有? static也损害了 OOP 的概念。

这两个声明之间有什么细微的区别吗?哪一种最适合在我们的应用程序中使用?

最佳答案

如果使用非静态成员声明常量,则类的每个实例都将拥有它自己的副本,这是浪费的,因为它是常量,并且所有副本都将具有相同的值。因此,static final 更有意义 - 该常量只会有一个副本。对于 PI 和 E 等常量,您应该始终使用static final

如果该成员的值被初始化一次(通常在构造函数中),则最终实例成员(即非静态)是有意义的,但对于类的不同实例可以不同。

关于java - 在我们的应用程序中最好使用静态最终变量或最终变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31446118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com