一覺醒來多了無數個物件,秒走人生巔峰?(java物件導向思想)

Wink-發表於2020-09-28

前言

是不是被標題忽悠進來了哈哈哈,既然來了就別走了,相信我下面絕對讓你對java物件導向更好理解(全是個人理解勿噴,歡迎大佬在下面指教)

java物件

俗話說的好,只要有new(強行補坑哈哈哈),我就可以new出來無數個物件,還能天天物件導向(媽媽再也不用擔心我找不到物件,當親戚問我有沒有物件時,我直接回答:物件多的數不過來,還得天天物件導向,愁死人嘍哈哈哈)好了,開始進入正題了

Java物件如何建立和怎麼成員呼叫?

直接貼上程式碼吧哈哈哈(有點懶)

//new出物件
student a=new student();
//給物件的屬性賦值
a.name="張三";
//呼叫方法
a.show();

物件導向三大特徵

封裝

(一)定義:
將物件的狀態資訊隱藏在物件內部(設定成private),不允許外部程式直接訪問物件內部資訊,⽽是通過該類所提供的⽅法來實現對內部資訊的操作和訪問(我們用到了封裝,public的get/set方法,賦值用set,獲取值用get)。
(二)目地:
1.追求高內聚,低耦合
2.隱藏類的實現細節
3.防止不合理的訪問
4.保證物件資訊的完整性
5.便於修改錯誤
(如何封裝,程式碼如下)

private String name;
public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

繼承

(一)作用:
突現類重複使用的手段(通過一個類的繼承,來完成各種業務的需求)。
(二)特性:
1.子類通過extends來實現對父類的繼承
2.子類可以呼叫父類中除private的屬性和方法
3.可以進行方法重寫(overreide)
4.子類可以新增獨有成員
5.java中的繼承屬於[單繼承機制]
6.每個類都預設繼承一個Object類(祖父類)

相信肯定會有人問java不是單繼承機制嘛?兩個類不發生衝突嘛?

就相當你父親上面肯定還有你祖父,屬於繼承一個類,並不會發生什何衝突(Object是最原始的類)
(如何繼承,程式碼如下)

public class Dog extends Pat{}

多型

1.基礎:
引用變數有兩個型別:
(一):編譯時型別:由宣告變數時候使用的型別決定
(二):執行時型別:由實際賦給該變數的物件決定
2.定義:
多型就是編譯時型別和執行時型別不一致
一個物件在記憶體中體現出多種不同的形態
3.相關問題?
強制型別轉換與真實型別不區配(classCastException)
需提前使用instance of判斷

想要有多型必須需要先繼承

怎麼使用多型,程式碼如下

    Dog d=new Dog();
	 d.setName("大黃");
	 d.setAge("10");
	 d.eat();

在這裡直接放腦圖吧哈哈哈(別問為什麼是試用模式,問就是窮)
在這裡插入圖片描述

為什麼要使用封裝(我直接在一個類裡面寫不可以麼)?

倒是也可以這樣寫,但這樣寫是針對那些程式碼量少的專案(定義到類中的類叫內部類),如果程式碼量大那肯定就不行了,因為找bug太麻煩,必須拿出來封裝寫

為什麼需要繼承?

當一個類無法滿足業務的需求時,就要考慮繼承了(後面內容會講介面)

多型的好處?

方便呼叫程式碼來完成某個業務的需求

this與super的區別/相像點

區別:this是指當前物件,super是父類物件
相像點:
1.使用起來都一樣,可以呼叫一般屬性和一般方法
2.放置在類成員的任意位置
3.呼叫方法時候來回撥用 可能會產生執行時錯誤(StackOverflowError)

總結

後續文章更新會慢一點,因為要開始做專案了(再加上自己是組長鴨梨重大),運動會也馬上開始了(得抓緊鍛鍊身體了哈哈哈),其實這一篇應該是昨天晚上釋出出來的,由於是用手機寫的剛開始寫了儲存了,後面有補充了許多,結果出來沒儲存,沒辦法只能重新熬夜補充,結果出來還是沒有補充的內容,只能今天用電腦補充嘍再發布了(結果補充了一星期),害,不過我相信一步一個腳印來,慢慢會好起來的,每天對自己說聲加油(共勉吧,一起努力,頂峰見),方法竟然還可以克隆出來,這是什麼神奇操作(記得收看下一篇哦哈哈哈哈)
在這裡插入圖片描述

相關文章