java中各种形式的声明之间的区别

Moh*_*hit 0 java variable-declaration

我是Java中的菜鸟,是在python之后学习Java的人.无论如何,我很难搞清楚这一点.假设我有班级

class Bicycle{
      ....
 }
Run Code Online (Sandbox Code Playgroud)

 public class Bicycle{
    ....}
Run Code Online (Sandbox Code Playgroud)

有什么不同.那怎么样?

  public static class Bicycle{
              // if this can be a valid class def in first place
   }
Run Code Online (Sandbox Code Playgroud)

然后,在此之后..让我们谈谈变量.

    class Bicycle{
     int Gear or public int Gear // whats the difference
    }
Run Code Online (Sandbox Code Playgroud)

什么时候使用哪一个?

Pau*_*ora 5

这些关键字(或缺少它们)称为访问修饰符 - 简而言之,它们控制类或成员的可访问性.

类具有以下修饰符:

  • public - 随处可访问
  • (无修饰符) - 只能在同一个包中访问

班级成员有更多可能性:

  • public - 随处可访问
  • protected- 只能在同一个包扩展类中访问
  • (无修饰符) - 只能在同一个包中访问
  • private- 只能在同一类文件中访问*

*请注意,嵌套类可以访问其外部类的private成员,反之亦然.

有关访问修饰符的更多信息,请参见此处.另请参阅基础知识的有用文章.


编辑:我错过了你的中间例子,public static class Bicycle- static这里必须意味着这Bicycle是一个嵌套的类.有关嵌套类的解释,请参阅此页面(我已在下标中链接),该嵌套类分为静态类和非静态类,即内部类.