標籤:win 儲存 構造方法 abstract port 編譯 path 方式 this
概述
Java和C#都是物件導向語言,物件導向編程是目前進階語言習慣的編程模式,與C++編寫過程編程而言,物件導向使用起來高效、靈活;物件導向的三個特徵:封裝、繼承和多態。
Java物件導向
1、類封裝:
在 Java 中通過 extends 關鍵字可以申明一個類是從另外一個類繼承而來的.class 子類 extends 父類{}.implements 關鍵字可以變相的使java具有多繼承的特性,使用範圍為類繼承介面的情況,可以同時繼承多個介面(介面跟介面之間採用逗號分隔)。
2、super 與 this :
super關鍵字:我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類。this關鍵字:指向自己的引用。
3、final 關鍵字聲明類可以把類定義為不能繼承的,即最終類;或者用於修飾方法,該方法不能被子類重寫。聲明final的方法不能被重寫。
4、構造器:
子類不能繼承父類的構造器(構造方法或者建構函式),但是父類的構造器帶有參數的,則必須在子類的構造器中顯式地通過super關鍵字調用父類的構造器並配以適當的參數列表。
如果父類有無參構造器,則在子類的構造器中用super調用父類構造器不是必須的,如果沒有使用super關鍵字,系統會自動調用父類的無參構造器。
5、方法重寫和重載;
不像C# 使用OverWrite和virtual 之前調用轉化;子類調用父類同名方法,需要使用super.方法名稱
6、Java多態;
多態是同一個行為具有多個不同表現形式或形態的能力。多態就是同一個介面,使用不同的執行個體而執行不同操作。
多態的必要條件:繼承、重寫、父類引用指向子類對象;
多態的實現方式:重寫、介面、抽象類別和抽象方法;
7、抽象類別和抽象方法:
抽象類別和抽象方法都是使用abstract修飾。
public abstract class Employee{ public abstract double computePay(); }
抽象類別總結規定
1. 抽象類別不能被執行個體化(初學者很容易犯的錯),如果被執行個體化,就會報錯,編譯無法通過。只有抽象類別的非抽象子類可以建立對象。
2. 抽象類別中不一定包含抽象方法,但是有抽象方法的類必定是抽象類別。
3. 抽象類別中的抽象方法只是聲明,不包含方法體,就是不給出方法的具體實現也就是方法的具體功能。
4. 構造方法,類方法(用static修飾的方法)不能聲明為抽象方法。
5. 抽象類別的子類必須給出抽象類別中的抽象方法的具體實現,除非該子類也是抽象類別。
8、介面:
介面通過implements實現介面繼承。一個類可以繼承多個介面。一個介面可以繼承多個介面。一個類只可以繼承一個父類。
標記介面:
最常用的繼承介面是沒有包含任何方法的介面。
標識介面是沒有任何方法和屬性的介面.它僅僅表明它的類屬於一個特定的類型,供其他代碼來測試允許做一些事情。
標識介面作用:簡單形象的說就是給某個對象打個標(蓋個戳),使對象擁有某個或某些特權。
標記介面主要用於以下兩種目的:
建立一個公用的父介面、向一個類添加資料類型
9、包:
Java 提供了包機制,用於區別類名的命名空間;
包的作用
1、把功能相似或相關的類或介面組織在同一個包中,方便類的尋找和使用。
2、如同檔案夾一樣,包也採用了樹形目錄的儲存方式。同一個包中的類名字是不同的,不同的包中的類的名字是可以相同的,當同時調用兩個不同包中相同類名的類時,應該加上包名加以區別。因此,包可以避免名字衝突。
3、包也限定了存取權限,擁有包存取權限的類才能訪問某個包中的類。
import 關鍵字,匯入該包;產生java結尾源檔案,class產生調用問題;類似dll和.class檔案一樣;
10、補充知識
wind系統下修改和查看JavaClassPath的方式:cmd--set calsspath
Java基礎知識—物件導向(八)