Alpha.java
class Alpha {
private void iamprivate() {
System.out.println("iamprivate");
}
}
Beta.java
class Beta {
void accessMethod() {
Alpha a = new Alpha();
a.iamprivate(); // illegal
}
}
Alpha类的实例应该包含该类的所有变量和方法。
但是,为什么我们不能调用所有对象的方法? 仅仅因为某些方法是私有的?
看起来类的实例没有类的定义之外的类的私有成员。
对不起,我是初学者。这个问题可能很愚蠢。
答案 0 :(得分:1)
您的方法是私密的
private void iamprivate() {
它只能在你的类中使用,而不能通过实例使用。将其更改为public
答案 1 :(得分:1)
这是因为该方法是private
。这些只能通过Alpha
类的方法访问。如果要在另一个类中访问它,则需要将其声明为public
。
在此处阅读更多内容:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
答案 2 :(得分:1)
但是,为什么我们不能调用所有对象的方法?只因为一些 方法是私有的?
私有方法不会暴露给外部世界,但您始终可以在类中调用私有方法。
看起来类的实例没有类的私有 成员定义之外的成员。
班级拥有所有属性,无论他们是私人/公共。只是私人成员被限制在课外访问。