Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们可以不使用import语句访问内置类吗_Java - Fatal编程技术网

Java 我们可以不使用import语句访问内置类吗

Java 我们可以不使用import语句访问内置类吗,java,Java,我创建了一个类异常,知道已经存在一个具有相同名称的内置子类,如下所示: class Exception { public static void main(String args[]) { int i=8; try{ int a = args.length; int g = i/a; } catch(ArithemticException e){ System.

我创建了一个类异常,知道已经存在一个具有相同名称的内置子类,如下所示:

class Exception {
    public static void main(String args[]) {    
        int i=8;
        try{
            int a = args.length;
            int g = i/a;
        } catch(ArithemticException e){
            System.out.println("here is the error:"+e);
        }
    }
}


class Except7 {
    static int h;
    public static void main(String args[]) {
        try{
            int h = 9 / 0;
            System.out.println("//");
        } catch(ArithmeticException e) {
            h = 4;
            System.out.println(h);
        } catch(Exception e) {
            System.out.println("h");
        }
    }
}
正如您可能已经注意到的,我在前面的代码中编写了错误的“算术”拼写,因此编译器显示了一个错误,它无法找到此符号算术异常。 我所做的是,我没有改变这里的拼写,而是写了另一个代码——后者。在这里,我写了正确的算术拼写,并尝试编译它。它给了我两个错误:

需要不兼容的类型:找到可丢弃的:异常 找不到SymbolarItemException.java 我的疑问是:

我们怎么能如此轻松地更改一个内置的异常类?是因为它是一个抽象类吗

即使我可以直接访问它,也就是说。在没有使用“import”语句的情况下,我不打算更改exception ArithemticException的名称。我只是把它放在一个“捕获”语句中。那么,为什么其他没有“import”语句的程序能够访问它呢。 我也没有创建任何包,可以说它们是受包保护的

以前的程序没有编译,还有其他程序出现了“找不到符号”的错误

我们如何能如此轻松地更改内置的异常类

你不能

发生的情况是,您自己的类异常在导入时没有任何显式的导入语句,因为它与Except7位于同一个包中。因此,在编译Except7时,编译器使用yourPackage.Exception,而不是java.lang.Exception

另见:

一个软件包由多个编译单元组成§7.3。编译单元自动访问其包中声明的所有类型,并自动导入预定义包java.lang中声明的所有公共类型


另请参见

O.K!所以,它转到我当前的目录,它的行为就像我保存在那里的所有程序的默认包。是的,确切地说,是包,而不是目录。另一方面,不要使用默认的包-总是把你的类放在一个具体的包中。所以,实际上阴影正在发生!