java面向對象的一些知識和概念

1.
所有的java程序都以類出class爲組織單元
類是模子,類中定義確定對象的屬性(特徵)和方法(行爲)
類由屬性和方法組成
定義類的示例
pubilc class 類名{
//定義屬性(成員變量)
屬性類型 屬性1
...
屬性類型 屬性n
//定義類的方法(說明類是用來幹什麼的)
方法1
...
方法n
}
2.
創建對象的方法
類名 對象名=new 類名();(new 類名()相當與對類進行實例化)
對象名.屬性可以對類的屬性賦值或者其他操作
對象名.方法()可以對類中的方法進行調用
3.
成員變量與局部變量
成員變量定義在類中,可以被整個類中使用包括類中的方法或與其相關的類中使用(系統自動賦予初始值)
局部變量定義在類的方法中作用域僅僅是方法的開始到結束(系統沒有賦予初始值)


封裝,多態,繼承
1.
封裝
類的封裝是對類的屬性進行設定訪問範圍(用的修飾詞有private,默認,protect,public),
private修飾的屬性可以用類的設定的訪問方法來訪問
private:只允許在該類中訪問
默認:允許在類中和同包中訪問
protected:允許在類中和同包和在子包中訪問
public:允許在全範圍訪問


類中this的使用
this.屬性  指的是當前對象的屬性
this,方法  指的是當前對象的方法

內部類:
包含在類裏面的類叫做內部類,內部類的屬性和方法不允許外部類訪問而內部類可以訪問外部類的所有屬性和方法包括private
內部類可分爲以下幾種:
成員內部類
靜態內部類
方法內部類
匿名內部類
使用實例
//外部類HelloWorld
public class HelloWorld {
    
    // 內部類Inner,類Inner在類HelloWorld的內部
    public class Inner {
        
		// 內部類的方法
		public void show() {
			System.out.println("welcome to imooc!");
		}
	}
    
	public static void main(String[] args) {
        
        // 創建外部類對象
		HelloWorld hello = new HelloWorld();
        // 創建內部類對象
		Inner i = hello.new Inner();
        // 調用內部類對象的方法
		i.show();
	}
}


2.
類的繼承
子類繼父類的所用方法和屬性,子類可以重寫父類的方法(注意返回值和函數名要一致(不然就不叫做重寫了))。
父類和子類的初始化順序如下
父類->屬性初始化->構造方法初始化->子類->...(同前)
繼承的具體方法如下
public class 子類類名 extends 父類類名{
...
}


final關鍵字的使用
使用final關鍵字做標識有“最終的”含義
final可以修飾類,方法,屬性和變量
final修飾類,則該類不允許被繼承
final修飾方法,則該方法不允許被重寫
final修飾屬性,則該屬性只能被賦值一次,且一定要在類中賦值,要麼在定義屬性時賦值,要麼在定義方法時賦值(不賦值系統會報錯)
final修飾變量,變量只可以被賦值一次,變量相當於常量


super關鍵字的使用
通常用在子類當中
訪問父類的屬性:super.屬性=...
訪問父類的方法:super.方法;


Object類
如果一個類沒有顯式寫出繼承的父類,怎默認繼承父類Object.
Object中一些重要的方法有toString(),equals(對象)
toString()默認是輸出該類的包名加地址,重寫後可以輸出該類的類名和屬性值
equals()方法默認是比較兩個對象的地址是否相同,重寫後可以比較兩對象屬性值是否一樣


3.
類的多態
引用的多態:
父類的引用可以指向本類的對象
父類的引用可以指向子類的對象
方法的多態:
創建本類對象時,調用的方法爲本類的方法
創建子類對象時,調用的方法爲子類重寫的方法或者子類繼承父類的方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章