JAVA基礎知識 轉載至:http://www.runoob.com/java/java-variable-types.html 對菜鳥教程進行核心整理: 一、JAVA理論概念 1、基礎概念 Java作為一種面向對象語言主要特性概念如下 介面:介面可理解為對象間相互通信的協議。介面在繼承中扮演著很重 ...
JAVA基礎知識
轉載至:http://www.runoob.com/java/java-variable-types.html
對菜鳥教程進行核心整理:
一、JAVA理論概念
1、基礎概念
Java作為一種面向對象語言主要特性概念如下
-
介面:介面可理解為對象間相互通信的協議。介面在繼承中扮演著很重要的角色。(可多繼承)介面只定義派生要用到的方法,但是方法的具體實現完全取決於派生類。
1、多態:前提是繼承,不同類對同一消息作出響應。解決應用程式重名問題,參數化多態和包含多態。
2、繼承:增加類的可重用性,一個類可以由其他類派生。如果你要創建一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新創建的類繼承該類。
利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些代碼。被繼承的類稱為超類(super class),派生類稱為子類(subclass)。
3、封裝:把過程和數據包圍保護(private),通過受保護介面訪問其它對象
4、抽象:忽略主題無關,更加註意主旨,拋棄細節,有過程抽象(函數),數據抽象(數據類型)
5、類:類是一個模板,它描述一類對象的行為和狀態。
6、對象:對象是類的一個實例,有狀態和行為。例如,一條狗是一個對象,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
7、實例:每個對象都有獨特的實例變數,對象的狀態由這些實例變數的值決定
8、方法:方法就是行為,一個類可以有很多方法。邏輯運算、數據修改以及所有動作都是在方法中完成的。
9、重載:同一類中有倆個以上相同的方法名,但參數不同,方法不同。
2、Java變數
- 局部變數:在方法、構造方法或者語句塊中定義的變數被稱為局部變數。變數聲明和初始化都是在方法中,方法結束後,變數就會自動銷毀。
- 成員變數:成員變數是定義在類中,方法體之外的變數。這種變數在創建對象的時候實例化。成員變數可以被類中方法、構造方法和特定類的語句塊訪問。(主方法之外)
- 類變數:類變數也聲明在類中,方法體之外,但必須聲明為static類型。
需要註意的地方:(JAVA關鍵字也不能在類名或者方法使用。)
3、命名規則:
1、見名釋義
2、不跟關鍵字和保留字衝突
3、駝峰原則,類名和介面名首字母大寫(大駝峰規則) 常量名大寫下劃線分開 變數名,方法名(小駝峰規則)首字母小寫,第二個單詞大寫
- 大小寫敏感:Java是大小寫敏感的,這就意味著標識符Hello與hello是不同的。
- 類名:對於所有的類來說,類名的首字母應該大寫。如果類名由若幹單片語成,那麼每個單詞的首字母應該大寫,例如 MyFirstJavaClass 。
- 方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若幹單詞,則後面的每個單詞首字母大寫。
- 源文件名:源文件名必須和類名相同。當保存文件的時候,你應該使用類名作為文件名保存(切記Java是大小寫敏感的),文件名的尾碼為.java。(如果文件名和類名不相同則會導致編譯錯誤)。
- 主方法入口:所有的Java 程式由public static void main(String []args)方法開始執行。
4、JAVA兩類修飾符:
- 訪問控制修飾符 : default, public , protected, private
- 非訪問控制修飾符 : final, abstract, static, synchronized
5、Java數組
數組是儲存在堆上的對象,可以保存多個同類型變數。在後面的章節中,我們將會學到如何聲明、構造以及初始化一個數組。
6、Java枚舉
枚舉限制變數只能是預先設定好的值。使用枚舉可以減少代碼中的bug。
註釋: // 這是單行註釋的示例 /* 這個也是單行註釋的示例 */
/* 這是第一個Java程式
這是一個多行註釋的示例 */
7、構造方法和重載以及重寫
重寫是子方法覆蓋父類方法、要求方法名和參數相同;(前提是繼承)
重載是同一類中有倆個以上相同的方法名,但參數不同,方法不同。
構造函數是重載的一種,最大的作用是創建對象完成初始化。每個類都有構造方法。如果沒有顯式地為類定義構造方法,Java編譯器將會為該類提供一個預設構造方法。在創建一個對象的時候,至少要調用一個構造方法。構造方法的名稱必須與類同名,一個類可以有多個構造方法。
8、創建對象
- 聲明:聲明一個對象,包括對象名稱和對象類型。
- 實例化:使用關鍵字new來創建一個對象。
- 初始化:使用new創建對象時,會調用構造方法初始化對象。
Puppy myPuppy = new Puppy( "tommy" );/* 實例化對象 */ ObjectReference = new Constructor();
/* 訪問類中的變數 */ ObjectReference.variableName; /* 訪問類中的方法 */ ObjectReference.methodName();
二、基本數據類型
1、內置數據類型
Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字元類型,還有一種布爾型。
1、byte
2、short
3、int
4、long
5、float
6、double
7、boolean
8、char
相應的封裝方法
System.out.println("基本類型:byte 二進位位數:" + Byte.SIZE);
System.out.println("包裝類:java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
2、引用數據類型
在Java中,引用類型的變數非常類似於C/C++的指針。引用類型指向一個對象,指向對象的變數是引用變數。這些變數在聲明時被指定為一個特定的類型,比如 Employee、Puppy 等。變數一旦聲明後,類型就不能被改變了。
對象、數組都是引用數據類型。
所有引用類型的預設值都是null。
一個引用變數可以用來引用任何與之相容的類型。
3、JAVA常量
常量在程式運行時是不能被修改的。
在 Java 中使用 final 關鍵字來修飾常量,聲明方式和變數類似:
final double PI = 3.1415927;
三、自動類型轉換
整型、實型(常量)、字元型數據可以混合運算。運算中,不同類型的數據先轉化為同一類型,然後進行運算。
byte,short,char—> int —> long—> float —> double
轉換的規則:
1. 不能對boolean類型進行類型轉換。
2. 不能把對象類型轉換成不相關類的對象。
3. 在把容量大的類型轉換為容量小的類型時必須使用強制類型轉換。
4. 轉換過程中可能導致溢出或損失精度
5. 浮點數到整數的轉換是通過捨棄小數得到
強轉可能丟失精度:
int強轉成float,long強轉成float,long強轉成double可能出現精度損失。