java - java中各种形式声明的区别

标签 java variable-declaration

我是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/

相关文章:

java - 需要帮助 'combining' Java ArrayList 中存在部分重复项

java - 如何使用 JPA(JPQL 或 Criteria API)在 rune 时选择列?

java - 为什么我的 java if 语句不起作用并给我这个错误 : "bad operand types for binary operator ' & &'"?

C++:声明变量来保存函数返回值的最佳方法?

c++ - 为什么 if 语句中声明的变量仍在 else block 的范围内?

java - Weblogic/JDeveloper 凭证映射器问题

java - 为什么 JavaFX table.getItems().clear() 也会清除 ObservableList

javascript - 我如何静态声明一个 Javascript 对象实例(又名 "associative array"),其属性名称(又名键)包含破折号?

Android 构建您的第一个应用程序 4 : Build Error: Cannot find symbol variable EXTRA_MESSAGE

c - 变量声明和数据类型