Java基础入门之自定义异常、形参个数可变的方法、水仙花数

开发 后端
大家好,我是Java进阶者。这篇文章我们主要介绍Java基础入门之自定义异常、形参个数可变的方法、水仙花数知识,一起来学习下吧!

[[381905]]

前言

大家好,我是Java进阶者。这篇文章我们主要介绍Java基础入门之自定义异常、形参个数可变的方法、水仙花数知识,一起来学习下吧!

一、自定义异常

1.在JDK中定义了很多的异常类,虽然这些异常类可以说在编程时会出现大部分异常的状况,有些时候可能需要描述这个程序中会出现的异常情况。在java中可以让用户自定义异常,但自定义的异常类必须是继承自Exception或其子类。

2.自定义异常语句语法

  1. class 自定义异常  extends 父异常类名 
  2. {  
  3. 类体;  

3.自定义异常的归纳有以下几点:

① 自定义异常类必须是继承自Exception或其子类。

② 一个方法所声明抛出的异常是这个方法与外界交互的一部分而存在的。方法的调用者需要了解这些异常,然后怎样去正确处理它们。

③ 用异常表示错误,不能使用方法的返回的值。

4.自定义异常例子

  1. //自定义一个DivException异常类继承Exception 
  2. class DivException extends Exception{ 
  3.         public DivException(){ 
  4.             super();//调用Exception无参数的构造方法 
  5.         } 
  6.         public DivException(String msg){ 
  7.             super(msg);//调用Exception有参数的构造方法 
  8.         } 
  9. public class p36 { 
  10. public static void main(String[] args) { 
  11.         // TODO Auto-generated method stub 
  12.         //定义try...catch语句用来捕获异常 
  13.         try{ 
  14.             int result=div(20,-2);//调用div()方法 
  15.             System.out.println(result); 
  16.         }catch(DivException e){//捕获并处理异常 
  17.             System.out.println(e.getMessage()); 
  18.         } 
  19. //此方法实现两个整数相除,使用throws关键字声明抛出自定义异常 
  20. public static int div(int a,int b) throws DivException{ 
  21.         //判断b的值是不是小于0 
  22.         if(b<0){ 
  23.             //使用throw关键字声明抛出异常 
  24.             throw new DivException("被除数是一个负数"); 
  25.         } 
  26.         int result=a/b;//定义一个int类型变量result,保存两个数相除结果 
  27.         return result;//结果返回值 
  28.   } 

运行的结果是:

从上面代码中,首先是自定义一个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.形参个数可变的方法应用:

  1. public class p37 { 
  2. // 定义了形参个数可变的方法 
  3. public static void test(int a , String... books){ 
  4.         // books被作为数组处理 
  5.         for (String tmp : books){ 
  6.             System.out.println(tmp); 
  7.         } 
  8.         System.out.println(a); 
  9. public static void test(String[] books){ 
  10.         for (String tmp : books){ 
  11.             System.out.println(tmp); 
  12.         } 
  13. public static void main(String[] args) { 
  14.         // TODO Auto-generated method stub 
  15.           test(3, "python应用实战" , "Java应用实战");//调用test()方法 
  16.   } 

输出的结果是:

4.形参个数可变的方法注意的问题:

1)一个方法中最多只能有一个个数可变的形参,并且需要放在所有参数的最后。

2)个数可变的形参它是一个数组类型的形参,当在调用包含个数可变形参的方法时,这个个数可变的形参可以传入多个参数,也可以传入一个数组。

三、水仙花数

1.什么是水仙花数

一个三位数,其各位数字立方和等于该数本身。例如:153=111+555+333=1+125+27

2.求100至999之间的所有“水仙花数”

  1. public class p38 { 
  2.   public static void main(String[] args) { 
  3.     // TODO Auto-generated method stub 
  4.     System.out.print("100-999的水仙花有:"); 
  5.     for (int i = 100;i <= 999 ;i++ ) {//获取100到999之间的数 
  6.       //个位数 
  7.       int a = i % 10;//123 % 10 
  8.       //十位数 
  9.       int b = i / 10 % 10;//12 % 10; 
  10.           //百位数 
  11.         int c = i / 10 / 10 % 10;//1 % 10 
  12.         if (a * a * a + b * b * b + c * c * c == i) { 
  13.           System.out.print(i+"、");  
  14.         } 
  15.       } 
  16.     } 

运行的结果是:

从上面的代码中,获取每一个位数的值,个位、十位、百位,然后通过判断各个位上的立方是不是等于这个数,如果是就输出水仙花数,如果不是就不输出。

四、总结

本文主要介绍了自定义异常、形参个数可变的方法、水仙花数。

用户自定义异常,但自定义的异常类必须是继承自Exception或其子类。介绍了自定义异常的语法格式,通过一个案例是如何使用自定义异常。

形参个数可变的方法是在定义方法时,在最后一个形参的类型后增加三点…,表示这个该形参接受多个参数值,多个参数值被当成数组传入。

水仙花数是一个三位数,其各位数字立方和等于该数本身。

希望大家通过本文的学习,对你们有所帮助!

本文转载自微信公众号「Java进阶学习交流」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流  公众号。

 

责任编辑:武晓燕 来源: Java进阶学习交流
相关推荐

2021-07-26 10:00:18

Java完全数水仙花数

2011-12-16 14:23:51

Java

2021-02-22 08:39:03

Java关键字Java基础

2021-02-25 08:40:19

Java异常分类异常防护

2009-12-03 10:49:32

PHP自定义异常处理器

2011-12-26 10:11:08

JSP

2011-08-18 09:44:33

iPhone SDK仪表控件UIDialView

2021-06-17 06:52:37

C#自定义异常

2017-02-17 09:37:12

Android自定义控件方法总结

2009-08-03 16:37:49

C#异常类

2009-12-23 14:49:46

WPF面板

2020-03-28 16:04:26

数据科学Matplotlib图表

2009-08-06 09:18:01

ASP.NET自定义控ASP.NET控件开发

2021-12-24 15:46:23

鸿蒙HarmonyOS应用

2009-08-05 17:03:37

C#自定义控件

2009-08-05 18:01:20

C#自定义异常处理

2024-08-02 10:21:32

C#Exception类自定义异常

2022-06-30 14:02:07

鸿蒙开发消息弹窗组件

2021-10-26 10:07:02

鸿蒙HarmonyOS应用

2011-08-02 11:17:13

iOS开发 View
点赞
收藏

51CTO技术栈公众号