二、Java之物件導向
物件導向
什麼是物件導向
把資料及對資料的操作方法放在一起,作為一個相互依存的整體——物件。對同類物件抽象出其共性,形成類。類中的大多數資料,只能用本類的方法進行處理。類通過一個簡單的外部介面與外界發生關係,物件與物件之間通過訊息進行通訊。程式流程由使用者在使用中決定。
物件即為人對各種具體物體抽象後的一個概念,人們每天都要接觸各種各樣的物件,如手機就是一個物件。
物件導向程式設計(OOP: object-oriented programming),物件導向三個重點封裝、繼承、多型
封裝
簡單說就是不讓其他類直接操作本類的某些屬性和方法。也就是被private修飾的屬性和方法在其他類中不可被使用,如果需要使用就建立一個可以被訪問的方法來操作他們。
比如我們定義一個變數,如下。那麼我們在其他類中無法操作這個屬性,
private String name;
但是我們又要操作這個屬性,那麼我們可以設定一個方法來對這個屬性操作。
public void setName(String name){
this.name=name
}
public String getName(){
return this.name;
}
通過上面的兩個方法,我們可以在其他類中對這個屬性經行設定值和讀取值。
繼承
繼承就是一個類繼承了另外一個類的所有東西。也就是父類的屬性和方法子類都有,父類的屬性和方法在子類中可以直接呼叫。
在子類中我們可以使用super關鍵字獲取父類的一切,比如方法、屬性、建構函式等。
我們可以重寫父類的方法,方法重寫規則就是和父類的方法名稱一致即可,如果重寫了父類的方法,我們還可以繼續讓父類的方法存在我們的子類中,使用super關鍵字即可。
Java中的繼承是單繼承也就是一類只能繼承一個父類,也就一個兒子只有一個父親。
多型
多型的實現是基於繼承的關係上實現的,比如動物類,那麼貓類、狗類都是屬性動物類都有動物的特性,但是他們又有自己的特點。
建立動物類
public class Animal {
public void say(){
System.out.println("我會說話哦");
}
public void sleep(){
System.out.println("我會睡覺");
}
}
建立Cat類
public class Cat extends Animal{
public void eat(){
System.out.println(" The cat to eat");
}
}
建立Dog類
public class Dog extends Animal{
public void call(){
System.out.println("Dog is call ");
}
}
1.子類的型別可以是父類,不需要轉換如:
public class Test {
public static void main(String[] args) {
Animal cat = new Cat();//型別為父類
Cat cat1 = new Cat();//類為子類
Animal dog = new Dog();//型別為父類
Dog dog1 = new Dog();//類為子類
}
}
2.建立子類,但型別為父類,那麼不能操作子類的東西。
public class Test {
public static void main(String[] args) {
Animal cat = new Cat();//型別為父類
Cat cat1 = new Cat();//類為子類
//如果引用型別名的型別為父類,那麼不能操作本類的一切
// cat.eat();//編譯會報錯,找不到方法
}
}
3.建立子類,但型別為父類,那麼不能操作子類的東西,如果非要操作也是可以的,那就型別轉換。
public class Test {
public static void main(String[] args) {
Animal cat = new Cat();//型別為父類
Cat cat1 = new Cat();//類為子類
//如果引用型別名的型別為父類,那麼不能操作本類的一切
((Cat) cat).eat();//把父類型別變為子類型別
}
}
相關文章
- Java正式上路之物件導向二Java物件
- java基礎二:物件導向Java物件
- 物件導向之封裝(Java)物件封裝Java
- Java正式上路之物件導向一Java物件
- Java課堂筆記(二):物件導向Java筆記物件
- Java物件導向Java物件
- [Java物件導向]Java物件
- Java — 物件導向Java物件
- JAVA物件導向基礎--物件導向介紹Java物件
- java學習——物件導向之繼承Java物件繼承
- Java:Java的物件導向Java物件
- java物件導向(上)Java物件
- java物件導向(中)Java物件
- JAVA物件導向思想Java物件
- [Java物件導向]finalJava物件
- Java物件導向(一)Java物件
- java的物件導向Java物件
- Java 物件導向概述Java物件
- Java物件導向——類與物件Java物件
- 大資料學習之路——java物件導向(二)大資料Java物件
- JAVA物件導向--抽象類Java物件抽象
- Java基礎 --- 物件導向Java物件
- Java物件導向--多型Java物件多型
- [Java物件導向]static方法Java物件
- JAVA物件導向之多型Java物件多型
- JAVA物件導向基礎Java物件
- java物件導向繼承Java物件繼承
- 物件導向-物件導向思想物件
- 【讀】JavaScript之物件導向JavaScript物件
- 物件導向之繼承物件繼承
- PHP物件導向之&引用PHP物件
- Java物件導向03——三大特性之繼承Java物件繼承
- Java中物件導向三大特性之繼承Java物件繼承
- java物件導向的三大特徵之封裝Java物件特徵封裝
- Lua學習(二)物件導向物件
- [JAVA] Java物件導向之包裝類,拆箱、裝箱Java物件
- 《JavaScript物件導向精要》之六:物件模式JavaScript物件模式
- java物件導向作業4Java物件