java定义常量是何格式?如何实现?

XIAO 2020-04-25 13:05:16 java常见问答 6979

关注了解过java入门知识的小伙伴们,你们还记得java中定义常量这一知识点吗?没错,小编今天就是想要带大家再复习一遍,java定义常量的格式,一起来看看究竟是如何实现常量定义的呢?

Java中没有叫全局变量的东西,原因如下:

java将所有设计都基于对象的基础上了。Java的全局变量其实只能对一个类内部而言的。能够在类中的任何地方使用的变量就是全局变量,而如果只在某个特定的函数或者局部的程序块中使用的变量则是局部变量。

所以呢,声明为static的变量实质上就是全局变量。当用来声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。

要了解java中只有static和非static变量,这个属于每个类的,如果需要全局变量比如PI

(3.14...),可以写一个类Math,定义static变量PI,调用Math.PI就可以使用了,这样就可以达到我

们使用全局变量的目的了。

格式一:将一个package中需要的常量集中到了一个XyzConstants之类的interface里声明,

就像普通的 field 那样声明就行了。

代码如下:

public interface SomeConstants
{
    public intPORT = 80;
    public String IP = "166.111.16.1";
    public boolean test = true;
}

用到常量的类implements这个接口 .. 简单情况这样就可以了。

格式二:更formal的做法是写一个类维护所有的常量,负责从配置文件(例如properties文件xml文件)读取所有的常量的值。

可以在一个static {}块里从配置文件中初始化所有static的变量。 这样有利于提高软件的可配置性。改些东东不用动代码,比较好。最好要有config Tool负责写配置文件。

格式三:其他说明。

定义一个公开类,在里面加static变量。

代码如下:

public class infos
{
    private infos()
    {}
    public static int PORT = 80;
    public static String IP = "166.111.166.111";
    public static boolean test = true;
    public static final String MYNAME = "zzz"; //定义中用了final,就是不能改变的。
}

在别的class中调用这些变量就是: infos.PORT,infos.IP,infos.test,infos.MYNAME多个class交互时可以通过改变这些变量的值来传递信息。比如是infos.test被别的class改成了alse,可能表示某一件事已经失败或已经做过,其它class就能提前知道这些信息。

其中infos.MYNAME被定义为了final,即成为常量。用final修饰的成员变量表示常量,值一旦给定就无法改变了。

以上就是本篇文章的所有内容了,希望对大家可以有所帮助,还想了解更多java入门信息,记得关注本站消息哦。