当前位置:  编程技术>java/j2ee

java中定义常量方法介绍

    来源: 互联网  发布时间:2014-10-28

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

java没有叫全局变量的东西(有全局变量还叫OO吗?);原因:Java将所有设计都基于对象的基础上。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修饰的成员变量表示常量,值一旦给定就无法改变!


    
 
 

您可能感兴趣的文章:

  • 请问JAVA如何定义常量实行多个JAVA程序共用?
  • java能不定义常量
  • 在java里如何定义常量?
  • 欢迎大家讨论,java中我专门使用一个类来定义其他类中要用到的常量,这种作法有哪些利弊???
  • JAVA中使用双括号来初始化静态常量的小技巧
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 请问再java中怎样定义动态数组?
  • java命名空间java.awt类radialgradientpaint的类成员方法: getradius定义及介绍
  • java自定义枚举转换器示例
  • java命名空间java.text接口attributedcharacteriterator的类成员方法: getallattributekeys定义及介绍
  • 菜鸟问题:unix中有像windows那样的自定义的环境变量吗?用java如何取
  • java命名空间java.beans接口propertyeditor的类成员方法: supportscustomeditor定义及介绍
  • Java中怎样定义全局变量???
  • java命名空间java.text接口attributedcharacteriterator的类成员方法: getattributes定义及介绍
  • 笨苯问题:java类中如何读取xml中定义的属性信息。
  • java命名空间java.util类locale的类成员方法: getisocountries定义及介绍
  • 在java中,怎样定义一个"byte"和"int"的变量为"null"
  • java命名空间java.awt类image的类成员方法: undefinedproperty定义及介绍
  • java中函数的缺省参数怎么定义?
  • java命名空间java.beans接口customizer的类成员方法: setobject定义及介绍
  • java自定义日期转化类示例
  • java命名空间java.awt类toolkit的类成员方法: createcomponent定义及介绍
  • 在同一个.java文件中定义的Class有什么限制?
  • java命名空间java.lang类classloader的类成员方法: getpackages定义及介绍
  • JAVA中有类似C中的宏定义的东西吗?
  • java命名空间java.net类uri的类成员方法: getport定义及介绍
  • 请问java里能自己定义新的Exception吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.lang类runtime的类成员方法: runfinalization定义及介绍
  • Java中如何通过方法名动态调用方法?
  • java命名空间java.awt.im类inputcontext的类成员方法: getinputmethodcontrolobject定义及介绍
  • WEB前端 iis7站长之家
  • java命名空间java.lang类system的类成员方法: runfinalization定义及介绍
  • java初学--在java中有个native本地方法 说是能嵌入c 不知道具体?
  • java命名空间java.lang类stacktraceelement的类成员方法: isnativemethod定义及介绍
  • 在JAVA中只有一种派生子类的方法吗?我记得在C++ 中有3种派生方法的!
  • java命名空间java.lang类stacktraceelement的类成员方法: getmethodname定义及介绍
  • java根据方法名称取得反射方法的参数类型示例
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: dispose定义及介绍
  • 请问java.sql包中 preparedStatement 对象的setString(int parameterIndex,java.lang.String x)方法怎么用?
  • java命名空间java.net类httpurlconnection的类成员方法: getrequestmethod定义及介绍
  • java.util类对象的DATE方法为何不能用? <%=new java.util.date()%>,在页面中是这样写的,服务器用的是Resin.
  • java命名空间java.security类policyspi的类成员方法: enginerefresh定义及介绍
  • 有没有一种工具可以让java自动调出类的方法、成员?就像Delphi一样,写完Edit1.系统会跳出一些TEdit的属性、方法。
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: getcontrolobject定义及介绍
  • 各位高手知道在JAVA中如何用一个名称创建一个对象实例,并调用其方法,注意:在编写代码时并不知要创建的对象的类名,也并不知方法名
  • java命名空间java.security类policy的类成员方法: refresh定义及介绍
  • java 与 C++ 实现后绑定的方法
  • java命名空间java.beans类statement的类成员方法: getmethodname定义及介绍
  • 谁能告诉我哪里能找到java包内部类及方法使用介绍
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3