2014-10-10 131 views
-2

我有一個關於Java的問題。控制訪問的方法

我有有一些方法,如sayHello()saySomething()sayBye(),...

我有其他類太一類Say.java。我有一個類Person,以及Person的兩個子類:SeniorJunior

我的工作做的是以下幾點:

我必須設置Say.java類是私有的,並創建一個公共類SayFactory.java,有一個名爲getInstance方法。然後,爲了創建一個Say.java類的新實例,我必須用一個參數調用我的getInstance方法:一個是Senior.java或Junior.java的實例。如果我使用Senior.java對象創建Say.java的實例,則必須能夠訪問Say.java的所有方法。但是如果我用Junior.java做同樣的事情,我應該可以訪問Say.java的所有方法,除了saySomething()。

有人可以請解釋如何做到這一點,以及它是如何工作的?

道歉 - 順道來自西班牙,所以我的英語不是很好。如果你不明白這個問題,讓我知道,我會盡量寫得更清楚。

+1

創建公共getters/setters? – user1071777 2014-10-10 15:08:07

+8

*「有人知道如何做到這一點?」 - 是的。很多人都知道。如果你寫這個程序,你也會知道的!提示:如果你自己編寫這個程序,你會學到更多關於Java的知識。 (您將通過嘗試......來了解更多信息 – 2014-10-10 15:13:33

+1

@StephenC或者至少如果他們試圖寫點什麼,然後就您遇到的具體問題尋求幫助。目前,這個範圍太廣泛了,因爲它似乎本質上是「爲我做我的功課」。 – Edd 2014-10-10 15:15:50

回答

0

首先稱其爲答案製造類民營:Java: Why can we define a top level class as private?

對於要的對象「私人」你必須讓所有的私人(取決於你所需要的領域和可能它的方法)。然後,@ user1071777提到了建立公共getter和setters。

上調用對象的方法的一些基本信息: http://docs.oracle.com/javase/tutorial/java/javaOO/usingobject.html

要創建你可以有一個類的類之間的連接有另一個類作爲其定義的一部分,並設置它通過構造函數或公共setter方法。

0

我知道我不能寫Private Class但我可以做一個內部類。

我有一個類SayFactory並在此我有一種叫Say

SayFactory有一個名爲getInstance()方法,並在此方法中,我創建Say類的一個對象,並返回該對象。問題是,如果getInstance()的參數是Junior的對象,如何拒絕對方法saySomething()的訪問。