参考答案
Java中定义常量的方法有两种:Class、Interface。
1. Class
采用“类.常量名”方法进行调用,需要私有化构造方法,避免创建该类的实例,同时不让其他类继承该类。
如果多处需要访问工具类中定义的常量,可以通过静态导入(static import)机制,避免用类名来修饰常量名。
//final修饰符
public final class Constants {
//私有构造方法
private Constants() {}
public static final int ConstantA = 100;
public static final int ConstantB = 100;
......
}
2. Interface
在interface中声明的字段,虚拟机在编译时自动加上public static final修饰符。使用方法一般是“接口.常量名”。也可以通过实现该接口,直接访问常量名,即常量接口模式。
public interface Constants {
int ConstantA = 100;
int ConstantB = 100;
......
}
总结:
interface中定义常量方法生成的class文件,比第一种方法的class文件更小, 且代码更简洁, 效率更高。
在Java中会产生问题,主要是Java的动态性,Java中一些字段的引用可以在运行期动态进行。
某些场景下,部分内容改变可只进行部分编译。
因此,推荐使用Class定义常量,但采用private修饰符,通过get方法获取常量,这种方案可以保证java的动态性。
public class A{
private static final String name = "bright";
public static String getName(){
return name;
}
以上,是Java面试题【Java怎么定义一个常量】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—
