java中的标识符和关键字_浅谈java中的标识符、修饰符和关键字
合法標識符
Java語言中,對于變量,常量,函數,語句塊均有名字,我們統統稱之為Java標識符.標識符是用來給類、對象、方法、變量、接口和自定義數據類型命名的。
組成:Java標識符由數字,字母和下劃線(_),美元符號($)組成(此處的字母并不局限于26個英文字母,而且可以包含中文字符、日文字符等)。Java語言支持Unicode6.2.0字符集,因此Java的標識符可以使用Unicode6.0.0所能表示的多種語言的字符。
標識符必須遵循以下規則
1.?標識符由26個英文字符大小寫(a~zA~Z)、數字(0~9)、下劃線(_)和美元符號($)組成。
2.?不能以數字開頭,不能是關鍵字,也不能包含空格。
3.?嚴格區分大小寫
4.?標識符的可以為任意長度
Java中的標識符命名規范
1.?包名:多個單詞組成時所有字母小寫(例:package??com.itcast)
2.?類名和接口:多個單詞組成時所有單詞的首字母大寫(例:HelloWorld)
3.?變量名和函數名:多個單詞組成時第一個單詞首字母小寫,其他單詞首字母大寫(例:lastAccessTime、getTime)。
4.?常量名:多個單詞組成時,字母全部大寫,多個單詞之間使用_分隔(例:INTEGER_CACHE)
注意:只是為了增加規范性、可讀性而做的一種約定,標識符在定義的時候最好見名知意,提高代碼閱讀性。
可以使用java自帶的函數判斷每行字符串是否可以作為JAVA語法的合法標識符,例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static boolean valid(String str)
{
if(Character.isJavaIdentifierStart(str.charAt(0)))
// 如果第一個字符是Java合法的標識符,進入if語句
{
for(int i=1; i
// 從第二個標識符開始,逐個遍歷
{
if(!Character.isJavaIdentifierPart(str.charAt(i)))
// 如果第i個標識符不是Java的合法標識符,返回false
{
return false;
}
}
// 如果標識符是合法的Java標識符,返回true
return true;
}
// 如果第一個字符不是Java合法的標識符,返回false
return false;
}
public static void main(String[] args) throws IOException ?{
/*
* BufferedReader對象只將回車看作輸入結束
* Scanner對象把回車,空格,tab鍵都看作輸入結束
*/
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
String text = buffer.readLine();
// 先讀取一行字符串
while(text != null){
// 讀取的字符串為空,則結束循環
System.out.println(valid(text));
text = buffer.readLine();
}
}
}
java修飾符
java提供了很多修飾符,主要分為以下兩類:
訪問修飾符
非訪問修飾符
修飾符用來定義類、方法或者變量,通常放在語句的最前端。
訪問控制修飾符
java中,可以使用訪問控制符來保護對象類、變量、方法和構造方法的訪問。
default?(即缺省,什么也不寫): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。
private?: 在同一類內可見。使用對象:變量、方法。?注意:不能修飾類(外部類)
public?: 對所有類可見。使用對象:類、接口、變量、方法
protected?: 對同一包內的類和所有子類可見。使用對象:變量、方法。?注意:不能修飾類(外部類)。
修飾符
當前類
同一包內
子孫類(同一包)
子孫類(不同包)
其他包
public
Y
Y
Y
Y
Y
protected
Y
Y
Y
N/Y
N
default
Y
Y
N
N
N
private
Y
N
N
N
N
1、類修飾符
訪問修飾符:公共類修飾符public
非訪問修飾符:抽象類修飾符 abstract、最終類修飾符 final
(1)公共類修飾符public:java語言中類的訪問控制符只有public即公共的,每個java程序有且只有一個類是public,其他外部類沒有訪問控制修飾符,具有包訪問性。
(2)抽象類修飾符abstract :用abstract 修飾的類稱為抽象類。
(3)最終類修飾符final:當一個類不能被繼承時可用修飾符final修飾為最終類。
(4)類缺省訪問控制符:如果一個類沒有訪問控制符,說明它具有缺省的訪問控制符特性。此時,這個類只能被同一個包中的類訪問或引用。這一訪問特性又稱為包訪問性。
2.方法修飾符
訪問控制修飾符:公共訪問控制符public、保護訪問控制符protected、缺省默認default、私有訪問控制符private。
非訪問控制符:抽象方法控制符abstract 、靜態方法控制符static 、最終方法控制符final 、本地方法控制符native 、同步方法控制符synchronized。
(1)抽象方法控制符 abstract :用修飾符 abstract 修飾的方法稱為抽象方法。抽象方法僅有方法頭,沒有方法體和操作實現。
(2)靜態方法控制符 static :用修飾符 static 修飾的方法稱為靜態方法。靜態方法是屬于整個類的類方法;而不使用static 修飾、限定的方法是屬于某個具體類對象的方法。 由于 static方法是屬于整個類的,所以它不能操縱和處理屬于某個對象的成員變量,而只能處理屬于整個類的成員變量,即 static 方法只能處理 static的域。
(3)最終方法控制符 final :用修飾符 final修飾的方法稱為最終方法。最終方法是功能和內部語句不能更改的方法,即最終方法不能重寫覆蓋。final固定了方法所具有的功能和操作,防止當前類的子類對父類關鍵方法的錯誤定義,保證了程序的安全性和正確性。所有被private 修飾符限定為私有的方法,以及所有包含在 final 類 ( 最終類) 中的方法,都被認為是最終方法。
(4)本地方法控制符 native :用修飾符 native 修飾的方法稱為本地方法。為了提高程序的運行速度,需要用其它的高級語言書寫程序的方法體,那么該方法可定義為本地方法用修飾符 native 來修飾。
(5)同步方法控制符 synchronized :該修飾符主要用于多線程程序中的協調和同步。
3.變量修飾符
訪問控制符:公共訪問控制符public 、保護訪問控制符protected 、缺省默認訪問控制符default、私有訪問控制符private
非訪問控制符:靜態域修飾符static 、最終域修飾符 final 、易失 ( 共享 ) 域修飾符volatile 、暫時性域修飾符transient
(1)公共訪問控制符 public :用 public 修飾的域稱為公共域。由于 public 修飾符會降低運行的安全性和數據的封裝性,所以一般應減少 public 域的使用。
(2)私有訪問控制符 private : 用 private 修飾的成員變量 ( 域 ) 只能被該類自身所訪問,而不能被任何其它類 (?包括子類?) 所引用。
(3)保護訪問控制符 protected :用 protected 修飾的成員變量可以被三種類所引用:①該類自身;②同一個包中的其它類;③其它包中的子類。使用修飾符 protected 的主要作用是允許其它包中的子類來訪問父類的特定屬性。
(4) 缺省默認修飾符 :沒有訪問控制修飾符或用修飾符 default修飾的成員變量可以被該類本身或同一包中的其他類訪問。
(5)靜態域修飾符 static :用 static修飾的成員變量僅屬于類的變量,而不屬于任何一個具體的對象。
(6)最終域修飾符 final :最終域修飾符 final 是用來定義常量的。一個類的域 ( 成員變量 ) 如果被修飾符 final 說明,則它的取值在程序的整個執行過程中都是不變的。
(7)易失 ( 共享 ) 域修飾符 volatile :易失 ( 共享 ) 域修飾符 volatile是用來說明這個成員變量可能被幾個線程所控制和修改。也就是說在程序運行過程中,這個成員變量有可能被其它的程序影響或改變它的取值。通常 volatile 用來修飾接受外部輸入的域。
8)暫時性域修飾符 transient :暫時性域修飾符 transient 用來定義一個暫時性變量。其特點是:用修飾符transient 限定的暫時性變量,將指定 Java虛擬機認定該暫時性變量不屬于永久狀態,以實現不同對象的存檔功能。否則,類中所有變量都是對象的永久狀態的一部分,存儲對象時必須同時保存這些變量。
本部分參考于作者老鼠愛大米的文章,原文:https://blog.csdn.net/u012723673/article/details/80613557。
java中的關鍵字
關鍵字是編程語言里事先定義好并賦予了特殊含義的的單詞,也稱保留字。Java中一個有53個關鍵字。
數據類型:
Boolean? ? int??? long??? short??? byte??? float??? double??? char??? class??? interface(接口)
Interface
用來定義一系列方法和常量,它可以被類實現,通過implements關鍵字。
流程控制:
if???? else??? do??? while??? for??? switch??? case??? default??? break??? continue??? return??? try (捕獲異常) ? catch(處理異常) ? ?finally(有沒有處理異常都執行)
Throw
運行用戶拋出一個exception對象,或者任何實現throwable的對象。
Throws
用在方法的聲明中用來說明哪些異常這個方法是不處理的,而是提交到程序的更高一層。
Return
用來結束一個方法的執行,,他后面可以跟一個方法聲明中要求的值。
Case
用來定義一組分支選擇,如果有某個值和switch中給出的值一樣,就會從該分支開始實行。
Try
用來定義一個可能拋出異常的語句塊。如果一個異常被拋出,一個可選的catch語句塊會處理try語句中拋出的異常。同時一個finally語句會被執行,無論異常是否被拋出。
Catch
用來聲明try語句中發生運行錯誤或非運行時異常時運行的一個塊。
修飾符:
public??? protected??? private??? final ? ?void???? static??? strictfp (嚴格 精確) ? ?abstract(抽象的) ? ? transient(短暫) ? synchronized(線程 同步) ? ? volatile(易失) ? ?native(本地)
Abstract
用在類的聲明中來指明一個類是不能實例化的,但是可以被其他類繼承。一個抽象類可以使用抽象的方法,抽象方法不需要被實現,但需要在子類中被實現。
Synchronized
線程同步。
Volatile
用在變量的聲明中表示這個變量是被同時運行的幾個線程異步修改的。
動作:
package ? ?import(引入) ? ? throw(拋出一個異常對象) ? ?throws (聲明一個異常對象 ?可能被拋出) ? ?extends(繼承) ? ?implements(實現) ? ?this(本類) ? ?super(父類 超類) ? ?instanceof(實例) ? ?new
Super
父類。
This
用來代表它出現的類的一個實例。This可訪問類變量或類方法。
參考于作者:國家一級鍵盤手操作表演藝術家,原文:https://blog.csdn.net/zianY/article/details/78738852
總結
以上是生活随笔為你收集整理的java中的标识符和关键字_浅谈java中的标识符、修饰符和关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中封装日期加时间_java日期处
- 下一篇: java从键盘输入数据斐波那契数_从键盘