java——面對對象

來源:互聯網
上載者:User

標籤:傳回值   硬碟   getter   資源   刪除   如何使用   定義   許可權   nal   

軟體出現的目的:
*用電腦的語言來描述世界
*用電腦解決現實世界的問題

物件導向的思想 描述 物件導向的世界

物件導向設計和開發程式的好處:
*交流更加流暢
*提高設計和開發效率

構造方法:
構造方法是用來描述對象建立的過程,構造方法在對象建立的過程中被調用

文法:
存取修飾詞 構造方法名(){
//初始化代碼
}
注意:構造方法名必須和類名相同;沒有傳回值;


方法重載:
*方法名相同
*參數項不同
*與傳回值和存取修飾詞無關


this關鍵字用法:

調用屬性:
this.屬性名稱=100;

調用方法:
this.方法名();

調用構造方法:
this();
this(參數);
如何使用:必須是構造方法中的一條語句

 

物件導向的三大特徵之一—封裝

封裝的概念:
封裝:將類的某些資訊隱藏在類內部,不允許外部程式直接存取,而是通過該類提供的方法來實現對隱藏資訊
的操作和訪問;

封裝的好處:
*隱藏類的實現細節
*只能通過規定方法訪問資料
*方便加入控制語句
*方便修改實現

封裝的步驟:
1.修改屬性的可見度
2.建立getter和setter方法
3.在getter\setter方法中加入屬性控制語句

 

static修飾符:
static的資源屬於類層級的資源,靜態資源,對於類的所有執行個體對象共用
static關鍵字可以用來修飾屬性,方法,代碼塊和內部類
static修飾符的資源,在類載入期間執行

1、static修飾的屬性:
static關鍵字修飾的屬性,屬於對類所有執行個體對象共用的變數
訪問靜態屬性:類名.屬性名稱

2、static修飾方法:
static關鍵字修飾的方法,屬於靜態方法,可以直接類名.方法名()進行調用.一般
的是靜態方法作為工具方法
靜態方法中不能調用對象的資源(對象的屬性和方法)

3、static修飾的代碼塊
在類載入的時候執行,因為類只載入一次,所以static的代碼塊也只運行一次,
一般是使用static代碼塊來載入一些靜態資源,比如說設定檔;
{
這裡就是代碼塊,和構造方法一樣,在對象建立時候執行
}
static{
這裡就是靜態代碼塊
}

 

Static和非Static的區別
1.屬性
2.方法
3.調用方法
4.歸屬
static全部屬於類
非static屬於執行個體和對象

 

繼承:
一、繼承的前提條件:
子類和父類之間,必須要滿足子類is a父類的邏輯關係,才能繼承

二、繼承的優點
1.提高代碼之間的重用性,(繼承之後子類共用父類的代碼)
2.提高了代碼後期的可維護性(後期代碼中需要添加或刪除某些代碼,只需修改父類代碼即可)

三、繼承的步驟:
1.將多個類中共有的屬性和方法提取出來,建立一個父類
2.在子類後面使用extends關鍵字完成繼承, 子類 extends 父類
3.在子類中可以調用父類的代碼
注意:在java中屬於單繼承,在extends關鍵字後面只能有一個父類

 

子類訪問父類成員:

訪問父類構造方法:
super();
super(參數);

訪問父類屬性:
super.屬性名稱;

訪問父類方法:
super.方法名();

注意:this和super都必須出現在第一行,他們之間是互斥的

 

子類不能繼承父類的那些資源:
1.private成員
2.子類與父類不在同包,使用預設存取權限的成員
3.構造方法


存取修飾詞:
1.private 私人的
2.預設的(friendly) 預設
3.protected 受保護的
4.public 公用的

 

多重繼承關係的初始化順序是怎樣的:
1.父類屬性
2.父類構造方法
3.子類屬性
4.子類構造方法


對象初始化過程:
第一步:在建立類之前,檢查類是否已載入(檢查硬碟上的.class的檔案是否載入到記憶體中)
如果沒有載入就先載入父類的檔案,再載入本類的檔案
java使用的策略稱為:懶惰式載入(按需載入)用到的時候載入,只載入一次。
第二部:指派至空間,遞迴分配所有父類的屬性空間,
屬性會自動的初始化為"0"值;
第三步:屬性賦值
第四步:調用父類的構造方法(預設調用父類的無參構造方法)
第五步:調用本類的構造方法


方法重寫:
*方法名相同
*參數列表相同
*傳回型別相同或是其子類
*子類存取權限大於或等於父類

 

super關鍵字訪問父類的成員:
super只能出現在子類的方法和構造方法中
super調用構造方法時,只能是第一句
super不能訪問父類的private成員

 

abstract關鍵字:
abstract是抽象的意思,可以修飾類和方法,修飾類我們稱之為抽象類別,修飾方法我們稱之為抽象方法
1.abstract 修飾類,抽象類別
public abstract class 類名(){}
抽象類別用來表示一些抽象的概念

抽象類別特點:
*抽象類別不能被執行個體化
*抽象類別可以有屬性、方法、構造方法,都是用來給子類繼承
*抽象類別中不一定都是抽象方法。

2.abstract 修飾方法,抽象方法
存取修飾詞 abstract 傳回值類型 方法名(參數列表);
抽象方法不需要自己實現,由子類來實現

抽象方法特點:
*抽象方法沒有方法體
*抽象方法必須出現在抽象類別中
*一個類繼承抽象類別之後必須要實現父類所有的抽象方法

3.抽象類別可以繼承抽象類別

 

final關鍵字,表示最終的
1.final可以用來修飾類、方法和屬性。
2.final修飾的類的不能再被繼承。比如:String String是final修飾的類,不能被繼承

3.final修飾的方法,不能再被子類重寫

4.final修飾的變數初始化以後不能再發生改變
常量規範定義:public static final int ace=12;
final修飾的引用資料類型,引用地址不能發生改變,但是只限定第一層,參考型別的屬性值是可以改變的

 


多態:
生活中:
同一種事物,由於條件不同,產生的結果不同。

程式中:
同一種參考型別,使用不同的執行個體而執行不同的操

實現多態的兩個要素:
1.子類重寫父類方法
2.使用父類的類型

子類到父類的轉換(向上轉型):
Pet pet=new Dog();

實現多態的兩種形式:
*使用父類作為方法形參實現多態
*使用父類作為方法傳回值實現多態


父類到子類的轉換(向下轉型)
強制類型轉換
前提是:已經向上轉型
稱為:還原行為
文法:
子類名 子類自命名=(子類名) 父類名;
Dog dog = (Dog) pet;

instanceof運算子:
判斷對象是否是屬於類和介面,返回boolean類型
對象 instanceof 類或介面軟體出現的目的:

*用電腦的語言來描述世界

*用電腦解決現實世界的問題

 

物件導向的思想   描述  物件導向的世界

 

物件導向設計和開發程式的好處:

*交流更加流暢

*提高射擊和開發效率

 

構造方法:

構造方法是用來描述對象建立的過程,構造方法在對象建立的過程中被調用

 

文法:

    存取修飾詞 構造方法名(){

      //初始化代碼

}

注意:構造方法名必須和類名相同;沒有傳回值;

 

  

方法重載:

*方法名相同

*參數項不同

*與傳回值和存取修飾詞無關

 

 

this關鍵字用法:

 

調用屬性:

this.屬性名稱=100;

 

調用方法:

 this.方法名();

 

調用構造方法:

this();

this(參數);

如何使用:必須是構造方法中的一條語句

 

 

 

物件導向的三大特徵之一—封裝

 

   封裝的概念:

   封裝:將類的某些資訊隱藏在類內部,不允許外部程式直接存取,而是通過該類提供的方法來實現對隱藏資訊

的操作和訪問;

 

  封裝的好處:

  *隱藏類的實現細節

  *只能通過規定方法訪問資料

  *方便加入控制語句

  *方便修改實現

 

  封裝的步驟:

    1.修改屬性的可見度

    2.建立getter和setter方法

    3.在getter\setter方法中加入屬性控制語句

 

 

 

static修飾符:

static的資源屬於類層級的資源,靜態資源,對於類的所有執行個體對象共用

static關鍵字可以用來修飾屬性,方法,代碼塊和內部類

static修飾符的資源,在類載入期間執行

 

1、static修飾的屬性: 

static關鍵字修飾的屬性,屬於對類所有執行個體對象共用的變數

訪問靜態屬性:類名.屬性名稱 

 

2、static修飾方法:

static關鍵字修飾的方法,屬於靜態方法,可以直接類名.方法名()進行調用.一般

的是靜態方法作為工具方法

靜態方法中不能調用對象的資源(對象的屬性和方法)

 

3、static修飾的代碼塊

在類載入的時候執行,因為類只載入一次,所以static的代碼塊也只運行一次,

一般是使用static代碼塊來載入一些靜態資源,比如說設定檔;

{

這裡就是代碼塊,和構造方法一樣,在對象建立時候執行

static{

這裡就是靜態代碼塊

}

 

 

 

Static和非Static的區別

1.屬性

2.方法

3.調用方法

4.歸屬

static全部屬於類

非static屬於執行個體和對象

 

 

 

繼承:

一、繼承的前提條件:

子類和父類之間,必須要滿足子類is a父類的邏輯關係,才能繼承

 

二、繼承的優點

1.提高代碼之間的重用性,(繼承之後子類共用父類的代碼)

 2.提高了代碼後期的可維護性(後期代碼中需要添加或刪除某些代碼,只需修改父類代碼即可)

 

三、繼承的步驟:

1.將多個類中共有的屬性和方法提取出來,建立一個父類

2.在子類後面使用extends關鍵字完成繼承,   子類 extends  父類

3.在子類中可以調用父類的代碼

注意:在java中屬於單繼承,在extends關鍵字後面只能有一個父類

 

 

 

子類訪問父類成員:

 

訪問父類構造方法:

super();

super(參數);

 

訪問父類屬性:

super.屬性名稱;

 

訪問父類方法:

super.方法名();

 

注意:this和super都必須出現在第一行,他們之間是互斥的

 

 

 

子類不能繼承父類的那些資源:

1.private成員

2.子類與父類不在同包,使用預設存取權限的成員

3.構造方法

 

 

存取修飾詞:

1.private             私人的

2.預設的(friendly)  預設

3.protected           受保護的

4.public              公用的

 

 

 

多重繼承關係的初始化順序是怎樣的:

1.父類屬性

2.父類構造方法

3.子類屬性

4.子類構造方法

 

 

對象初始化過程:

第一步:在建立類之前,檢查類是否已載入(檢查硬碟上的.class的檔案是否載入到記憶體中)

如果沒有載入就先載入父類的檔案,再載入本類的檔案

java使用的策略稱為:懶惰式載入(按需載入)用到的時候載入,只載入一次。

第二部:指派至空間,遞迴分配所有父類的屬性空間,

屬性會自動的初始化為"0"值;

第三步:屬性賦值

第四步:調用父類的構造方法(預設調用父類的無參構造方法)

第五步:調用本類的構造方法

 

 

方法重寫:

*方法名相同

*參數列表相同

*傳回型別相同或是其子類

*子類存取權限大於或等於父類

 

 

 

super關鍵字訪問父類的成員:

super只能出現在子類的方法和構造方法中

super調用構造方法時,只能是第一句

super不能訪問父類的private成員

 

 

 

abstract關鍵字:

abstract是抽象的意思,可以修飾類和方法,修飾類我們稱之為抽象類別,修飾方法我們稱之為抽象方法

1.abstract 修飾類,抽象類別

   public abstract class 類名(){}

 抽象類別用來表示一些抽象的概念

 

抽象類別特點:

 *抽象類別不能被執行個體化

 *抽象類別可以有屬性、方法、構造方法,都是用來給子類繼承

 *抽象類別中不一定都是抽象方法。

 

2.abstract 修飾方法,抽象方法

      存取修飾詞 abstract 傳回值類型 方法名(參數列表);

   抽象方法不需要自己實現,由子類來實現

   

  抽象方法特點:

    *抽象方法沒有方法體

    *抽象方法必須出現在抽象類別中

    *一個類繼承抽象類別之後必須要實現父類所有的抽象方法

 

 3.抽象類別可以繼承抽象類別

 

 

 

final關鍵字,表示最終的

1.final可以用來修飾類、方法和屬性。

2.final修飾的類的不能再被繼承。比如:String  String是final修飾的類,不能被繼承

 

3.final修飾的方法,不能再被子類重寫

 

4.final修飾的變數初始化以後不能再發生改變

常量規範定義:public static final int ace=12;

final修飾的引用資料類型,引用地址不能發生改變,但是只限定第一層,參考型別的屬性值是可以改變的

 

 

 

 

多態:

生活中:

同一種事物,由於條件不同,產生的結果不同。

 

程式中:

同一種參考型別,使用不同的執行個體而執行不同的操

 

實現多態的兩個要素:

1.子類重寫父類方法

2.使用父類的類型

 

子類到父類的轉換(向上轉型):

Pet pet=new Dog();

 

實現多態的兩種形式:

*使用父類作為方法形參實現多態

*使用父類作為方法傳回值實現多態

 

 

父類到子類的轉換(向下轉型)

強制類型轉換

前提是:已經向上轉型

稱為:還原行為

文法:

子類名 子類自命名=(子類名) 父類名;

Dog     dog     =  (Dog)  pet;

 

instanceof運算子:

判斷對象是否是屬於類和介面,返回boolean類型

對象  instanceof 類或介面

軟體出現的目的:*用電腦的語言來描述世界*用電腦解決現實世界的問題
物件導向的思想   描述  物件導向的世界
物件導向設計和開發程式的好處:*交流更加流暢*提高射擊和開發效率
構造方法:構造方法是用來描述對象建立的過程,構造方法在對象建立的過程中被調用
文法:    存取修飾詞 構造方法名(){      //初始化代碼}注意:構造方法名必須和類名相同;沒有傳回值;
  方法重載:*方法名相同*參數項不同*與傳回值和存取修飾詞無關

this關鍵字用法:
調用屬性:this.屬性名稱=100;
調用方法: this.方法名();
調用構造方法:this();this(參數);如何使用:必須是構造方法中的一條語句


物件導向的三大特徵之一—封裝    封裝的概念:   封裝:將類的某些資訊隱藏在類內部,不允許外部程式直接存取,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問;
  封裝的好處:  *隱藏類的實現細節  *只能通過規定方法訪問資料  *方便加入控制語句  *方便修改實現
  封裝的步驟:    1.修改屬性的可見度    2.建立getter和setter方法    3.在getter\setter方法中加入屬性控制語句


static修飾符:static的資源屬於類層級的資源,靜態資源,對於類的所有執行個體對象共用static關鍵字可以用來修飾屬性,方法,代碼塊和內部類static修飾符的資源,在類載入期間執行
1、static修飾的屬性: static關鍵字修飾的屬性,屬於對類所有執行個體對象共用的變數訪問靜態屬性:類名.屬性名稱 
2、static修飾方法:static關鍵字修飾的方法,屬於靜態方法,可以直接類名.方法名()進行調用.一般的是靜態方法作為工具方法靜態方法中不能調用對象的資源(對象的屬性和方法)
3、static修飾的代碼塊在類載入的時候執行,因為類只載入一次,所以static的代碼塊也只運行一次,一般是使用static代碼塊來載入一些靜態資源,比如說設定檔;{這裡就是代碼塊,和構造方法一樣,在對象建立時候執行} static{這裡就是靜態代碼塊}


Static和非Static的區別1.屬性2.方法3.調用方法4.歸屬static全部屬於類非static屬於執行個體和對象


繼承:一、繼承的前提條件:子類和父類之間,必須要滿足子類is a父類的邏輯關係,才能繼承
二、繼承的優點1.提高代碼之間的重用性,(繼承之後子類共用父類的代碼) 2.提高了代碼後期的可維護性(後期代碼中需要添加或刪除某些代碼,只需修改父類代碼即可)
三、繼承的步驟:1.將多個類中共有的屬性和方法提取出來,建立一個父類2.在子類後面使用extends關鍵字完成繼承,   子類 extends  父類3.在子類中可以調用父類的代碼注意:在java中屬於單繼承,在extends關鍵字後面只能有一個父類


子類訪問父類成員:
訪問父類構造方法:super();super(參數);
訪問父類屬性:super.屬性名稱;
訪問父類方法:super.方法名();
注意:this和super都必須出現在第一行,他們之間是互斥的


子類不能繼承父類的那些資源:1.private成員2.子類與父類不在同包,使用預設存取權限的成員3.構造方法

存取修飾詞:1.private             私人的2.預設的(friendly)  預設3.protected           受保護的4.public              公用的


多重繼承關係的初始化順序是怎樣的:1.父類屬性2.父類構造方法3.子類屬性4.子類構造方法

對象初始化過程:第一步:在建立類之前,檢查類是否已載入(檢查硬碟上的.class的檔案是否載入到記憶體中)如果沒有載入就先載入父類的檔案,再載入本類的檔案java使用的策略稱為:懶惰式載入(按需載入)用到的時候載入,只載入一次。第二部:指派至空間,遞迴分配所有父類的屬性空間,屬性會自動的初始化為"0"值;第三步:屬性賦值第四步:調用父類的構造方法(預設調用父類的無參構造方法)第五步:調用本類的構造方法

方法重寫:*方法名相同*參數列表相同*傳回型別相同或是其子類*子類存取權限大於或等於父類


super關鍵字訪問父類的成員:super只能出現在子類的方法和構造方法中super調用構造方法時,只能是第一句super不能訪問父類的private成員


abstract關鍵字:abstract是抽象的意思,可以修飾類和方法,修飾類我們稱之為抽象類別,修飾方法我們稱之為抽象方法1.abstract 修飾類,抽象類別   public abstract class 類名(){} 抽象類別用來表示一些抽象的概念
抽象類別特點: *抽象類別不能被執行個體化 *抽象類別可以有屬性、方法、構造方法,都是用來給子類繼承 *抽象類別中不一定都是抽象方法。
2.abstract 修飾方法,抽象方法      存取修飾詞 abstract 傳回值類型 方法名(參數列表);   抽象方法不需要自己實現,由子類來實現     抽象方法特點:    *抽象方法沒有方法體    *抽象方法必須出現在抽象類別中    *一個類繼承抽象類別之後必須要實現父類所有的抽象方法
 3.抽象類別可以繼承抽象類別


final關鍵字,表示最終的1.final可以用來修飾類、方法和屬性。2.final修飾的類的不能再被繼承。比如:String  String是final修飾的類,不能被繼承
3.final修飾的方法,不能再被子類重寫
4.final修飾的變數初始化以後不能再發生改變常量規範定義:public static final int ace=12;final修飾的引用資料類型,引用地址不能發生改變,但是只限定第一層,參考型別的屬性值是可以改變的



多態:生活中:同一種事物,由於條件不同,產生的結果不同。
程式中:同一種參考型別,使用不同的執行個體而執行不同的操
實現多態的兩個要素:1.子類重寫父類方法2.使用父類的類型
子類到父類的轉換(向上轉型):Pet pet=new Dog();
實現多態的兩種形式:*使用父類作為方法形參實現多態*使用父類作為方法傳回值實現多態

父類到子類的轉換(向下轉型)強制類型轉換前提是:已經向上轉型稱為:還原行為文法:子類名 子類自命名=(子類名) 父類名;Dog     dog     =  (Dog)  pet;
instanceof運算子:判斷對象是否是屬於類和介面,返回boolean類型對象  instanceof 類或介面

java——面對對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.