我是Java菜鸟,是继Python之后又学习Java的人。 无论如何,我很难弄清楚这一点。 假设我有课
class Bicycle{
....
}
和
public class Bicycle{
....}
有什么区别。 那么呢
public static class Bicycle{
// if this can be a valid class def in first place
}
然后,在此之后..让我们谈谈变量。
class Bicycle{
int Gear or public int Gear // whats the difference
}
何时使用哪一个?
最佳答案
这些关键字(或缺少关键字)被称为访问修饰符 - 简而言之,它们控制类或成员的可访问性。
类具有以下修饰符:
public
- 可在任何地方访问- (无修饰符)- 只能在同一包中访问
类(class)成员有更多的可能性:
public
- 可在任何地方访问protected
- 只能在同一包或扩展类中访问- (无修饰符)- 只能在同一包中访问
private
- 只能在同一类文件中访问*
*请注意nested classes可以访问其外部类的 private
成员,反之亦然。
有关访问修饰符的更多信息可以找到here.另请参阅this helpful article了解基础知识。
<小时/>编辑:我错过了你的中间示例,其中 public static class Bicycle
- 这里的 static
必须意味着 Bicycle
是一个嵌套类。请参阅this page (我已经在下标中链接了它)以解释嵌套类,嵌套类分为静态类和非静态类(又称内部类)。
关于java - java中各种形式声明的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060707/