前言
大家好,我是Java进阶者。这篇文章我们主要介绍Java基础入门之自定义异常、形参个数可变的方法、水仙花数知识,一起来学习下吧!
一、自定义异常
1.在JDK中定义了很多的异常类,虽然这些异常类可以说在编程时会出现大部分异常的状况,有些时候可能需要描述这个程序中会出现的异常情况。在java中可以让用户自定义异常,但自定义的异常类必须是继承自Exception或其子类。
2.自定义异常语句语法
- class 自定义异常 extends 父异常类名
- {
- 类体;
- }
3.自定义异常的归纳有以下几点:
① 自定义异常类必须是继承自Exception或其子类。
② 一个方法所声明抛出的异常是这个方法与外界交互的一部分而存在的。方法的调用者需要了解这些异常,然后怎样去正确处理它们。
③ 用异常表示错误,不能使用方法的返回的值。
4.自定义异常例子
- //自定义一个DivException异常类继承Exception
- class DivException extends Exception{
- public DivException(){
- super();//调用Exception无参数的构造方法
- }
- public DivException(String msg){
- super(msg);//调用Exception有参数的构造方法
- }
- }
- public class p36 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //定义try...catch语句用来捕获异常
- try{
- int result=div(20,-2);//调用div()方法
- System.out.println(result);
- }catch(DivException e){//捕获并处理异常
- System.out.println(e.getMessage());
- }
- }
- //此方法实现两个整数相除,使用throws关键字声明抛出自定义异常
- public static int div(int a,int b) throws DivException{
- //判断b的值是不是小于0
- if(b<0){
- //使用throw关键字声明抛出异常
- throw new DivException("被除数是一个负数");
- }
- int result=a/b;//定义一个int类型变量result,保存两个数相除结果
- return result;//结果返回值
- }
- }
运行的结果是:
从上面代码中,首先是自定义一个DivException异常类继承Exception,使用try...catch语句,try代码块主要是可能发生异常的代码块,大括号里面调用div()方法传入a=20,b=-2,catch代码块主要是捕获异常并处理。
再定义个div()方法实现两个整数相除,使用throws关键字声明抛出自定义异常,判断这个b的值是不是小于0,,如果是throw关键字抛出异常。
使用try...catch语句捕获div()方法抛出的异常,在调用div()方法传入的被除数不能是小于0的,则会抛出一个自定义DivException,该异常给catch代码块捕获并处理,输出被除数是一个负数。
二、形参个数可变的方法
1.在定义方法时,在最后一个形参的类型后增加三点…,表示这个该形参接受多个参数值,多个参数值被当成数组传入。
2.形参个数可变的方法应用:
- public class p37 {
- // 定义了形参个数可变的方法
- public static void test(int a , String... books){
- // books被作为数组处理
- for (String tmp : books){
- System.out.println(tmp);
- }
- System.out.println(a);
- }
- public static void test(String[] books){
- for (String tmp : books){
- System.out.println(tmp);
- }
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- test(3, "python应用实战" , "Java应用实战");//调用test()方法
- }
- }
输出的结果是:
4.形参个数可变的方法注意的问题:
1)一个方法中最多只能有一个个数可变的形参,并且需要放在所有参数的最后。
2)个数可变的形参它是一个数组类型的形参,当在调用包含个数可变形参的方法时,这个个数可变的形参可以传入多个参数,也可以传入一个数组。
三、水仙花数
1.什么是水仙花数
一个三位数,其各位数字立方和等于该数本身。例如:153=111+555+333=1+125+27
2.求100至999之间的所有“水仙花数”
- public class p38 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.print("100-999的水仙花有:");
- for (int i = 100;i <= 999 ;i++ ) {//获取100到999之间的数
- //个位数
- int a = i % 10;//123 % 10
- //十位数
- int b = i / 10 % 10;//12 % 10;
- //百位数
- int c = i / 10 / 10 % 10;//1 % 10
- if (a * a * a + b * b * b + c * c * c == i) {
- System.out.print(i+"、");
- }
- }
- }
- }
运行的结果是:
从上面的代码中,获取每一个位数的值,个位、十位、百位,然后通过判断各个位上的立方是不是等于这个数,如果是就输出水仙花数,如果不是就不输出。
四、总结
本文主要介绍了自定义异常、形参个数可变的方法、水仙花数。
用户自定义异常,但自定义的异常类必须是继承自Exception或其子类。介绍了自定义异常的语法格式,通过一个案例是如何使用自定义异常。
形参个数可变的方法是在定义方法时,在最后一个形参的类型后增加三点…,表示这个该形参接受多个参数值,多个参数值被当成数组传入。
水仙花数是一个三位数,其各位数字立方和等于该数本身。
希望大家通过本文的学习,对你们有所帮助!
本文转载自微信公众号「Java进阶学习交流」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流 公众号。