1. 程式人生 > >java——面對對象

java——面對對象

dog 結果 可見 現在 運算 返回 static關鍵字 值類型 特征

軟件出現的目的:
*用計算機的語言來描述世界
*用計算機解決現實世界的問題

面向對象的思想 描述 面向對象的世界

面向對象設計和開發程序的好處:
*交流更加流暢
*提高設計和開發效率

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

語法:
訪問修飾符 構造方法名(){
//初始化代碼
}
註意:構造方法名必須和類名相同;沒有返回值;


方法重載:
*方法名相同
*參數項不同
*與返回值和訪問修飾符無關


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——面對對象