java-12 封裝,this,構造方法,四種訪問權限,super

封裝,this,構造方法,四種訪問權限,super

  • java封裝
    • 封裝(Encapsulation)是面向對象方法的重要原則,就是把對象的屬性和操作(或服務)結合爲一個獨立的整體,並儘可能隱藏對象的內部實現細節。
    • 在java中用d代碼實現,也就是把成員變量私有化,使用公開的方法去訪問(在方法中我們可以添加一些限制),從而可提高數據的安全性,有效性(getXXX訪問,setXXX改變)

  • this
    • this關鍵字指向的是當前對象的引用(簡單講就是誰指它就指向誰),this() 代表的是當前類的構造方法裏面可以寫參數也可以不寫(這就看自己的構造方法了)
    • this 的作用 通常用於解決成員變量與局部變量重名的問題

  • 構造方法
    • 構造方法用於創建實例化對象
    • 構造方法中可擁 0,1,2,3…個參數,當然構造方法也可以有多個,只要參數類型不同就好
    • java中所有的類都是繼承的object類(在object類中有一個無參構造方法),所以當我們創建一個類之後,就算什麼都不寫也是可以調用無參構造方法的。
    • 語法:public 類名(){} //無參構造方法

  • java中的四種訪問修飾符
    • 訪問修飾符可修飾類 ,成員變量,方法
本類 同包 子類 其他包
public
protect ×
default × ×
private × × ×
  • public: java中訪問權限最寬的修飾符(公有的),被它修飾的類、屬性以及方法不僅可以跨類訪問,而且允許跨包(package)訪問。
  • private: java中權限最小的修飾符(私有的)。被它修飾的類、屬性以及方法只能被該類的對象訪問,其子類不能訪問,更不能允許跨包訪問。
  • protect: 介於public 和 private 之間的一種訪問修飾符(保護形)。被它修飾的類、屬性以及方法只能被類本身的方法及子類訪問,即使子類在不同的包中也可以訪問。
  • default:即不加任何訪問修飾符(默認訪問模式)。該模式下,只允許在同一個包中進行訪問。

  • super
    • super 與 this 非常相似 this 是代表的是本類,而super代表的是父類
    • super可以點出父類非私有的方法與屬性
    • super()代表的是父類的無參構造方法 ,當然裏面也能寫參數(調用的就是父類的有參構造),注意super() 只能放在 子類的構造方法中的第一行,不然就會報語法錯誤


接下來就是我們的代碼實現了


public class Teacher{   // 老師類
	private  String name;
	private  int  age;
	private String  major;
	//  上面的三個屬性都是私有的(外部是不能訪問的,現在我們可以寫幾個公開的方法來訪問)

	// 這個get方法用於 返回 這個對象的屬性
	public String getName(){
		return this.name;    
		 //this.name  指向的當前的引用對象(這裏this不寫也沒關係,因爲我們上面講了 this是用來解決屬性與
		 //局部變量重名的問題,這裏沒有重名所以不用也是可以的)
	}

	// 這個set方法用於 給我們的name屬性賦值
	public void setName(String name){
		
		// 當然我們也能在這裏面添加一點邏輯判斷,只有符合了纔給我們的屬性賦值,
		//這樣就可以確保我們屬性數值的有效性
		this.name = name;
		//這裏就需要使用到 this 了因爲我們的屬性已經和這方法的參數重名了 this.name 代表的是我們的屬性 
		//name 在這方法裏面代表的是這個方法的參數
	}
	
	public  int getAge(){
		return age;
	}

	public void setAge(int age){
		this.age = age;
	}

	public  int getMajor(){
		return major;
	}

	public void setMajor(int major){
		this.major = major;
	}
}

以上的使用公開方法訪問私有的屬性 就是我們的屬性封裝了,以及this的使用

public class Teacher{   // 老師類
	private  String name;
	private  int  age;
	private String  major;
	//  構造方法的訪問修飾符通常都是  public 因爲我們的對象本來就是給別人訪問的,如果你寫個私有的,,,
	//額那麼是不是就沒意義了
	public  Teacher(){  
		
	}
	public Teacher(String name , int age , major){
		this.name = name;
		this.age = age;
		this.major = major;
	}

}


注意當我們自己寫了一個構造方法後 原先的無參構造方法就沒用了
因爲在我們java中 所有的類是繼承與object類的 當我們的子類重寫了父類的方法,那麼父類原先的方法就會被子類的給取代

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