以友圆上该类常量野告陪是该类对象的属性是不对的,属性只有在定义封装后set和get方法才出现的。只能说是该对象的成颂蠢员字段。
如何在Java中定义常量
java没有叫全局变量的东西(有全局变量还叫OO吗?);原因:Java将所有设计都基于对象的基础上。Java的全局变量只能对一个类内部而言。能够在类内的任何地方使用的变量就是全局变量,而只在某个特定的函数或者局部的程序块内使用的变量则是局部变升数枣量。
所以:声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。
使用:java中只有static和非static变量,这个属于每个类的,如果需要全局变量比如PI(3.14...),可以写一个类Math,定义static变量PI,调用Math.PI就可以使用了,这样就达到我们使用全局变量的目的了。
1、将一个package中需要的常量集中到一个XyzConstants之类的interface里声明,
就像普通的field那样声明就行了。
复制代码代码如下:
publicinterfaceSomeConstants{
publicintPORT=80;
publicStringIP="166.111.16.1";
publicbooleantest=true;
}
就可以。
用到常量的类implements这个接口..简单情况这样就行乐。
2、更formal的做法是写一个类维护所有的常量,负责从配置文件(例如properties文件或xml文件)读取所有的常量的值。
可以在一个static{}块里毕姿从配置文件中初始化所有static的变量。这样有利于提高软件的可配置性。改些东东不用动代码,比较好。
最好要有configTool负责写配置文件。
3.其他说明:
定义一个公开类,在里面加static变量。
复制代码代码如下:
publicclassinfos{
privateinfos(){
}
publicstaticintPORT=80;
publicstaticStringIP="166.111.166.111";
publicstaticbooleantest=true;
publicstaticfinalStringMYNAME="zzz";//定义中用了final,就是不能吵拆改变的。
}
在别的class中调用这些变量就是:infos.PORT,infos.IP,infos.test,infos.MYNAME
多个class交互时可以通过改变这些变量的值来传递信息。比如infos.test被别的class改成了false,可能表示某一件事已经失败或已经做过,其它class就可以提前知道这些信息。
其中infos.MYNAME被定义为了final,即成为常量。用final修饰的成员变量表示常量,值一旦给定就无法改变!望采纳
java中有关常量的问题举例:
publicclassTest{
publicfinalinta=1;
publicfinalstaticintA=1;
}
想的到a的值,方法是:
新建皮丛陵一个Test对象,然后得到其属性值,即:
Testt=newTest();
intvalue=t.a;
想得到A的值,方法是:
直接用类名得到,即:
intvalue=Test.A;
也就是说,像a这种普通属性的值,要通过对象来得到;而相A这种静态(带static)的属性,则要通过类名来得到。
注意:例子中的a写成了public的,仅仅是用来说明普通属性和郑厅静态燃戚属性的区别,真正写类时,普通属性要写成private的,然后通过get方法来得到,即:
publicclassTest{
privateinta;
publicintgetA(){
returna;
}
}
使用getA()方法,即可得到a的值了;
而静态属性则写成public的。
㈡ Java中提供的常量一般都有什么作用
根据我自己的理解,有这么几个作用:1、将没有人类语言意义的值转换成人类回能看懂的答变量名。例如:Color 类中就有很多常量,如果说 1表示红,2表示绿,3表示蓝。。。那是记不住那么多种颜色的。要是使用 RED、GREEN、BLUE 那显然就好记多了。2、统一和标准化。如果一个类可以以不同的状态出现,那么就需要一个“量”来告诉它要以什么状态呈现,那么这个时候使用自身带的参数无疑是最好了,一方面限定了选择的范围,另一方面它不用告诉外界这里使用的具体是什么值。3、方便类以后的扩展。如 Color 类一开始就是约定了 1表示红、2表示绿这样的方式,后来又发现用 0表示红,1表示绿更合理(这里只是打个比方),那也无法改成这种合理的做法了,因为很多人都已经使用了 1来表示红,如果 JDK 里面改变了,别人使用新版本的 JDK 之后,就会发现原来红色的地方全变成绿色的了。但如果原来是使用常量 RED=1,那么现在只需要改成 RED=0 ,就可以,因为除了这个地方,其它地方出现的都是“RED”,全都跟着变了。这是我的拙见,希望有助你释疑。
㈢ java 常量什么怎么定义的
Java 常量,有2种意思,我分别说明:
第1种意思,就是一个值,这个值本身,我们可以叫它常量,举几个例子:
整型常量: 123
实型常量:3.14
字符常量: 'a'
逻辑常量:true、false
字符串常量:"helloworld"
这只是说法的问题,比如7这个数,我们就可以说“一个int类型的常量7 ”
-------
还有另一种,就是楼主问的这种:
第2种意思,表示不可变的变量,这种也叫常量,从语法上来讲也就是,加上final,使用final关键字来修饰某个变量,然后只要赋值之后,就不能改变了,就不能再次被赋值了,据个例子:
final int i = 0;
那么这个i的值是绝对不能再被更改了,只能是0,所以说是 不可变的变量,这句话看似矛盾,其实不矛盾,这句话这样理解:
i就是一个int类型的变量,变量本身是可变的(可被更改值),但是现在加了final,所以不可变了,所以是不可变的变量。