1. 程式人生 > >java中定義常量和C#中定義常量的區別

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

一、常量定義的基本注意事項。

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

  一是常量在定義的時候,就需要對常量進行初始化。也就是說,必須要在常量宣告時對其進行初始化。都跟區域性變數或者成員變數不同。當在常量定義的 時候初始化過後,在應用程式中就無法再次對這個常量進行賦值。如果強行賦值的話,資料庫會跳出錯誤資訊,並拒絕接受這一個新的值。()

  二是final關鍵字使用的範圍。這個final關鍵字不僅可以用來修飾基本資料型別的常量,還可以用來修飾物件的引用或者方法。如陣列就是一 個物件引用。為此可以使用final關鍵字來定義一個常量的陣列。這就是Java語言中一個很大的特色。一旦一個數組物件被final關鍵字設定為常量數 組之後,它只能夠恆定的指向一個數組物件,無法將其改變指向另外一個物件,也無法更改陣列()中的值。

  三是需要注意常量的命名規則。不同的語言,在定義變數或者常量的時候,都有自己一套編碼規則。這主要是為了提高程式碼的共享程度與提高程式碼的易讀 性。在Java語言中,定義常量的時候,也有自己的一套規則。如在給常量取名的時候,一般都用大寫字元。在Java語言中,大小寫字元是敏感的。之所以採 用大寫字元,主要是跟變數進行區分。雖然說給常量取名時採用小寫字元,也不會有語法上的錯誤。但是,為了在編寫程式碼時能夠一目瞭然的判斷變數與常量,最好 還是能夠將常量設定為大寫字元。另外,在常量中,往往通過下劃線來分隔不同的字元。而不想物件名或者類名那樣,通過首字元大寫的方式來進行分隔。這些規則 雖然不是強制性的規則,但是為了提高程式碼友好性,方便開發團隊中的其他成員閱讀,這些規則還是需要遵守的。沒有規矩,不成方圓。

  總之,Java開發人員需要注意,被定義為final的常量需要採用大寫字母命名,並且中間最好使用下劃線作為分隔符來進行連線多個單詞。在定義final的資料不論是常量、物件引用還是陣列,在主函式中都不可以改變。否則的話,會被編輯器拒絕並提示錯誤資訊。

  二、Final關鍵字與static關鍵字同時使用。

  由於Javal是面向物件的語言,所以在定義常量的時候還有與其它程式語言不同的地方。如一段程式程式碼從編輯到最後執行,即使需要經過兩個過程,分別為程式碼的裝載與物件的建立。不同的過程對於常量的影響是不同的。現在假設有如下的程式碼:

  Private static Random rd1=new Random(); //例項化一個隨機數生成物件。

  Private final int int1=rd1.nestInt(10); //生成隨機數並賦值給常量int1

  Private static final int int2=rd1.nestInt(10); //生成隨機數並賦值給常量int2

  這上面的語句的大致含義是,通過Java語言提供的隨機數類物件,生成隨機數。並把生成的隨機數賦值給常量int1與int2。細心的讀者會發 現,雖然同樣是賦值語句,但是以上兩個語句中有一個細小的差別,即在第二條語句中多了一個關鍵字static。關於關鍵字的用途,筆者在以前的文章中也有 談到過。這個是一個靜態的概念。即當利用這個關鍵字來修飾一個變數的時候,在建立物件之前就會為這個變數在記憶體中建立一個儲存空間。以後建立對物件如果需 要用到這個靜態變數,那麼就會共享這一個變數的儲存空間。也就是說,在建立物件的時候,如果用到這個變數,那麼系統不會為其再分配一個儲存空間,而只是將 這個記憶體儲存空間的地址賦值給他。如此做的好處就是可以讓多個物件採用相同的初始變數。當需要改變多個物件中變數值的時候,只需要改變一次即可。從這個特 性上來說,其跟常量的作用比較類似。不過其並不能夠取代常量的作用。

PS:C#中定義常量只需用const關鍵字即可

相關推薦

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

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

原來Java的繼承C#的繼承是不一樣的

因為之前在學校裡學的是Java,C#是自學的,一直感覺Java和C#就像是孿生兄弟,不過今天才發現原來Java中的繼承和C#中的繼承還是有點不一樣的 在Java中子類繼承父類的方法,如果在子類重新定義了父類方法的實現,那麼這個過程就是重寫,且只能是重寫,而在C

java的引用C++的指標的區別

1.型別:引用其值為地址的資料元素,java封裝了的地址,可以轉成字串檢視,長度可以不必關心。C++指標是一個裝地址的變數,長度一般是計算機字長,可以認為是個int。 2.所佔記憶體: 引用宣告時沒有實體,不佔空間。C++指標如果聲明後會用到才會賦值,如果用不到不會分配記憶體

面試題5——C的mallocC++的new有什麼區別

malloc和new有以下區別: (1)new,delete是操作符,只能在C++中使用; (2)malloc,free是函式,可以覆蓋,C,C++中都可以使用; (3)new可以呼叫物件的建構函式,對應的delete呼叫相應的解構函式; (4)malloc僅僅分配記憶體,free僅僅回收記

17、C#常量結構的定義與使用

c3在C#裏面,常量指的是固定不變的量。這個常量可以是數值型、文本型或布爾型。例如: //定義常量 const int AGE=16; const string NAME="小紅"; const bool FLAG=true;

OraclePL/SQL之常量變數的定義、遊標(游標)的使用

PL/SQL常量和變數的定義 變數的資料型別:char、varchar2、date、number、boolean、long 常量定義:isshow boolean :=true; 說明變數:說明變數名、資料型別和長度後用分號結束說明語句。例:e_name varchar2(20);

C++,類函式分開定義宣告實現的方法

test.hpp #include <map> #include <queue> #include <string> #include <vector&g

javac#String

語句 end sql string light pre col 逗號 builder java中: c#中: 1.拼接字符串 sql語句中 in() str="‘001‘,‘002‘,‘003‘";至於產生string就這樣 str1="‘001‘";str2

Helper 類在JavaC 的設計

                Java有三個選擇1)採用普通的類有公有建構函式,沒有成員變數,提供了很多成員函式作為方法,呼叫程式碼如下:Helper helper = new Helper();helper.f1();這種方法的缺點是建立物件的開銷是不必要的,我們知道建立物件意味著,首先要分配記憶體,然後

[C++] C++的巨集定義詳解 C++巨集定義詳解

轉載自:C++中的巨集定義 和 C++巨集定義詳解 一、#define解析     #define是C語言中提供的巨集定義命令,其主要目的是為程式設計師在程式設計時提供一定的方便,並能在一定程度上提高程式的執行效率,但學生在學習時往往不能 理解該

關於javac++布林量的比較

在c++中允許 bool 量和 int 整形常量相互轉換,並且用cout<<true; 在控制檯上可以輸出為 1 int main(int argc, _TCHAR* argv[]) { int num = 0; int total = 2; bool

CC++經const修飾的常量、常變數普通變數的區別

1.在C89標準下的const const 修飾的型別是一個常變數,不能作為陣列的下標。常變數不能作為左值。 如: const int a = 10; int b = a; //其編譯的過程和一般變數編譯的過程相同 //並不會把引用符號的地方替換為對應的資

JavaC#3DES的加密與解密

最近在工作中遇到將Java環境的一個使用者ID用表單形式傳遞給.net環境做校驗,考慮到不能將使用者ID作為明文傳遞,因此利用簡單的3DES進行加密解密操作。 需要注意的就是: (1)兩種環境下3DES加密解密的一致性問題:C#會對解密生成的byte在不滿足長度16時,自動

JavaenumC#的異同

3、所有列舉類都繼承了Enum的方法,下面我們詳細介紹這些方法。        (1)  ordinal()方法: 返回列舉值在列舉類種的順序。這個順序根據列舉值宣告的順序而定。                Color.RED.ordinal();  //返回結果:0                Colo

Xcode自定義.h.m檔案的個性化註釋(公司、版本、作者、版權宣告等)

每個iOS開發者新建class檔案的時候都可以看到檔案最上面宣告的一些基本資訊。而這些資訊都是預設的,我們現在就要來自定義這些資訊。新增一些自己想要新增的,比如Github連結等等。 1.下面為預設的資訊 // // VideoCell.m // W

CC++全域性變數,區域性變數,靜態變數常量

最近在Leecode上見到很多關於靜態變數,常量,全域性變數等相關的題,於是結合一些Leecode例題和《C++程式設計思想》整理了這篇部落格,詳細解釋了下它們的區別和用法。 1. 全域性變數    全域性變數是在所有函式體的外部定義的,程式的所有部分(其他檔案的程式碼

javac#的String equals == 比較

     public boolean equals(Object anObject) {         if (this == anObject) {            return true;         }         if (anObject instanceof String) {  

JavaC++自增的區別

Java和C++對i++自增操作符的處理是不同的,JAVA是在記憶體中複製一份i值的拷貝再運算,而C++中是直接在原值上運算。 int i = 0; i = i++; 在java中i=i++的運算實質是先執行在記憶體中複製一份i的拷貝再i++

Helper 類在JavaC++的設計

vat 類繼承 font 規範 per 公有 函數 解決 ava Java 有三個選擇 1)采用普通的類 有公有構造函數,沒有成員變量,提供了很多成員函數作為方法,調用代碼如下: Helper helper = new Helper(); helper.f1(

android 按鍵對映qwerty.kl檔案的WAKEWAKE_DROPPED的定義

android系統中,獲取到鍵盤的鍵值後,會搜尋/system/usr/keylayout/gpio-keys.kl這個檔案 key 115   VOLUME_UP         WAKE_DROPPED key 114   VOLUME_DOWN       WAK