日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

java 匿名 异常_JAVA类(内部类、匿名内部类、异常、自定义异常)

發(fā)布時(shí)間:2023/12/4 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 匿名 异常_JAVA类(内部类、匿名内部类、异常、自定义异常) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

內(nèi)部類(lèi)

package AA;public class類(lèi) {int de=123;

StringBuffer dee=newStringBuffer();public class成員內(nèi)部類(lèi){public voidff() {

System.out.println("這是成員內(nèi)部類(lèi)方法");

}

}/*1.可以訪問(wèn)外部類(lèi)所有的成員,包括被聲明為私有(private)的;

2.可以使用任何訪問(wèn)權(quán)限修飾符,包括protected和private;*/

public voidff1() {int de1=12;class局部?jī)?nèi)部類(lèi){public voidff() {

System.out.println("局部?jī)?nèi)部類(lèi)方法");

System.out.println(de);

}

}new局部?jī)?nèi)部類(lèi)().ff();

}/*1.不允許使用任何訪問(wèn)權(quán)限修飾符;

2.創(chuàng)建局部?jī)?nèi)部類(lèi)的對(duì)象的語(yǔ)法,必須在聲明局部?jī)?nèi)部類(lèi)之后;調(diào)用只能在該方法里

3.可以訪問(wèn)外部類(lèi)所有的成員,包括被聲明為私有(private)的;*/

private static class靜態(tài)內(nèi)部類(lèi){public voidff() {

System.out.println("這是靜態(tài)內(nèi)部類(lèi)方法");

}

}/*1.只能訪問(wèn)static成員

2.可以使用任何訪問(wèn)權(quán)限修飾符,包括protected和private;

3.可以在其它類(lèi)中直接創(chuàng)建靜態(tài)內(nèi)部類(lèi)的對(duì)象,語(yǔ)法格式為:*/

public voiddy() {new 成員內(nèi)部類(lèi)().ff();//調(diào)用成員內(nèi)部類(lèi)方法

//調(diào)用方法二:? ?類(lèi).成員內(nèi)部類(lèi) de=new 類(lèi).成員內(nèi)部類(lèi)();

new 類(lèi)().ff1();//調(diào)用局部?jī)?nèi)部類(lèi)方法

new 靜態(tài)內(nèi)部類(lèi)().ff();//調(diào)用靜態(tài)內(nèi)部類(lèi)方法

//調(diào)用方法二:類(lèi).靜態(tài)內(nèi)部類(lèi)? de=new 靜態(tài)內(nèi)部類(lèi)();

}public static voidmain(String[] args) {new類(lèi)().dy();

}

}

參考:

匿名內(nèi)部類(lèi)

參考:

抽象類(lèi)

異常

先來(lái)點(diǎn)基礎(chǔ)的:

public classxin {public static voidmain(String[] args) {try{

System.out.println("hhhhh");int de[]=new int[10];

de[10]=12;

}catch(ArrayIndexOutOfBoundsException fr){

System.out.println("chucuo");

}

}

}

上面代碼解釋了:一個(gè)基本異常的基本格式,try{? } ......catch(){? ?}

try。。。catch:不需要拋出異常

自定義異常:

package AA;

import java.util.Scanner;class de1 extends Exception{//首先類(lèi)要繼承Exception(就是異常類(lèi))

publicde1(String fr) {

super(fr);

}

}public classde{public static int fg(int a,int b) throws de1{//聲明方法并且拋出異常(throws de1)

Scanner de1=new Scanner(System.in);

System.out.println("請(qǐng)輸入數(shù)值1");

a=de1.nextInt();

System.out.println("請(qǐng)輸入數(shù)值2");

b=de1.nextInt();if(a<0||b<0) {throw new de1("負(fù)數(shù)錯(cuò)誤");//拋出異常

}if(a>100||b>100) {throw new de1("數(shù)大于100錯(cuò)誤");

}return a+b;

}public static voiddayin() {

System.out.println("異常啦");

}public static voidmain(String[] args) {try{

fg(3123,3123); //調(diào)用上面的方法,下面并且打印出結(jié)果,打印方法是打印方法的返回值//這里的數(shù)字沒(méi)多大用處,主要是不出錯(cuò)//根據(jù)上面的方法給出的變量所以這里必須要加//但是上面有輸入流,就直接將這個(gè)覆蓋了

System.out.println(fg(3123,3123));

}catch(de1 e) {//這個(gè)是try后面必須接的//括號(hào)里面的是異常類(lèi)型,e是結(jié)果

dayin();

System.out.println(e);

}

}

}//1,程序通過(guò)try走,并且執(zhí)行fg方法//2,當(dāng)用戶輸入數(shù)值時(shí),會(huì)進(jìn)行判斷,如果不符合就會(huì)拋出異常(這里是拋在de1類(lèi)里面,關(guān)鍵字:throw new 類(lèi)名)//3,try執(zhí)行已經(jīng)異常了,所以將會(huì)執(zhí)行catch,而catch可以有多個(gè),那個(gè)catch則會(huì)判斷try異常屬于哪一類(lèi)型的異常//4,判斷完后,將會(huì)執(zhí)行catch里面的語(yǔ)句,用來(lái)提示用戶//4的注意:上面的判斷下面什么(負(fù)數(shù)錯(cuò)誤)(da數(shù)錯(cuò)誤),其實(shí)是de1類(lèi)的構(gòu)造string方法,可以去掉,直接在catch里面加提語(yǔ)句都一樣//列如下面:去掉構(gòu)造,在catch里面加已是語(yǔ)句

package AA;

import java.util.Scanner;classde1 extends Exception{

}public classde{static int fg(int a,int b) throws de1{//聲明拋出異常(throws de1)

Scanner de1=new Scanner(System.in);

System.out.println("請(qǐng)輸入數(shù)值1");

a=de1.nextInt();

System.out.println("請(qǐng)輸入數(shù)值2");

b=de1.nextInt();if(a<0||b<0) {throw new de1();//拋出異常,說(shuō)白了就是

}if(a>100||b>100) {throw newde1();

}return a+b;

}static voiddayin() {

System.out.println("異常啦");

}public static voidmain(String[] args) {try{

fg(3123,3123); //調(diào)用上面的方法,下面并且打印出結(jié)果,打印方法是打印方法的返回值//這里的數(shù)字沒(méi)多大用處,主要是不出錯(cuò)//根據(jù)上面的方法給出的變量所以這里必須要加//但是上面有輸入流,就直接將這個(gè)覆蓋了

System.out.println(fg(3123,3123));

}catch(de1 e) {//這個(gè)是try后面必須接的//括號(hào)里面的是異常類(lèi)型,e是結(jié)果

dayin();

System.out.println("有錯(cuò)誤喲!");

System.out.println(e);

}

}

}

結(jié)論:

1,首先一個(gè)自定義異常的要有一個(gè)拋回來(lái)的異常類(lèi),這個(gè)類(lèi)用于其它類(lèi)執(zhí)行的方法時(shí)拋出來(lái)的異常,就拋在這個(gè)類(lèi)里面

注意:這個(gè)類(lèi)必須是繼承Exception(推薦)和RuntimeException

2,然后就可以在‘其他類(lèi)’里面隨意加方法了,

注意:需要拋出異常就必須在方法名后面加throws 類(lèi)名,格式:方法名 throws 類(lèi)名(被拋異常類(lèi))

3,聲明好方法后,就可以了

注意:這里番外哈,1,如果里面有if判斷語(yǔ)句,可以在判斷下方在加個(gè)'異常拋出',格式:throw new 類(lèi)名(被拋異常類(lèi))

2,注意:throw:是放在方法體里面的

throws:是放在方法體上面的(就是方法名上面)

4,接下來(lái)就是用try.....catch了。try里面放異常的方法(說(shuō)白了就是在try里面執(zhí)行方法體)

catch就是異常類(lèi)型了,自定義異常,那‘異常類(lèi)型’肯定就是‘被拋異常類(lèi)名’

catch語(yǔ)句格式:catch(類(lèi)名 返回值(結(jié)果)),結(jié)果隨意

這個(gè)語(yǔ)句一般放在開(kāi)始執(zhí)行程序是調(diào)用方法那里

下面再舉一個(gè)例子:判斷輸出輸入的值是否是負(fù)數(shù)

package hhh;public classhh extends Exception{static inta,c;static int b=211;public static void de(inta1) throws hh{if(a1<0){throw newhh();

}

a=b*a1*21;

System.out.println("輸出:"+a);

}public static voidmain(String []args){try{

de(-6);

}catch(hh re){

System.out.println("負(fù)數(shù)無(wú)效");

}

}

}

執(zhí)行結(jié)果:拋出異常,執(zhí)行catch語(yǔ)句

例子二

package AA;

import java.util.InputMismatchException;

import java.util.Scanner;public class異常 extends Exception{

Scanner de=new Scanner(System.in);public voidks()throws 異常 {try{for(;;) {

System.out.println("請(qǐng)輸入數(shù)字");int dee=de.nextInt();if(dee<0)throw new異常();

System.out.println("正確");

}

}catch(異常 e) {

System.out.println("對(duì)不起你輸入的有誤!!");new異常().ks();

}catch(InputMismatchException ee) {

System.out.println("數(shù)字過(guò)大或者非數(shù)字");new異常().ks();

}

}public static voidmain(String[] args) throws 異常 {new異常().ks();

}

}/*編寫(xiě)程序:判斷用戶輸入的是否為負(fù)數(shù),否則異常*/

執(zhí)行結(jié)果:

(內(nèi)部類(lèi)、匿名類(lèi)、匿名內(nèi)部類(lèi)、抽象類(lèi)、異常、終態(tài))

總結(jié)

以上是生活随笔為你收集整理的java 匿名 异常_JAVA类(内部类、匿名内部类、异常、自定义异常)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。