面向對象(OOP)
阿新 • • 發佈:2018-10-15
java 地址 false 成員 執行 語法 java類 多個 形參
學習線路
初學: 熟悉語法 進階: 1、23種設計模式 2、6中開發原則 高級: 1、優化 2、架構 3、安全
概念
類:一類具有相同特性的事物的抽象描述,用一個java類表示。 成員變量:抽取的屬性。 方法:抽取的行為。 對象:是類的實體。(object/instance)
類與對象
1、如何聲明一個類 [public 等修飾符] class 類名稱{ 類成員列表; } 2、創建對象 類名稱 對象名 = new 類名稱(); 3、屬性:位置在類中,方法外 為屬性賦值:對象.屬性 = 值; (1)屬性有默認值 和數組的元素的默認值是一樣的: byte,short,int,long:0 float,double:0.0 char:\u0000 boolean:false 引用數據類型:null
- 權限修飾符(*****)
修飾符 | 本類 | 本包 | 子類 | 任何地方 | 可修飾 |
---|---|---|---|---|---|
private | ? | ? | ? | ? | 屬性、方法、內部類、構造器 |
default | ? | ? | ? | ? | 屬性、方法、內部類、構造器、外部類 |
protected | ? | ? | ? | ? | 屬性、方法、內部類、構造器 |
public | ? | ? | ? | ? | 屬性、方法、內部類、構造器、外部類 |
方法
聲明方法
註意:String對象不可變,還有包裝類等對象1、 聲明方法 1、先聲明後使用 2、位置:類中方法外 3、格式: [修飾符] 返回值類型 方法名(形參列表){ 方法體(實現該功能的代碼); } 2、形參:定義/聲明方法時()中的參數。 實參:調用方法時傳入的參數。 3、形參是基本數據類型時,傳值;當是引用數據類型時,傳引用(地址)
調用方法
1、靜態方法 非本類 類名.方法名(); 本類 方法名(); 2、非靜態方法 對象.方法名();
方法的特點
1、先聲明後調用 2、不調用不執行,調用一次執行一次 3、方法最多有一個返回值;可以沒有返回值,當返回值數量大於1時,用數組或者集合裝起來後,返回 4、方法可以嵌套調用,但是不可以嵌套定義。
方法的重載(Overload)
定義:(1)相同類中的兩個或多個方法(2)方法名相同,形參列表不同(類型、個數、順序)(3)與返回值類型無關。
命令行參數:給主方法(main)傳遞實參。
cmd 模式下》》 java 類名稱 實參1 實參2 實參3 ....
可變參數
某個方法調用時,實參的個數是可變的。 (1)一個方法最多有一個可變參數 (2)必須放在最後 public int qiuhe(int... num){//num本質是數組 int sum = 0; for(int i=0;i<num.length;i++){ sum += num[i]; } } 如何調用? (1)傳遞相同類型的參數0~n個 (2)可以傳遞相同類型的數組
構造器
1、有什麽作用
(1)創建對象時,並為屬性賦值。
2、有什麽特點
(1)所有類都有構造器,如果這個類沒有顯示聲明構造器,將默認有無參構造,若加了構造器,則不再有無參構造器。
(2)構造器可以重載
(3)構造器名和類名相同
3、如何聲明
【修飾符】 構造器名(){}
【修飾符】 構造器名(形參列表){}
4、怎麽調用構造器
在非本類中 類名 變量名 = new 類名();
this關鍵字
用法:
this.屬性;
當成員變量與局部變量重名時,成員變量前加this,加以區分。
this.方法();
this代表當前對象。
this();
表示訪問本類的無參構造,有形參時,訪問有參構造。必須在構造器中第一句。
super關鍵字
super.屬性
當子類與父類的某個可見的屬性“重名”時,用“super.”表示訪問父類的屬性
super.方法();
當子類需要調用父類重寫的方法時,需要加"super."
super();
只能出現在子類構造器的首行。
默認出現的是super(),表示調用父類的無參構造器。你寫不寫我都存在。
如果父類沒有無參構造,必須在子類的構造器首行,用super(實參列表)調用父類的構造器。
包的概念 package
作用
1、避免類的重名 2、用於控制訪問權限 3、劃分項目的結構層次,通常將功能相近的類劃分到同一個包中
規則
1、用package定義包,位於源文件首部 2、包的命名規範 xxx.yyy.zzz(通常以所在公司的域名的倒置)
導包 import
1、位置:package和class之間 2、import 包名.類名; import 包名.*;
構造器
1、每個類都有構造器
2、當沒有顯示聲明構造器時,默認提供無參的構造器;當顯示聲明構造器時,則不再提供無參構造器,若需要還需顯示聲明。構造器的特點
1、沒有返回值
2、構造方法名和類名一樣
3、可以重載
面向對象(OOP)