在Java中使用预定义的类名作为类或变量名称

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)
  •   Java 基础语法

    在Java中使用预定义的类名作为类或变量名称

    在Java中,允许使用预定义的类名作为类或变量名。但是,根据Java规范语言(§3.9),Java中命名的基本规则是不能使用关键字作为类的名称,变量的名称或用于包的文件夹的名称。
    在Java中使用任何预定义的类不会导致此类编译器错误,因为Java预定义的类不是关键字。

    以下是Java中一些无效的类名称:

    boolean break = false; //不允许为关键字
    int boolean = 8; //不允许为boolean关键字
    boolean goto = false; //不允许,因为goto是关键字
    String final =“hi”; //不允许,因为final是关键字

    使用预定义的类名作为用户定义的类名

    1. 问题:我们的class的名称是否可以作为我们程序中预定义的课程名称之一?
      答:是的,我们可以拥有它。以下是使用Number作为用户定义的类的示例

      // Number is predefined class name in java.lang package
      // Note : java.lang package is included in every java program by default
      public class Number
      {
          public static void main (String[] args)
          {
              System.out.println("It works");
          }
      }
      

      输出:

      It works
      
    2. 使用字符串作为用户定义的类:
      // String is predefined class name in java.lang package
      // Note : java.lang package is included in every java program by default
      public class String
      {
          public static void main (String[] args)
          {
              System.out.println("I got confused");
          }
      }
      

      但是,在这种情况下,你会得到像这样的运行时错误:

      Error: Main method not found in class String, please define 
      the main method as:
         public static void main(String[] args)

      说明:这是因为主线程正在寻找具有预定义的String类数组参数的main方法()。但是在这里,它获得了用户定义的String类的主要方法()。每当主线程将看到一个类名称时,它就会尝试按范围搜索该类作用域。首先它会在您的程序中看到,然后在您的包中看到。如果找不到,那么JVM将遵循委托层次结构原则来加载该类。因此,您将得到运行时错误。 要在程序上面运行,我们还可以提供String类的完整路径,即java.lang.String。

      // String is predefined class name in java.lang package
      // Note : java.lang package is included in every java program by default
      public class String
      {
          public static void main (java.lang.String[] args)
          {
              System.out.println("I got confused");
          }
      }
      

      输出:

      I got confused
      

    使用预定义的类名作为用户定义的变量名称

    问题:我们可以在我们的程序中使用一个变量名作为预定义的类名吗?
    答:是的,我们可以使用它。

    // Number is predefined class name in java.lang package
    // Note : java.lang package is included in every java program by default
    public class Number
    {
        // instance variable
        int Number = 20;
        
        public static void main (String[] args)
        {
            // reference variable
            Number Number = new Number();
            
            // printing reference
            System.out.println(Number);
            
            // printing instance variable
            System.out.println(Number.Number);
        }
    }
    

    输出:

    Number@15db9742
    20
  •   Java 基础语法
  •   本文标题:在Java中使用预定义的类名作为类或变量名称 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3732.html
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注