java 基础入门(三)

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/man_zuo/article/details/89060930

参考教材:《Java核心技术 卷一》

前言

第一篇博客讲了Java的一些基础语法,第二篇博客讲了Java面向对象的一些特性,比如对象, 还有java 三大特性 封装继承 ,多态 ,然后还讲到了抽象类的概念, 这篇博客将继续学习java的其他的重要特性。

接口(interface)

首先强调,接口不是一个类,接口主要是用来描述类有什么功能的,但不用给出 每个功能的具体实现。 从功能上来说,接口抽象类是非常类似的。所以在很多情况下,接口和抽象类都是可以相互代替的。之所以 java设计者们又辛苦引入了接口这个概念,是因为 java 里的类是不支持多继承的,就是一个类最多有一个父类,比如一个People 类继承(extends)了Teacher类,就不能再继承Manager类了。Java不支持多继承是因为 多继承会让语言本身变得非常复杂(比如C++),效率也会降低。
那问题来了,如果我非要继承两个类怎么办呢?这种情况下,java 就引入了 接口 这个概念,接口不是类 ,一个类可以实现多个接口。实际上,接口可以提供多继承的大多数好吃,同时还避免了多重继承的复杂性。
接口教程:接口

异常(Exception)处理

在理想状态下,用户输入的数据都是正确的,打开的文件一定存在,程序运行不会出现bug(笑。。
但。。这是不可能滴。在我们程序实际运行过程中,总会发生一些这样或者那样的问题,比如 用户输入错误,或者内部数组越界等等都有可能发生。
另外,如果用户在使用程序时因为程序出现错误,而使得某些操作没有完成,程序应该

  • 返回到一种安全的状态,并能够让用户执行一些其他的命令,或者
  • 运行用户保存所有操作的结果,并以妥善的形式终止程序。

对于程序运行过程中可能出现的异常,java 提供了一种 异常处理 的错误捕获机制。
异常的教程:异常处理

在教程中,列出了很多异常的种类,但是实际上你只需要了解即可,不用强行去背。
只需要掌握try catch及finally的使用以及会手动抛异常即可。在实际开发中,很难精确的捕获可能存在的异常。因此我们常常在catch捕获Exception类,因为Exception是所有异常的父类,能捕获到所有的异常。

//主动抛一个异常 及 异常的捕获
public static void main(String[] args) {
    try {
        throw new Exception("抛出异常");// new一个异常 然后抛出(throw),括号里的字符串是对这个异常的简要说明,可以不写
    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("捕获异常");
    }
}finally{
...//该部分可省略
}

此外,java的异常处理机制还有一个特殊的用法—跳出深层递归。有一次需要实现一个走迷宫的程序,当时笔者因为没学到栈的知识,就用了递归的方法来实现,然后笔者就遇到一个问题,找到迷宫的终点后,如果一次性跳出递归,而不是用return 逐层返回? 然后笔者发现了手动抛异常跳出递归的方法:在需要跳出递归的地方,抛一个异常,就直接跳到catch块里了。。不过这算是一个剑走偏锋的技巧,不太推荐使用,在这里笔者只是单纯的分享一下。

猜你喜欢

转载自blog.csdn.net/man_zuo/article/details/89060930