從頭認識java 1 3 隱藏具體實現

2021-12-29 16:30:22 字數 1355 閱讀 3743

這一章節我們來聊聊為什麼需要隱藏具體實現。

一般來說,程式設計分為類的建立者與類的使用者,建立者將一部分脆弱的**隱藏起來,只暴露某些必須的方法給使用者,這樣,建立者就可以根據需要修改隱藏部分,而不會影響使用者的呼叫。

為什麼需要隱藏具體實現。

1)讓使用者不能隨意訪問所有的**。

例如:package com.ray.ch01;

public class bird

public void setname(string name)

}上面bird類,我們隱藏了name這個屬性,類的使用者只能通過getname這個方法取得或者setname這個方法操作,而不能對name直接進行任何操作,因為name這個屬性相對脆弱,你改我改大家改,改到最後,name可能不是需要的結果,特別有些惡意的使用者,賦值null,這就麻煩了。

反面例子:

package com.ray.ch01;

public class bird

public void setname(string name)

public static void main(string args)

}上面的**直接把物件賦值名字為空,但是實際業務這個是不可能存在的,因此,暴露name這個屬性對於我們後面的操作充滿未知的風險。正確的做法如下:package com.ray.ch01;

public class bird

public void setname(string name) else }

public static void main(string args)

}執行輸出:

名稱不能為空

上面的**避免了名字為空的風險,隱藏了脆弱的**,只暴露必須的**方法。

2)讓建立者可以隨意修改隱藏的**。

除了限制使用者,同時也方便建立者,我們只要返回相同的東西,中間怎麼實現,隨我們。

例如:我們根據上面的**進行改編。

package com.ray.ch01;

public class bird

public string getname()

public void setname(string name) else

} public static void main(string args)

}我們在setname的同時也setid,雖然**裡面增加了很多,但是對於使用者而言,他是不知道的,他能夠使用的和知道的跟上面的**一樣。

最後,本來應該還需要聊一下怎樣隱藏具體實現,但是這個話題太寬泛,而且一般都是需要根據需求來做的,所以不做展開。總之一句話:需求決定隱藏什麼具體實現。

總結:這一章節我們介紹了為什麼需要隱藏具體實現。

這一章節到這裡,謝謝。

Java 13 單例模式

單例模式 類在記憶體僅存在乙個例項物件,且被所有人共享 作用 1.節省記憶體 2.共享物件 步驟 1.建構函式私有化,用private修飾 2.自身定義乙個物件,並且用private static修飾 3.對外提供乙個公共的方法,返回自身的物件 例項 public class singleton 3...

從頭認識java 1 5 繼承(2)

接著上一章節,我們來繼續介紹繼承。1.子類呼叫方法時的查詢方法的順序 package com.ray.ch01 public class animal public void sleep package com.ray.ch01 public class bird extends animal pu...

從頭認識java 7 4 實現多重介面

這一章節我們來說一下介面另乙個特性 多重介面。在平常,使用繼承,我們只是繼承某一類,只能夠一種向上轉型,但是在介面的使用方面,可以實現多個介面,然後實現多種的向上轉型。我們先上 package com.ray.ch07 public class test public static void tes...