欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 学习文档(二)

学习文档(二)

2024/10/23 23:22:43 来源:https://blog.csdn.net/gghfzs1/article/details/142830927  浏览:    关键词:学习文档(二)

异常

这是Java 异常类层次结构图概览

Exception 和 Error 有什么区别?

一、概念与本质

Exception(异常):异常是在程序运行过程中出现的可预料的、可恢复的不正常情况。例如,试图打开一个不存在的文件时,会抛出FileNotFoundException,这是一种异常。异常通常表示程序运行时的意外情况,但这些情况是可以通过合理的错误处理机制来处理的,使程序能够从异常中恢复并继续执行。

Error(错误) : 错误是指在程序运行过程中发生的严重问题,通常是不可恢复的。例如,OutOfMemoryError表示内存耗尽,这种情况下程序通常无法继续正常运行。错误往往是由于系统资源耗尽、虚拟机内部错误等严重问题导致的。

二、处理方式

Exception(异常):

异常可以被捕获(try - catch 语句块)和处理。例如:

 try {FileInputStream fis = new FileInputStream("nonexistent.txt");} catch (FileNotFoundException e) {// 处理文件不存在的情况,比如提示用户重新输入文件名System.out.println("文件不存在,请检查文件名");}

 有些异常必须在方法签名中声明(受检异常,Checked Exception),如IOException,这样调用该方法的代码就知道需要处理这种异常。

Error(错误):

Error 属于程序无法处理的错误,因为 Error 通常表示严重的系统问题,即使捕获了也很难从这种错误中恢复程序的正常运行。例如,捕获OutOfMemoryError并不能真正解决内存不足的问题,因为此时系统已经处于一种资源极度匮乏的状态。

面向对象的三大特性

封装 

隐藏对象的属性和细节实现,仅对外公开访问方法,控制程序中的读和写的访问级别。

封装的示例代码:

public class Student {private int id;//id属性私有化private String name;//name属性私有化//获取id的方法public int getId() {return id;}//设置id的方法public void setId(int id) {this.id = id;}//获取name的方法public String getName() {return name;}//设置name的方法public void setName(String name) {this.name = name;}
}
继承

继承是面向对象编程中的一个重要概念,它是一种创建新类(称为子类或派生类)的方式,新类从现有的类(称为父类或基类)获取属性(成员变量)和方法。子类继承父类的状态(属性)和行为(方法),使得子类可以重用父类的代码。

关于继承如下 3 点请记住:

  1. 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有
  2. 子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
  3. 子类可以用自己的方式实现父类的方法。

继承的示例代码:

 //继承
class Animal {private String name;public Animal(String name) {this.name = name;}public void eat() {System.out.println(name + " is eating.");}}class Dog extends Animal {public Dog(String name) {super(name);}public void bark() {System.out.println("The dog is barking.");}}//重写
class Dog extends Animal {public Dog(String name) {super(name);}@Overridepublic void eat() {System.out.println(super.getName() + " is eating dog food.");}public void bark() {System.out.println("The dog is barking.");}}
多态

多态表示一个对象具有多种的状态,具体表现为父类的引用指向子类的实例。

多态的特点:

  • 对象类型和引用类型之间具有继承(类)/实现(接口)的关系;
  • 引用类型变量发出的方法调用的到底是哪个类中的方法,必须在程序运行期间才能确定;
  • 多态不能调用“只在子类存在但在父类不存在”的方法;
  • 如果子类重写了父类的方法,真正执行的是子类重写的方法,如果子类没有重写父类的方法,执行的是父类的方法

try-catch-finally如何使用?

  1. try块:用于捕获异常。其后可接零个或多个 catch 块,如果没有 catch 块,则必须跟一个 finally 块。
  2. catch块:用于处理 try 捕获到的异常
  3. finally 块:无论是否捕获或处理异常,finally 块里的语句都会被执行。当在 try 块或 catch 块中遇到 return 语句时,finally 语句块将在方法返回之前被执行。

代码示例:

try {System.out.println("Try to do something");throw new RuntimeException("RuntimeException");
} catch (Exception e) {System.out.println("Catch Exception -> " + e.getMessage());
} finally {System.out.println("Finally");
}

输出结果:

Try to do something
Catch Exception -> RuntimeException
Finally

注意:不要在 finally 语句块中使用 return! 当 try 语句和 finally 语句中都有 return 语句时,try 语句块中的 return 语句会被忽略。这是因为 try 语句中的 return 返回值会先被暂存在一个本地变量中,当执行到 finally 语句中的 return 之后,这个本地变量的值就变为了 finally 语句中的 return 返回值。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com