类和内部类访问修饰符

时间:2016-05-02 10:01:56

标签: java

这可能是一个重复的问题。 但我需要一个明确的答案来回答这个问题。 我很困惑。

对于EG: 我上课要显示时间。

import java.util.Date;

**public** class DateDisplay {

    public static void main(String[] args) {
        Date today = new Date();
        System.out.println(today);
    }
}

同一个包中的类都不会扩展此类。 为什么我不能在私人上宣布一个班级?

为什么JAVA不允许我将类声明为私有?这背后的原因是什么?

我的第二个问题是我应该在哪里使用内部课程? 内在阶级的目的是什么?

2 个答案:

答案 0 :(得分:0)

回答第一个问题:如果你想完成这项工作,请定义一个公共/受保护的类,其中包含一个私有类。因此,私有类只能在其类中访问。

Example:
public class x
{
  private class y
  {
  }
}

此类y只能在第x类中访问 我想这也回答了你的第二个问题, 了解更多信息
https://docs.oracle.com/javase/tutorial/java/javaOO/innerclasses.html

答案 1 :(得分:0)

类上的访问修饰符不仅指定了可以扩展类的位置;它们还指定了可以使用类的位置。

private表示:只能在类本身内部访问。顶级课程private是没有意义的,因为这意味着你根本不能使用该课程 - 任何其他课程都无法使用它。

如果您想让课程外的课程无法访问课程,请使用默认访问级别(根本不指定访问修饰符):

// Only accessible within the same package
class DateDisplay {
    // ...
}

但请注意,使用main方法的类应为public