控制方法中的访问

时间:2014-10-10 15:05:43

标签: java inheritance encapsulation instanceof

我对Java有疑问。

我有一个Say.java类,它有一些方法,比如sayHello()saySomething()sayBye(),......

我也有其他课程。我有一个班级Person和两个Person的子类:SeniorJunior

我的工作如下:

我必须将Say.java类设置为private,并使用名为getInstance的方法创建一个公共类SayFactory.java。然后,要创建Say.java类的新实例,我必须使用一个参数调用我的getInstance方法:Senior.java或Junior.java的实例。如果我使用Senior.java对象创建Say.java的实例,我必须能够访问Say.java的所有方法。但如果我对Junior.java做同样的事情,我应该能够访问所有Say.java的方法,除了saySomething()。

有人可以解释一下如何操作以及它是如何工作的吗?

顺便道歉 - 我来自西班牙,所以我的英语不是很好。如果您不理解这个问题,请告诉我,我会尝试更清楚地写出来。

2 个答案:

答案 0 :(得分:0)

首先将此作为私有课程的答案:Java: Why can we define a top level class as private?

对于你想要的对象"私人"你必须将所有字段和可能的方法设为私有(取决于你需要的)。然后正如@ user1071777所提到的那样设置了公共getter和setter。

关于调用对象方法的一些基本信息: http://docs.oracle.com/javase/tutorial/java/javaOO/usingobject.html

要创建类之间的连接,您可以让一个类将另一个类作为其定义的一部分,并通过构造函数或公共setter进行设置。

答案 1 :(得分:0)

我知道我不能写Private Class但我可以做内心课。

我有一个班级SayFactory,在此我得到另一个叫Say

SayFactory有一个名为getInstance()的方法,在这个方法中我创建了一个Say类的对象并返回该对象。问题是,如果getInstance()的参数是saySomething()的对象,如何拒绝访问方法Junior