[2025.1.1 JavaSE学习]内部类 && 异常

内部类

package mypkg.demo01

public class Outer{
    private int id;
	public void out(){
	    System.out.println("外部类方法");
	}
	
	public class Inner{
	    public void in(){
		    System.out.println("内部类方法");
		}
	}
}
  • 实例化内部类之前,需要先将外部类进行实例化:
import mypkg.demo01.Outer
public class test{
    public static void main(String[] args){
	    Outer outer = new Outer();
		Outer.Inner inner = outer.new Inner();
	}
}
  • 静态的内部类无法访问外部类的非静态的成员,因为内部类会在类加载时候被加载,而此时外部类还未实例化,内部成员还未存在
  • 一个java类中可以有多个class,但是只能有一个public class
  • 匿名类:
public class Test{
    public static void main(String[] args){
	    new A().method();//匿名类可以不使用引用初始化类,即不需要将实例保存至变量中
	}
	class A{
	    public void method(){
		    Systen.out.println("1");
		}
	}
}

异常(Exception)

三种异常

  • 检查性异常:比如用户错误或者问题引起的异常,无法预见,例如打开一个不存在的文件,不可在编译时被忽略
  • 运行时异常:是可被避免的异常,可以在编译时被忽略
  • 错误:错误不是异常,例如栈溢出
  • java把异常当作对象处理,并定义基类java.lang.Throwable作为所有异常的基类,Java API中定义如下:
    image

1、Error:由Java虚拟机生成并抛出,大多数与代码编写者执行的操作无关,下面介绍几个常见的ERROR:

  • Virtual MachineError:当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时,JVM一般会选择线程终止
  • 还有发生在虚拟机试图执行应用时,如类定义错误(NoClassDefFoundError)链接错误(LinkageError)。这些错误都是不可查的,因为它们在应用程序的控制和处理能力之外,且大部分都是程序运行时不允许出现的情况

2、Exception:其中重要子类RuntimeException

  • ArrayIndexOutBoundException(数组下标越界)
  • NullPointerException(空指针异常)
  • ArithmeticException(算术异常)
  • MissingResourceException(丢失资源)
  • ClassNotFoundException(找不到类)
  • ......
    这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理

3、Error和Exception的区别:Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,JVM会选择终止线程;而Exception通常可以被程序处理

posted @ 2025-01-02 02:48  Luna-Evelyn  阅读(17)  评论(0)    收藏  举报