1. 程式人生 > >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定義常量(Constant) 的幾種方法

常量使用目的 為什麼要將常亮提取出來?         常亮提取出來有利於程式碼閱讀,而且下次再做這種判斷不用手寫或複製,直接通過常量類就能得到,能夠避免有的地方是username,有的地方是name來判斷同一個邏輯含義相同變數問題。不過我覺得提取出來並不會有

java定義常量方法

一、常量定義的基本注意事項。    在Java語言中,主要是利用final關鍵字(在Java類中靈活使用Static關鍵字)來定義常量。當常量被設定後,一般情況下就不允許再進行更改。如可以利用如下的形式來定義一個常量:final double PI=3.1315。在定義這個

Java定義常量幾種方式

在開發中定義常量是很常見的事,但常量定義有哪幾種方式可選?各種定義方式有什麼優缺點?咱們就用這篇小文來梳理下^_^ 1.通過介面Interface來定義(不推薦) 定義方式如下: 我們可以這樣使用它: 這種定義方式的優點: 適合懶人使用,為什麼呢?

如何在Java定義常量(Constant)

首先看示例: /** * Method One */ interface ConstantInterface { String SUNDAY = "SUNDAY"; String MONDAY = "MONDAY"; String TUESDAY = "TUESDA

java定義常量

         java沒有叫 全域性變數的東西(有全域性變數還叫OO嗎?);原因:Java將所有設計都基於物件的基礎上。Java的全域性變數只能對一個類內部而言。能夠在類內的任何地方使用的變數就是全域性變數,而只在某個特定的函式或者區域性的程式塊內使用的變數則是區域性變

java定義常量和C#定義常量的區別

一、常量定義的基本注意事項。   在Java語言中,主要是利用final關鍵字()來定義常量。當常量被設定後,一般情況下就不允許再進行更改。如可以利用如下的形式來定義一個常量:final double PI=3.1315。在定義這個常量時,需要注意如下內容:   一是常

java定義常量和變數

        java沒有叫 全域性變數的東西(有全域性變數還叫OO嗎?);原因:Java將所有設計都基於物件的基礎上。Java的全域性變數只能對一個類內部而言。能夠在類內的任何地方使用的變數就是全域性變數,而只在某個特定的函式或者區域性的程式塊內使用的變數則是區域性變

java map常量定義 Java定義Map常量,List常量

https://www.cnblogs.com/leonxiaosi/p/6928604.html   Java中定義Map常量,List常量 一般的方式的使用靜態程式碼塊。比如:

java常量與變量學習記錄

進行 變量類型 過程 java OS 變化 邏輯 存儲 nal 常量的定義:程序運行過程中,其值不會發生變化(更準確的說是不可以發生變化)的量叫做常量。 常量的作用:簡單、直觀的描述一個東西,是變量的基礎,是程序運行的基礎。 常量分為兩大類:一類:原始值(不需要定義即可使用

PHP定義常量

amp ech spa family pub -s col div new PHP中定義常量的方式如下: define(常量名,常量值); //定義常量PUBLISHER define(‘PUBLISHER‘, "O‘Reilly & Associates");

Kotlin無法呼叫到Java定義的interface類的問題記錄

問題產生原因概述 一個kotlin類,呼叫一個Java類中的一個方法。引發了下面這個錯誤。 因為我在kotlin中呼叫了了java程式碼中定義的一個介面,然後就報錯一個IllegalAccessError錯誤。如下: E/AndroidRuntime: FATAL EXCE

Java定義一個二維陣列

public class Demo { /* * 二維陣列 * 1:定義,初始化 * int[][] arr2 = new int[3][3]; * 第1個3代表這個二維陣列是由3個一維陣列構成的 * 第2個3代表每個一維陣列的元素的個數有3個 * *

spring 在Java定義了變數ischeck,訪問時jsp報錯

可能是衝突了,把ischeck改成其他名稱就好了,我這裡把它改為了check package springForm.test; public class TestUser { private String name; private String password;

好好說說Java常量池之Class常量

在Java中,常量池的概念想必很多人都聽說過。這也是面試中比較常考的題目之一。在Java有關的面試題中,一般習慣通過String的有關問題來考察面試者對於常量池的知識的理解,幾道簡單的String面試題難倒了無數的開發者。所以說,常量池是Java體系中一個非常重

後端---Java常量池(字串常量池、class常量池和執行時常量池)

在Java的記憶體分配中,總共3種常量池: 在JDK1.7之前執行時常量池邏輯包含字串常量池存放在方法區, 此時hotspot虛擬機器對方法區的實現為永久代 在JDK1.7 字串常量池被從方法區拿到了堆中, 這裡沒有提到執行時常量池,也就是說字串常量池被單獨拿到堆,執行時常量池剩下

(轉載)Java字串常量和字串變數的區別

https://blog.csdn.net/u010617952/article/details/51781319         ava中字串物件建立有兩種形式,一種為字面量形式,如String str = "droid";,另一種就是使

JAVA常量

在變數前加上一個final關鍵字就是常量了。常量的宣告要大寫(業界的習慣),宣告之後只能賦值一次,這個值就是最終值,以後都不能改變的。例如:final int ABC=100;或者final I;I=100;注意:只能賦值一次,可以宣告常量時就賦值,也可以聲明瞭以後在去賦值。

JAVAString常量儲存在哪

String常量儲存在常量池內,常量池在記憶體中是以表的形式存在。有一張固定長度的CONSTANT_String_info用來儲存String常量。 常量池在編譯的時候確定下來,因此以下: String s1="hello"; String s2="hello"; Stri

java宣告常量為什麼要用static修飾

今天定義一個類常量,想著也只有這個類可以用到,就沒用static關鍵字修飾。結果sonar程式碼檢查提示:Rename this field "PERSON_TYPE_USER" to match the regular expression '^[a-z][a-zA-Z0-

Java字串常量和字串變數的區別

ava中字串物件建立有兩種形式,一種為字面量形式,如String str = "droid";,另一種就是使用new這種標準的構造物件的方法,如String str = new String("droid");,這兩種方式我們在程式碼編寫時都經常使用,尤其是字面量的方式。