抽象類可以擴展(添加子類),但不能直接實例化。
抽象方法不在聲明它的類中實現,但它必須在子類中被重寫。
-示例-
公共抽象類MyClass{}
公共抽象字符串my method();
-筆記-
使用abstract方法的類是抽象類,必須聲明為抽象類。
抽象類無法實例化。
抽象類的子類只有在實現其超類的所有抽象方法時才能被實例化。這種類稱為具體類,以區別於抽象類。
如果抽象類的子類沒有實現其超類的所有抽象方法,那麽它也是抽象類。
abstract關鍵字不能應用於static、private或final方法,因為這些方法不能被重寫,因此不能在子類中實現。
final類的方法不能是抽象的,因為final類不能有子類。布爾變量的值可以是真或假。
-示例-
boolean valid = true
如果(有效){
& lt語句& gt}
-筆記-
布爾變量只能有true或false值。
布爾值不能與數字類型相互轉換。
包含布爾操作數的表達式只能包含布爾操作數。
布爾類是布爾原語類型的包裝對象類。用於提前退出for、while或do循環,或者用於結束switch語句中的case塊。
-示例-
for(I = 0;我& ltmaxi++){
如果(& ltloopfinishedearly & gt){
打破;}}
inttype = & ltsomevalue & gt;
開關(類型){
case 1:& lt;語句& gt
打破;
情況2:& lt;語句& gt
打破;
默認值:
& lt語句& gt}
-筆記-
Break總是退出最深的while、for、do或switch語句。Byte是Java的基本類型。
Byte可以存儲[-128,127]範圍內的整數值。
-示例-
byteb = 124;
-筆記-
byte類是Byte原始類型的包裝對象類。它定義了MIN_VALUE和MAX_VALUE常量,表示這種類型的值的範圍。
Java中的所有整數值都是32位的int值,除非該值後面跟有l或l(比如235L),這意味著該值應該被解釋為long。用於標記switch語句中的每個分支。
-示例-
intarg = & ltsomevalue & gt;
開關(參數){
case 1:& lt;語句& gt
打破;
情況2:& lt;語句& gt
打破;
默認值:
& lt語句& gt
打破;}
-筆記-
case塊沒有隱式端點。break語句通常用在每個case塊的末尾,用於退出switch語句。
如果沒有break語句,執行流將進入所有後續的case和/或default塊。catch關鍵字用於在try-catch或try-catch-finally語句中定義異常處理塊。
-示例-
嘗試{
& lt可能拋出異常的塊& gt;
}
catch(& lt;Java.lang.Exception或子類>;e){
& lt用於處理異常的代碼e >:
}
嘗試{
& lt可能拋出其他異常的塊& gt;
}
catch(FooExceptione){
& lt用於處理FooExceptione >的代碼:
}
catch(barexception){
& lt處理BarExceptione >的代碼:
}
嘗試{
& lt可能拋出異常的塊& gt;
}
catch(& lt;Java.lang.Exception或子類>;e){
& lt用於處理異常的代碼e >:
}
最後{
& lt有無異常執行的語句>;
}
-筆記-
開始和結束標記{和}是catch子句語法的壹部分,即使該子句只包含壹個語句,這兩個標記也不能省略。
每個try塊必須至少有壹個catch或finally子句。
如果任何catch子句都沒有處理特定的異常類,異常將沿著調用堆棧遞歸傳播到下壹個關閉的try塊。如果在任何關閉的try塊中沒有捕獲到異常,Java解釋器將退出,並顯示壹條錯誤消息和堆棧跟蹤信息。Char是Java的壹種原始類型。
Char變量可以存儲Unicode字符。
-示例-
char delimiter =“;”;
-筆記-
您可以使用以下char常量:
\b空格
\f-換頁
\n換行
\r-輸入
\t-水平制表符
\ '-單引號
\ "-雙引號
\ "-反斜杠
-由xxx編碼的拉丁-1個字符。\x和\xx是合法形式,但它們可能會引起混淆。
\ UX xxxx-十六進制編碼的Unicode字符xxxx。
Character類包含壹些可用於處理char變量的靜態方法,包括isDigit()、isLetter()、isWhitespace()和toUpperCase()。
字符值沒有符號。class關鍵字用於聲明壹個新的Java類,它是相關變量和/或方法的集合。
類是面向對象編程方法的基本構造塊。類通常代表壹些實際的實體,比如幾何圖形或人。類是對象的模板。每個對象都是壹個類的實例。
要使用壹個類,通常用new運算符實例化該類的對象,然後調用該類的方法來訪問該類的函數。
-示例-
公共類矩形{
浮動寬度;
浮動高度;
公共矩形(floatw,floath){
寬度= w;
高度= h;
}
公共浮點getWidth(){
returnwidth
}
公共浮點getHeight(){
返回高度;
}
{ continue關鍵字用於跳轉到for、while或do循環的下壹個叠代。
-示例-
for(I = 0;我& ltmaxi++){
& lt語句& gt
如果(& lt完成這個叠代& gt){
繼續;
}
& lt語句& gt
}
-筆記-
Continue總是跳轉到最深的while、for或do語句的下壹個叠代。default關鍵字用於標記switch語句中的默認分支。
-示例-
intarg = & ltsomevalue & gt;
開關(參數){
案例1:
& lt語句& gt
打破;
案例2:
& lt語句& gt
打破;
默認值:
& lt語句& gt
打破;
}
-筆記-
默認塊沒有隱式端點。break語句通常用在每個case或default塊的末尾,以便在塊完成時退出switch語句。
如果沒有default語句,其參數與任何case塊都不匹配的switch語句將不會執行任何操作。do關鍵字用於指定壹個循環,在每次叠代結束時檢查該循環的條件。
-示例-
做{
& lt語句& gt
}
而(!發現);
-筆記-
Do循環體至少執行壹次。
條件表達式後面必須跟壹個分號。Double是Java的基本類型。
Double變量可以存儲雙精度浮點值。
-示例-
倍比= . 01;
雙徑= 6.15;
雙倍高度= 1.35 e03;//1.35*103或1350.0
雙倍高度= 1e-2;//1.0*10-2或0.01
-筆記-
因為浮點數據類型是實際值的近似值,所以通常沒有必要比較浮點值是否相等。
Java浮點值可以表示無窮大和NaN(非數字)。Double wrapper對象類用於定義常量MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY和NaN。在if-else語句中,else關鍵字總是與if關鍵字結合使用。else子句是可選的,如果if條件為false,則執行該子句。
-示例-
if(條件){
& lt語句& gt
}
否則{
& lt語句& gt
在類或接口聲明中使用} extends關鍵字來指示所聲明的類或接口是其名稱後跟extends關鍵字的類或接口的子類。
-示例-
公共類矩形擴展多邊形{
}
-筆記-
在上面的例子中,Rectangle類繼承了Polygon類的所有公共和受保護的變量和方法。
Rectangle類可以重寫Polygon類的任何非最終方法。
壹個類只能擴展另壹個類。false關鍵字表示布爾變量的兩個合法值之壹。
-示例-
布爾完整=假;final關鍵字可以應用於壹個類,表示該類不能擴展(不能有子類)。
final關鍵字可以應用於方法,以指示任何子類中的方法都不能被覆蓋。
-示例-
公共最終類MyFinalClass{
}
公共類MyClass{
公共最終字符串myFinal方法()
{
& lt語句& gt
}
}
-筆記-
壹個類不能同時是抽象的和最終的。Abstract表示類必須擴展,final表示類不能擴展。
方法不能同時是抽象的和最終的。Abstract表示方法必須被重寫,final表示方法不能被重寫。finally關鍵字用於定義壹個總是在try-catch-finally語句中執行的塊。
Finally塊通常包含清理代碼,以便在try塊部分執行後恢復正常操作。
-示例-
嘗試{
& lt可能拋出異常的塊& gt;
}
catch(& lt;Java.lang.Exception或子類>;e){
& lt用於處理異常的代碼e >:
}
最後{
& lt有無異常執行的語句>;
}
-筆記-
開始和結束標記{和}是finally子句語法的壹部分。即使子句只包含壹個語句,這兩個標記也不能省略。
每個try塊必須至少有壹個catch或finally子句。
如果執行try塊的任何部分,無論是否有異常,也無論try或catch塊是否包含return、continue或break語句,finally塊中的代碼都將被執行。
如果沒有異常發生,控件將跳過try塊,進入finally塊。
如果在try塊執行期間發生異常,並且相應的catch塊包含break、continue或return語句,則控件將首先通過finally塊,然後執行break、continue或return。Float是Java的壹種原始類型。
浮點變量可以存儲單精度浮點值。
-示例-
浮動比= . 01;
浮子直徑= 6.15;
浮動高度= 1.35 e03;//1.35*103或1350.0
浮動高度= 1e-2;//1.0*10-2或0.01
-筆記-
使用此關鍵字時,應遵循以下規則:
Java中的浮點文字總是默認為雙精度。若要指定單精度文字值,應在數值後添加f或f,如0.01f。
因為浮點數據類型是實際值的近似值,所以通常沒有必要比較浮點值是否相等。
Java浮點值可以表示無窮大和NaN(非數字)。浮點包裝器對象類用於定義常量MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY和NaN。for關鍵字用於指定壹個循環,該循環在每次叠代結束前檢查其條件。
-示例-
inti
for(I = 0;我& ltmaxi++){
& lt語句& gt
}
-筆記-
for語句的形式是for(initialize;條件;增量)
當控制流進入for語句時,initialize語句將執行壹次。
條件的結果將在每次執行循環體之前計算。如果條件為真,則執行循環體。
每次執行循環體後,increment語句將在計算下壹次叠代的條件之前執行。if關鍵字指示代碼塊的條件執行。條件的評估結果必須是布爾值。
-示例-
if(條件){
& lt語句& gt
}
if(條件){
& lt語句& gt
}
否則{
& lt語句& gt
}
-筆記-
if語句可以有壹個可選的else子句,該子句包含條件為false時將執行的代碼。
包含布爾操作數的表達式只能包含布爾操作數。implements關鍵字用在類聲明中,指示聲明的類提供在implements關鍵字後的名稱所指定的接口中聲明的所有方法的實現。
-示例-
公共類卡車工具車輛{
}
-筆記-
在上面的例子中,Truck類必須提供在IVehicle接口中聲明的所有方法的實現。
否則,卡車類將是獨立的;它可以聲明其他方法和變量,並擴展另壹個類。
壹個類可以實現多個接口。import關鍵字使包中的壹個或所有類在當前Java源文件中可見。可以引用沒有完全限定類名的導入類。
-示例-
import Java . io . file;
import Java . net . *;
-筆記-
當多個包包含同名的類時,很多Java程序員只使用特定的導入語句(沒有“*”)來避免不確定性。instanceof關鍵字用於確定對象所屬的類。
-示例-
TreeNode的節點實例){
& lt語句& gt
}
-筆記-
在上面的示例中,如果node是TreeNode類的實例或TreeNode子類的實例,則instanceof表達式的值將為true。Int是Java的基本類型。
Int變量可以存儲32位整數值。
-示例-
int number = 5;
int八進制數= 0377;
int十六進制數= 0xff
-筆記-
Integer類是原始類型int的包裝對象類。它定義了MIN_VALUE和MAX_VALUE常量,表示這種類型的值的範圍。
Java中的所有整數值都是32位的int值,除非該值後面跟有l或l(比如235L),這意味著該值應該被解釋為long。interface關鍵字用於聲明壹個新的Java接口,它是方法的集合。
接口是Java語言的壹個強大功能。任何類都可以聲明它實現了壹個或多個接口,這意味著它實現了這些接口中定義的所有方法。
-示例-
公共接口IPolygon{
公共float get area();
public int getNumberOfSides();
public int get circumference();
}
-筆記-
任何實現接口的類都必須提供該接口中所有方法的實現。
壹個類可以實現多個接口。Long是壹種Java基本類型。
長變量可以存儲64位有符號整數。
-示例-
longnumber = 5;
longanotherNumber = 34590L
longoctalNumber = 0377
longhexNumber = 0xffl
-筆記-
long類是Long原始類型的包裝對象類。它定義了MIN_VALUE和MAX_VALUE常量,表示這種類型的值的範圍。
Java中的所有整數值都是32位的int值,除非該值後面跟有l或l(比如235L),這意味著該值應該被解釋為long。native關鍵字可以應用於壹個方法,以指示該方法是用Java以外的語言實現的。
-示例-
本機字符串getProcessorType();
-筆記-
本機方法超出了本文檔的範圍。new關鍵字用於創建類的新實例。
-示例-
字符串sName = new String();
Float fVal =新浮點數(0.15);
-筆記-
new關鍵字後面的參數必須是類名,類名後面必須跟壹組構造函數參數(必須在括號內)。
參數集合必須與類的構造函數的簽名匹配。
=左側變量的類型必須與要實例化的類或接口具有賦值兼容性。Null是Java中的保留字,意思是沒有值。
-示例-
因特格裏;
i = null
弦樂;
如果(s!=null){
& lt語句& gt
}
-筆記-
將null賦給非原始變量相當於釋放該變量以前引用的對象。
不能將null賦給原始類型(byte、short、int、long、char、float、double、boolean)的變量。package關鍵字指定Java源文件中聲明的類所在的Java包。
-示例-
包com.mycompany
公共類MyClass{
}
-筆記-
package語句(如果出現的話)必須是Java源文件中的第壹個非註釋文本。
在上面的示例中,MyClass類的完全限定類名是com.mycompany.MyClass
如果Java源文件不包含package語句,文件中定義的類將位於“默認包”中。請註意,不能從非默認包中的類引用默認包中的類。private關鍵字是壹個訪問控制修飾符,可以應用於類、方法或字段(在類中聲明的變量)。
-示例-
公共類MyPublicClass{
私有類MyPrivateClass{
}
private int I;
私有字符串myMethod(){
& lt語句& gt
}
}
-筆記-
私有類、方法或字段只能在聲明它們的類中引用。它們在類外或子類中是不可見的。
所有類成員的默認訪問範圍是包訪問,也就是說,除非有特定的訪問控制修飾符,否則可以從同壹包中的任何類訪問類成員。protected關鍵字是壹個訪問控制修飾符,可以應用於類、方法或字段(在類中聲明的變量)。
-示例-
公共類MyPublicClass{
受保護的類MyPrivateClass{
}
protected int I;
受保護的StringmyMethod(){
& lt語句& gt
}
}
-筆記-
您可以在聲明受保護的類、方法或字段的類中、同壹包中的任何其他類中以及任何子類中引用它們,而不管該子類是在哪個包中聲明的。
所有類成員的默認訪問範圍是包訪問,也就是說,除非有特定的訪問控制修飾符,否則可以從同壹包中的任何類訪問類成員。public關鍵字是壹個訪問控制修飾符,可以應用於類、方法或字段(類中聲明的變量)。
-示例-
公共類MyPublicClass{
公共類MyPrivateClass{
}
publicinti
公共字符串myMethod(){
& lt語句& gt
}
}
-筆記-
公共類、方法或字段只能在任何其他類或包中引用。
所有類成員的默認訪問範圍是包訪問,也就是說,除非有特定的訪問控制修飾符,否則可以從同壹包中的任何類訪問類成員。return關鍵字使壹個方法返回到調用它的方法,傳遞壹個與返回方法的返回類型相匹配的值。
-示例-
public void myVoidMethod(){
& lt語句& gt
返回;
}
公共字符串myStringMethod(){
Strings = " myresponse
退貨;
}
public int myIntMethod(){
inti = 5;
返回(壹);
}
-筆記-
如果該方法的返回類型不是void,則return語句必須具有相同或兼容類型的參數。
返回值兩邊的括號是可選的。Short是Java的壹種原始類型。
短變量可以存儲16個有符號整數。
-示例-
短數= 5;
短八進制數= 0077;
短hexNumber = 0xff
-筆記-
short類是Short原始類型的包裝對象類。它定義了MIN_VALUE和MAX_VALUE常量,表示這種類型的值的範圍。
Java中的所有整數值都是32位的int值,除非該值後面跟有l或l(比如235L),這意味著該值應該被解釋為long。static關鍵字可以應用於內部類(在另壹個類中定義的類)、方法或字段(類的成員變量)。
-示例-
公共類MyPublicClass{
public final static int MAX _ OBJECTS = 100;
static int _ num objects = 0;
靜態類MyStaticClass{
}
靜態int getNumObjects(){
}
}
-筆記-
通常,static關鍵字意味著應用該關鍵字的實體在聲明該實體的類的任何特定實例之外都是可用的。
靜態類可以被其他類實例化和引用(即使它是頂級類)。在上面的例子中,另壹個類中的代碼可以通過用包含它的類名限定它的名稱來實例化MyStaticClass,例如MyClass.MyStaticClass。
靜態字段(類的成員變量)在類的所有實例中只存在壹次。
您可以從類外部調用靜態方法,而無需首先實例化該類。這種引用總是包含類名作為方法調用的限定符。在上面的示例中,MyClass外部的代碼以MyClass.getNumObjects()的形式調用getNumObjects()靜態方法。
模式:
publicfinalstatic & lttype & gtvarName = & lt值& gt;
通常用於聲明可在類外使用的類常數。當引用這樣的類常量時,需要用類名來限定。在上面的例子中,另壹個類可以引用MyClass形式的MAX_OBJECTS常量。MAX _ OBJECTS super關鍵字用於引用使用該關鍵字的類的超類。
-示例-
公共類MyClass{
公共MyClass(Stringarg){
超級(arg);
}
公共字符串myStringMethod(){
返回super.other字符串方法();
}
}
-筆記-
作為獨立語句出現的Super,意思是調用超類的構造函數。
超級棒。& ltmethodName & gt()意味著調用超類的方法。只有當您希望調用在該類中被重寫的方法,以便指定應該在超類中調用該方法時,才需要使用這種用法。switch語句用於根據表達式選擇和執行多個代碼塊中的壹個。
-示例-
intarg = & ltsomevalue & gt;
開關(參數){
案例1:
& lt語句& gt
打破;
案例2:
& lt語句& gt
打破;
默認值:
& lt語句& gt
打破;
}
chararg = & ltsomevalue & gt;
開關(參數){
案例“y”:
案例“y”:
& lt語句& gt
打破;
案例“n”:
案例“n”:
& lt語句& gt
打破;
默認值:
& lt語句& gt
打破;
}
-筆記-
switch條件的結果必須等於byte、char、short或int,可以是jdk1.7之後的字符串。
case塊沒有隱式端點。break語句通常用在每個case塊的末尾,用於退出switch語句。
如果沒有break語句,執行流將進入所有後續的case和/或default塊。synchronized關鍵字可以應用於方法或語句塊,並為壹次只能由壹個線程執行的關鍵代碼段提供保護。
-示例-
公共類MyClass{
公共同步靜態字符串mySyncStaticMethod(){
}
公共同步字符串mySyncMethod(){
}
}
公共類MyOtherClass{
Object someObj
公共字符串myMethod(){
& lt語句& gt
同步(someObj){
& lt語句saffectingsomeObj & gt
}
}
}
-筆記-
synchronized關鍵字可以防止代碼的關鍵代碼段被多個線程同時執行。
如果將其應用於靜態方法(以上示例中的MySyncStaticMethod),當該方法壹次由壹個線程執行時,整個類將被鎖定。
如果應用於實例方法(上面示例中的MySyncMethod),當壹次壹個線程訪問該方法時,實例將被鎖定。
如果應用於對象或數組,當關聯的代碼塊壹次由壹個線程執行時,該對象或數組將被鎖定。this關鍵字用於引用當前實例。
-示例-
公共類MyClass{
int數;
公共MyClass(intnumber){
this.number =數字;
}
}
-筆記-
當引用可能不明確時,可以使用此關鍵字來引用當前實例。
在上面的例子中,構造函數的參數號與類的成員變量同名。This.number顯式表示MyClass的這個實例的number成員變量。throw關鍵字用於引發異常。
-示例-
導入Java . io . io exception;
公共類MyClass{
公共方法readFile(Stringfilename)引發IO異常{
& lt語句& gt
如果(錯誤){
拋出新的IO異常(" errorreadingfile ");
}
}
}
-筆記-
throw語句將java.lang.Throwable作為參數。Throwable在調用堆棧中向上傳播,直到被適當的catch塊捕獲。
任何拋出非RuntimeException異常的方法都必須在方法聲明中使用throws修飾符來聲明它所拋出的異常。throws關鍵字可應用於方法,以指示該方法引發了特定類型的異常。
-示例-
導入Java . io . io exception;
公共類MyClass{
公共方法readFile(string filename)throwsio exception {
& lt語句& gt
如果(錯誤){
拋出新的IO異常(" errorreadingfile ");
}
}
}
-筆記-
Throws關鍵字以逗號分隔的java.lang.Throwables列表作為參數。
任何拋出非RuntimeException異常的方法都必須在方法聲明中使用throws修飾符來聲明它所拋出的異常。
若要在try-catch塊中包含對帶有throws子句的方法的調用,必須提供該方法的調用方。transient關鍵字可應用於類的成員變量,以指示當包含該成員變量的類實例已被序列化時,該成員變量不應被序列化。
-示例-
公共類MyClass{
私有臨時字符串密碼;
{ try關鍵字用於包含可能引發異常的語句塊。
-示例-
嘗試{
& lt可能拋出異常的塊& gt;
}
catch(& lt;Java.lang.Exception或子類>;e){
& lt用於處理異常的代碼e >:
}
嘗試{
& lt可能拋出其他異常的塊& gt;
}
catch(FooExceptione){
& lt用於處理FooExceptione >的代碼:
}
catch(barexception){
& lt處理BarExceptione >的代碼:
}
嘗試{
& lt可能拋出異常的塊& gt;
}
catch(& lt;Java.lang.Exception或子類>;e){
& lt用於處理異常的代碼e >:
}
最後{
& lt有無異常執行的語句>;
}
-筆記-
每個try塊必須至少有壹個catch或finally子句。
如果任何catch子句都沒有處理特定的異常類,異常將沿著調用堆棧遞歸傳播到下壹個關閉的try塊。如果在任何關閉的try塊中沒有捕獲到異常,Java解釋器將退出,並顯示壹條錯誤消息和堆棧跟蹤信息。true關鍵字表示布爾變量的兩個合法值之壹。
-示例-
布爾完成=真;Void關鍵字指示空類型。
-示例-
公共類MyClass{
public void do Something(){
& lt語句& gt
返回;
}
}
-筆記-
Void可以用作方法的返回類型,以指示該方法不返回值。volatile關鍵字用於表示可以由多個線程異步修改的成員變量。
註意:volatile關鍵字在許多Java虛擬機中沒有實現。
-示例-
公共類MyClass{
volatile int共享值;
}
-筆記-
volatile的目標是確保所有線程看到指定變量的相同值。while關鍵字用於指定壹個循環,只要條件為真,該循環就會重復。
-示例-
而(!找到){
& lt語句& gt
}