java 小知識集錦
建立物件:new 例: Test t=new Test();
隨機數:random
布林值:boolean 返回值型別為true 或false
例:Integer a=new Integer(12);
Integer b=new Integer(12);
System.out.println(a==b);//返回布林值
equals() :引用比較
例:System.out.println(a.equals(b)); //返回布林值
導包:import java.util.Scanner; import java.util.*;
java註釋:
//單行註釋
/*
多行註釋
*/
/**
文件註釋
*/
識別符號的命名規範:
字母、數字、下劃線"_" "$"
不能為數字開頭,只能以字母、_、$開始
特殊符號 $ _
嚴格區分大小寫
不要與關鍵字衝突
駝峰法
類名:首字母大寫
------------------------------------------------------------
變數:變數是記憶體(堆疊)中的一塊儲存區域,是儲存資料的基本單元;
如何宣告變數:
資料型別 變數名;
如何賦值:
變數名 = 值;
宣告變數並賦值
資料型別 變數名 =值;
------------------------------------------------------------
\t :表示製表符,即顯示一個空格
類:具有相同特點和行為的一組事物的集合
物件:具有具體的特點和行為的事物
物件就是類的具體表現形式
類是物件的模板
------------------------------------------------------------
oop
構造方法:
例項化物件
new
有虛擬機器自動呼叫的,所以一般public
訪問許可權 類名(){
}
類名 物件名 = new 構造方法();
類中預設自帶一個無引數的構造方法
一旦類中定義了帶引數的構造方法,那麼無引數的構造方法消失。要使用必須顯示錶示
最佳實踐:
一個帶所有引數的構造方法和不帶引數的構造方法
this:當前物件本身
------------------------------------------------------------
過載:
引數的個數不同
型別不同
型別的順序不同
方法名相同
作用於同一作用域
static:
修飾變數--》靜態變數 --》歸屬類 類名.變數名
修飾方法 --》靜態方法 類名.方法名相同
static{ //類定義載入的時候被執行,且在例項化之前
}
{ //程式碼塊,每次在例項化物件之前被呼叫
}
package: com.yc.XX; 包名小寫 程式碼的第一行位置
import com.yc.xx.Test;
------------------------------------------------------------
繼承:
繼承是利用現有的類建立新類的過程,
現有的類稱作基類(或父類),
建立的新類稱作派生類(子類)。
繼承語法:
extends
訪問許可權 class 子類名 extends 父類名{
//子類繼承父類中非私有的屬性和方法
//子類可以擁有自己特有的方法和屬性
//子類可以重寫父類中的方法
//子類物件訪問父類中的方法,如果該方法被子類重寫,那麼子類物件訪問的是重寫之後的方法
}
------------------------------------------------------------
Java:只允許單繼承
super:
1.表示父類物件本身
2.作為父類的構造方法存在
super(引數列表);
訪問許可權:
public :公共的,不受限制,本類或他類都可以訪問
protected:受保護的 ,包內友好,父子友好
預設的:沒有任何許可權修飾符 int id ; 包內友好
private:本類中訪問
public: 所有類
protected:包內友好 父子友好
預設的 :包內友好
private :本類訪問
final: 最終的
修飾的變數就是常量
修飾類: 最終類 不能被繼承
修飾方法: 最終的方法 不可以重寫
引用轉型:
父類引用指向子類物件
BasicClass c = new SonClass();
------------------------------------------------------------
多型:便於擴充套件
使用父類的引用,呼叫同一個名稱的方法,可以得到不同的
呼叫結果,這就是java中的多型。即:同一函式,多種形態
多型包括:
動態多型(重寫):執行時多型,在執行時才確定呼叫哪個方法
必須要有繼承的存在
子類必須重寫父類中的該方法
必須由父類的引用指向子類的物件,並且是通過父類的引用呼叫被重寫的方法
靜態多型(過載):編譯多型,在編譯時決定呼叫哪個方法
只要構成了過載,形成了靜態多型的條件
靜態多型與是否發生繼承沒有必然聯絡
new誰呼叫誰只針對於方法,對於屬性而言,引用名是誰就調誰的屬性
在某些情況下,父類中無法(或沒有必要)提供被覆蓋方法的具體實現,
那麼可以將此方法宣告為抽象方法
使用關鍵字 abstract
[訪問許可權] abstract 返回值型別 方法名(形參列表);
抽象類:如果某個類中包含有抽象方法,那麼該類必須定義為抽象類
[訪問許可權] abstract class 類名{
}
注意事項:
抽象類不可以直接例項化,只可以用來繼承
抽象類的派生子類應該提供對其所有抽象方法的具體實現
如果抽象類的派生子類沒有實現其中所有的抽象方法,那麼該派生子類仍然是一個抽象類,
只能繼承,不能例項化
抽象類中可以包含非抽象的方法,
構造方法和靜態方法不可以修飾為 abstract
在某個類中所有的方法都是抽象方法時,可以考慮將該類定義為介面
interface :
[訪問許可權] interface 介面名{
//成員列表
}
實現介面:
與抽象類相似,不可以例項化,只能用於實現
實現介面的關鍵字:implements
[訪問許可權] class 實現類名 implements 介面名{
//成員列表
}
------------------------------------------------------------