Java常量】【Java基础】Java如何声明常量

2020-12-02 09:34发布

10条回答
爱梦 - 拿来吧你
2楼 · 2020-12-02 09:44

在程序运行的过程中一直不会改变的量称为常量(constant),通常也称为“final变量”。常量在整个过程中能被赋值一次。在为所有的对象共享时,常量时非常有用的。

在JAVA语言中声明一个常量,除了要指定数据类型外,还需要通过final关键字进行限定。声明常量的标准语法如下:

final 数据类型 常量名称[=值]

常量名通常使用大写字母,但这并不是必须的。很多Java程序员使用大写字母表示常量,是为了清楚地表明正在使用的常量。


小猪仔
3楼 · 2020-12-02 09:45

Interface定义常量方法

在这里插入图片描述

Class定义常量方法

在这里插入图片描述


浅浅77
4楼 · 2020-12-02 10:02

java没有叫全局变量的东西(有全局变量还叫OO吗?);原因:Java将所有设计都基bai于对象的基础上。Java的全局变量只能对一个类内部而言。能够在类内的任何地方使用的变量就是全局变量,而只在某个特定的函数或者局部的程序块内使用的变量则是局部变量。

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

使用:java中只有static和非static变量,这个属于每个类的,如果需要全局变量比如PI(3.14...),可以写一个类Math,定义static变量PI,调用Math.PI就可以使用了,这样就达到我们使用全局变量的目的了。

1、将一个 package 中需要的常量集中到一个 XyzConstants 之类的 interface 里声明,

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

复制代码代码如下:

public interface SomeConstants {

public intPORT = 80;

public String IP = "166.111.16.1";

public boolean test = true;

}

就可以。

用到常量的类 implements 这个接口 .. 简单情况这样就行乐。

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

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

最好要有 config Tool 负责写配置文件。

3.其他说明:

定义一个公开类,在里面加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改成了false,可能表示某一件事已经失败或已经做过,其它class就可以提前知道这些信息。

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

rayfoo.cn
5楼 · 2020-12-02 11:49

成员变量的声明方法:

[修饰符] 变量类型 变量名称;


方法变量

变量类型 变量名称;


其中变量类型可以是Java种的八种基本类型、包装类型、以及类类型;


小小收藏家
6楼 · 2020-12-02 14:52

java中只有static和非static变量,这个属于每个类的,如果需要全局变量比如PI(3.14...),可以写一个类Math,定义static变量PI,调用Math.PI就可以使用了,这样就达到我们使用全局变量的目的了。

1、将一个 package 中需要的常量集中到一个 XyzConstants 之类的 interface 里声明,

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

复制代码代码如下:

public interface SomeConstants {

public intPORT = 80;

public String IP = "166.111.16.1";

public boolean test = true;

}

就可以。

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


像风没有归宿
7楼 · 2020-12-02 17:35

方法一采用接口(Interface)的中变量默认为static final的特性。

方法二采用了Java 5.0中引入的Enum类型。

方法三采用了在普通类中使用static final修饰变量的方法。

方法四类似方法三,但是通过函数来获取常量。


小小李兆佳
8楼 · 2020-12-03 09:56

 static用来修饰属性时称为静态属性,不属于某个具体的对象,属于类,但是所有的对象都能对其进行修改
单个final修饰的属性并不是常量,final表示的是不可改变性,但是属于某个具体的对象
两个加起来就是一个属于类并且不可改变的属性,即常量。

IT学习
9楼 · 2020-12-04 10:30

常量就是从程序开始运行到结束都不变的量。在 Java 程序设计中,使用关键字“final”来声明一个常量,例如下面的程序代码。

这里的 x 是一个常量,但是是在某个方法内的常量,也可以称为成员常量(作者给它取的名字)

public class var {    
    public static void main(String[] args){        final int X=20;
        System.out.println("常量 X="+X);
    }
}

运行结果是:
常量 X=20

如果要声明一个类常量,就需要使用关键字“static”和“final”的组合,例如下面的例子。

这里的 x 是类常量,所以无论是哪个对象的引用,它的值终究不变

public class var {    static final int X=20;    public static void main(String[] args){
        System.out.println(" 打印数据 X="+X);
    }
}

运行结果是:
打印数据 X=20

从上面的例子可以看出,如果这个常量是类常量,那么无需再构造对象,可以直接引用这个常量。前一个例子声明的常量是一般常量,不是类常量,所以一定要构造对象,通过对象来引用这个常量,所以切记类常量和一般常量的区别所在。


相关问题推荐

没有解决我的问题,去提问