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

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)

在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中使用预定义的类名作为类或变量名称 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3732.html

    发表笔记

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

    更多阅读