java中定義常量方法介紹
java沒(méi)有叫全局變量的東西(有全局變量還叫OO嗎?);原因:Java將所有設(shè)計(jì)都基于對(duì)象的基礎(chǔ)上。Java的全局變量只能對(duì)一個(gè)類內(nèi)部而言。能夠在類內(nèi)的任何地方使用的變量就是全局變量,而只在某個(gè)特定的函數(shù)或者局部的程序塊內(nèi)使用的變量則是局部變量。
所以:聲明為static的變量實(shí)質(zhì)上就是全局變量。當(dāng)聲明一個(gè)對(duì)象時(shí),并不產(chǎn)生static變量的拷貝,而是該類所有的實(shí)例變量共用同一個(gè)static變量。
使用:java中只有static和非static變量,這個(gè)屬于每個(gè)類的,如果需要全局變量比如PI(3.14...),可以寫(xiě)一個(gè)類Math,定義static變量PI,調(diào)用Math.PI就可以使用了,這樣就達(dá)到我們使用全局變量的目的了。
1、將一個(gè) package 中需要的常量集中到一個(gè) XyzConstants 之類的 interface 里聲明,
就像普通的 field 那樣聲明就行了。
public interface SomeConstants {
public intPORT = 80;
public String IP = "166.111.16.1";
public boolean test = true;
}
就可以。
用到常量的類 implements 這個(gè)接口 .. 簡(jiǎn)單情況這樣就行樂(lè)。
2、更 formal 的做法是寫(xiě)一個(gè)類維護(hù)所有的常量,負(fù)責(zé)從配置文件(例如properties文件或xml文件)讀取所有的常量的值。
可以在一個(gè) static {} 塊里從配置文件中初始化所有 static 的變量。 這樣有利于提高軟件的可配置性。改些東東不用動(dòng)代碼,比較好。
最好要有 config Tool 負(fù)責(zé)寫(xiě)配置文件。
3.其他說(shuō)明:
定義一個(gè)公開(kāi)類,在里面加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中調(diào)用這些變量就是: infos.PORT,infos.IP,infos.test,infos.MYNAME
多個(gè)class交互時(shí)可以通過(guò)改變這些變量的值來(lái)傳遞信息。比如 infos.test被別的class改成了false,可能表示某一件事已經(jīng)失敗或已經(jīng)做過(guò),其它c(diǎn)lass就可以提前知道這些信息。
其中infos.MYNAME被定義為了final,即成為常量。用final修飾的成員變量表示常量,值一旦給定就無(wú)法改變!
相關(guān)文章
解決安裝mysqlclient的時(shí)候出現(xiàn)Microsoft Visual C++ 14.0 is required報(bào)錯(cuò)
這篇文章主要介紹了解決安裝mysqlclient的時(shí)候出現(xiàn)Microsoft Visual C++ 14.0 is required報(bào)錯(cuò)問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11Java 自定義Spring框架以及Spring框架的基本使用
Spring框架是由于軟件開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用的是基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限于服務(wù)器端的開(kāi)發(fā)2021-10-10Java 基于AQS實(shí)現(xiàn)一個(gè)同步器
這篇文章主要介紹了如何基于AQS實(shí)現(xiàn)一個(gè)同步器,幫助大家更好的理解和學(xué)習(xí)Java并發(fā),感興趣的朋友可以了解下2020-09-09Java基礎(chǔ)教程之static五大應(yīng)用場(chǎng)景
這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之static五大應(yīng)用場(chǎng)景的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Java多線程異步調(diào)用性能調(diào)優(yōu)方法詳解
這篇文章主要為大家詳細(xì)介紹了Java多線程異步調(diào)用性能調(diào)優(yōu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03java設(shè)計(jì)模式學(xué)習(xí)之工廠方法模式
這篇文章主要介紹了java設(shè)計(jì)模式學(xué)習(xí)之工廠方法模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10