本文目錄一覽:
java聲明常量
static用來修飾屬性時稱為靜態屬性,不屬於某個具體的對象,屬於類,但是所有的對象都能對其進行修改
單個final修飾的屬性並不是常量,final表示的是不可改變性,但是屬於某個具體的對象
兩個加起來就是一個屬於類並且不可改變的屬性,即常量。
Java定義常量的方式有什麼?
String a= “a”;
public static String a = “a”
public static final String a = “a”
讀取配置文件中常量 通過@value(“”)獲取對應的值
枚舉 ,編寫枚舉類
java中如何聲明一個對象常量
例子:
final Object obj=new Object();
補充:
可以把成員變量改成private類型的,並且”只能”在構造方法裡面賦初值,這樣就不可以以後改動了
再次補充:
class A
{
public int i=0; //這裡因為是public的,所以a.i=1是可以的,如果改成private就非法了,也就無法通過對象修改i的值了,你是這個意思嗎?
}
你要的是如何聲明?這個好像沒有,你一定要這樣做嗎
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,所以不可變了,所以是不可變的變量。
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修飾的成員變量表示常量,值一旦給定就無法改變!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/279383.html