1

阿尔法.java

class Alpha {
  private void iamprivate() {
    System.out.println("iamprivate");
  }
}

Beta.java

class Beta {
  void accessMethod() {
    Alpha a = new Alpha();
    a.iamprivate();     // illegal
  }
}

Alpha 类的实例应该具有该类的所有变量和方法。

但是,为什么我们不能调用所有对象的方法呢?仅仅因为某些方法是私有的?

看起来类的实例在类的定义之外没有类的私有成员。

对不起,我完全是初学者。这个问题可能很愚蠢。

4

3 回答 3

1

您的方法是私有的

private void iamprivate() {

它只能在你的类内部使用,不能被实例使用。将其更改为public

于 2013-11-04T03:40:41.237 回答
1

那是因为方法是private。这些只能通过Alpha类的方法访问。如果你想在另一个类中访问它,你需要将它声明为public.

在这里阅读更多:http: //docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

于 2013-11-04T03:41:36.090 回答
1

但是,为什么我们不能调用所有对象的方法呢?仅仅因为某些方法是私有的?

私有方法不会暴露给外界,但您始终可以在类中调用私有方法。

看起来类的实例在类的定义之外没有类的私有成员。

类拥有所有属性,无论它们是私有的还是公共的。只是私有成员被限制在类外访问。

于 2013-11-04T03:42:21.253 回答