Java构造方法 super 及自定义异常throw合集详解用法

Java构造方法 super 及自定义异常 throw 合集详解用法

构造方法 super

Java中一个类可以有多个构造方法,开发者可以选择不同的构造方法来满足不同的需求,但是必须保证类中至少存在一个构造方法。在子类构造方法中除了继承父类构造方法外,还有另外一种重要的方式——调用父类构造方法,可以使用super()super(参数)语句来实现。

super()语句用于调用父类无参构造方法,它必须是子类构造方法的第一条语句,如果没有显式地使用super(),Java编译器会自动加上这条语句。

下面的代码展示了如何在子类构造方法中调用父类构造方法:

public class Animal {
    private String name;
    public Animal(String name) {
        this.name = name;
    }
}

public class Dog extends Animal {
    private String breed;
    public Dog(String name, String breed) {
        super(name);
        this.breed = breed;
    }
}

在上面的代码中,Dog类继承了Animal类,Dog类中的构造方法使用super(name)语句调用了Animal类中的构造方法,从而为Dog对象的name属性赋值。

自定义异常 throw

Java中,我们可以使用内置的异常类来处理错误,例如NullPointerException、ArrayIndexOutOfBoundsException等。但在实际开发中,我们常常需要自定义异常来处理更复杂的错误情况,这时就需要使用throw语句来抛出异常。

自定义异常通常需要继承于Exception类或其子类,且必须实现Exception类或其子类中定义的至少一个构造方法。

下面的代码展示了如何自定义异常类:

public class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

public class Test {
    public static void main(String[] args) {
        int i = 1;
        try {
            if (i == 1) {
                throw new MyException("发生了自定义异常。");
            }
        } catch (MyException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,MyException类继承了Exception类,并实现了构造方法MyException(String message)。在Test类的main方法中,我们使用throw语句抛出了一个MyException类型的异常。当i等于1时,程序会执行throw new MyException("发生了自定义异常。")语句,从而触发MyException类型的异常处理块。

示例

示例1:使用super语句调用父类构造方法

public class Car {
    private String brand;
    public Car(String brand) {
        this.brand = brand;
    }
}

public class Bmw extends Car {
    private String model;
    public Bmw(String brand, String model) {
        super(brand);
        this.model = model;
    }
}

public class Test {
    public static void main(String[] args) {
        Bmw bmw = new Bmw("BMW", "X6");
        System.out.println(bmw);
    }
}

在上面的代码中,我们定义了一个Bmw类来继承Car类,并添加了一个字符串类型的model属性。在Bmw类的构造方法中,我们使用super(brand)语句调用了Car类中的构造方法,初始化了Bmw对象的brand属性。在Test类的main方法中,我们使用Bmw类创建一个Bmw对象,并打印对象的信息。

示例2:使用throw语句抛出自定义异常

public class ScoreException extends Exception {
    public ScoreException(String message) {
        super(message);
    }
}

public class Test {
    public static void main(String[] args) {
        int score = 85;
        try {
            if (score < 90) {
                throw new ScoreException("分数不合格,需要重修。");
            }
        } catch (ScoreException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们定义了一个ScoreException类来继承Exception类,并实现了构造方法ScoreException(String message)。在Test类的main方法中,我们定义了一个int类型的score变量并赋值为85,然后使用throw语句抛出了一个ScoreException类型的异常。当score小于90时,程序会执行throw new ScoreException("分数不合格,需要重修。")语句,从而抛出ScoreException异常,并打印堆栈信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java构造方法 super 及自定义异常throw合集详解用法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 详解Java中数组判断元素存在几种方式比较

    详解Java中数组判断元素存在几种方式比较 在Java编程中,需要经常判断一个元素是否存在于数组中。本篇攻略将详细讲解Java中数组判断元素是否存在的几种方式比较。 方式一:使用循环遍历数组 使用循环遍历数组是最常见的一种判断元素是否存在的方式。具体过程如下: public boolean isExist(int[] arr, int k) { for (i…

    Java 2023年5月26日
    00
  • Java笔记(15) Collection集合–>List集合

    集合的理解和好处数组一旦定义,长度即固定,不能修改。要添加新元素需要新建数组,然后循环拷贝,非常麻烦 集合可以动态保存任意多个对象,使用比较方便 提供饿了一系列方便的操作对象的方法:add、remove、set、get等 使用集合添加、删除新元素的示意代码,简洁明了 集合主要是两组(单列集合,双列集合)Collection 接口有两个重要的子接口,List …

    Java 2023年4月17日
    00
  • 动态jsp页面转PDF输出到页面的实现方法

    实现将动态jsp页面转成PDF输出到页面的方法可以通过Java的iText库来实现。主要思路是生成jsp页面的HTML文本,然后使用iText将HTML转换成PDF格式的文档,并将生成的PDF文档输出到页面上。 以下是实现该方法的详细步骤: 1. 引入iText库 在项目中引入iText库的jar包。iText提供了将HTML转换成PDF的功能,可通过以下代…

    Java 2023年6月15日
    00
  • Mybatis Plus 增删改查的实现(小白教程)

    MyBatis Plus 是基于 MyBatis 的增强工具,简化了 MyBatis 的使用,提供了很多增强功能。相比于原生 MyBatis,MyBatis Plus 更加易用,使用 MyBatis Plus 可以加快开发效率。本文主要介绍如何使用 MyBatis Plus 进行常见的增删改查操作。 安装 MyBatis Plus 要使用 MyBatis P…

    Java 2023年5月20日
    00
  • json对象和formData相互转换的方式详解

    下面是“json对象和formData相互转换的方式详解”的完整攻略。 简介 在前端开发中,我们经常需要将数据从JSON对象转换为FormData对象,或者反过来。FormData对象用于在表单中传输数据,而JSON对象用于在不同应用程序之间传递数据。本文将介绍如何将JSON对象转换为FormData对象,以及如何将FormData对象转换为JSON对象。 …

    Java 2023年5月26日
    00
  • spring多数据源配置实现方法实例分析

    Spring多数据源配置实现方法实例分析 在Spring应用中,我们经常需要连接多个数据库进行操作,此时需要使用到多数据源配置。本文将介绍如何在Spring框架中配置多数据源,并通过一个示例演示其使用方法。 一、添加多数据源依赖 在进行多数据源配置前,需先在pom.xml文件中添加相应的依赖: <dependency> <groupId&g…

    Java 2023年5月20日
    00
  • Java数组传递及可变参数操作实例详解

    Java数组传递及可变参数操作实例详解 在Java中,数组有时需要被作为参数传递给一个方法或者函数,然后再在该方法或函数中进行使用。另外,有时候我们也需要在参数列表中使用可变参数。本文将详细讲解Java数组传递及可变参数的操作实例。 Java数组传递 Java中的数组是一种引用类型,而非基本数据类型。这意味着,传递数组时,我们实际上传递的是数组引用的副本,而…

    Java 2023年5月26日
    00
  • 利用JSP session对象保持住登录状态

    利用JSP的session对象可以实现用户登录状态的保持和管理,下面是完整的攻略: 创建登录页面 创建一个简单的登录页面,包含一个用户名和密码的表单,在提交时向服务器发送POST请求。 示例代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部