2.2 Java面向對象(二)三大特徵

本節主要知識點:

Java面向對象的三大特徵:封裝、繼承、多態


一、封裝

1、訪問修飾符:說明了類以及屬性和方法的可訪問性。

(1)默認的:

用默認修飾符修飾的類、屬性以及方法只能被同一個包中的其它類訪問

(2)公有的:public

用public修飾的類、屬性以及方法能被任何包中的任何類訪問

注意:一般情況下,在Java中,類被修飾爲public,類中的方法一般也是用public修飾,屬性一般採用private修飾。

(3)私有的:private

用private修飾的屬性和方法,該屬性和方法只能在當前類中被訪問,除此之外都無法訪問這些屬性和方法。

特別的,private在Java中是無法修飾類的。

(4)受保護的:protected

protected訪問修飾符只用於父子繼承之間。


封裝實例,get方法與set方法:

public class User {
	
	private int id;
	private String username;
	private String password;
	private double money;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public double getMoney() {
		return money;
	}
	public void setMoney(double money) {
		this.money = money;
	}

2、包(package):採用IDE(集成開發環境)寫代碼,根據功能的不同,那麼不同的JAVA文件會被放置到不同的文件夾中,而在IDE中這個文件夾的概念就被稱之爲包。

注意:類一般採用public修飾,同一包中的類可以直接相互調用,而同一個項目下不同包的類想要相互調用,必須通過import引入。


3、封裝的目的:爲了讓被private修飾的屬性在當前類以外被訪問。

4、封裝的方法:get方法和set方法。在Java中,私有的屬性加上get方法和set方法就共同構成了Java中的封裝。


二、繼承

1、繼承的原因:很多實體類中擁有相同的屬性以及封裝的方法,大量重複的代碼很容易造成代碼冗餘。

2、繼承的方法:利用關鍵字extends,把這些類中擁有的相同的屬性和方法提取出來,創建一個公有類,這些類直接使用公有類中的屬性和方法。一旦確定子類繼承某個父類,那麼該子類就可以使用父類非私有屬性方法

3、繼承具有單根性,一個子類只能繼承一個父類


三、多態

1、在Java中,多態是伴隨着繼承而來的。


2、重寫:在父子關係中,父類中擁有的方法,子類也寫了相同的方法。這個過程稱爲重寫

注意:只要子類中出現了和父類同名的、同返回值的、同參數的方法,就認爲是子類重寫了父類的方法。


3、抽象:在Java中,父類通過子類抽象出公有類,所以父類比子類更抽象。

(1)抽象類:在父子繼承關係中,一般把父類聲明爲抽象的類。

(2)抽象方法:父類的方法更多可以是描述性方法,我們把這些方法聲明爲抽象方法。抽象方法是沒有方法體的方法。

(3)抽象方法只能存在於抽象類,但是抽象類中除了可以有抽象方法外,也可以擁有普通方法。

(4)子類繼承抽象父類,那麼子類必須要實現該父類中的所有抽象方法。

(5)抽象類是無法自己實例化自己的類,抽象類的對象實例化的時候必須指向其子類。


4、構造方法與普通方法

(1)方法:是爲了實現某個或某些功能而編寫的代碼段,這個代碼段被封裝在一個結構中。

(2)方法的基本結構:

方法的基本結構
          訪問修飾符    返回值類型       方法名(...)
          {
               功能代碼段
}
注意:①方法的訪問修飾符可以是默認的、public、private、protected;
②方法的返回值類型主要分爲有返回值(即非void)、無返回值類型(即void);
③方法的調用就是通過方法名;

④方法是可以帶參數的,方法中帶的參數被稱之爲形式參數,簡稱形參,那麼對象在調用該方法的時候需要給這個方法傳遞實參。

(3)普通方法:

public void go()
      {
無返回值無參數的方法
}

public void go(int id,String name)
{
無返回值但有參數的方法
}

public int go()
{
          //有返回值但無參數的方法
          return 0;
}

public int go(int id,String name)
{
          //有返回值且有參數的方法
          return 0;
}

(4)構造方法:只存在於當前類中的方法,它無任何返回值,與類同名。

public class User
{
    public User()
    {
	
    }
}

(5)構造方法是一種沒有任何返回值類型的方法,無參的構造方法是伴隨着類的生成而生成的,而且構造方法就是類的對象用於實例化的方法,簡單來說,我們平時總是說new對象,其實new對象後面用的就是構造方法。

(6)無參構造方法確實是伴隨着類的生成而默認存在的,但是一旦手動添加了帶參的構造方法,無參的構造方法就被覆蓋了,不會再默認提供了,如果想要使用,必須手動添加回來。



Java面向對象相關知識:


2.1 Java面向對象(一)類、對象、屬性、方法

2.2 Java面向對象(二)三大特徵

2.3 Java面向對象(三)接口、靜態、常量

2.4 Java面向對象(四)值類型和引用類型

2.5 Java面向對象(五)集合


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