我对Java有疑问。
我有一个Say.java类,它有一些方法,比如sayHello()
,saySomething()
,sayBye()
,......
我也有其他课程。我有一个班级Person
和两个Person
的子类:Senior
和Junior
。
我的工作如下:
我必须将Say.java类设置为private,并使用名为getInstance的方法创建一个公共类SayFactory.java。然后,要创建Say.java类的新实例,我必须使用一个参数调用我的getInstance方法:Senior.java或Junior.java的实例。如果我使用Senior.java对象创建Say.java的实例,我必须能够访问Say.java的所有方法。但如果我对Junior.java做同样的事情,我应该能够访问所有Say.java的方法,除了saySomething()。
有人可以解释一下如何操作以及它是如何工作的吗?
顺便道歉 - 我来自西班牙,所以我的英语不是很好。如果您不理解这个问题,请告诉我,我会尝试更清楚地写出来。
答案 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
。