1. 程式人生 > >靜態內部類及異常測試

靜態內部類及異常測試

//使用throws將異常拋給上級處理 /*public class Shoot{     static void pop()throws NegativeArraySizeException {         int[] arr = new int[-3];     }     public static void main(String args[]) {         try {         pop();         }catch(NegativeArraySizeException e){             System.out.print("異常丟擲");         }              } }*/ //自定義異常使用 /*public class Tran{     static int avg(int number1,int number2)throws MyException{         if(number1<0||number2<0) {             throw new MyException("不可以使用負數");         }         if(number1>100||number2>100) {             throw new MyException("數值太大了");         }         return (number1+number2)/2;     }     public static void  main(String []args) {         try {             int result = avg(99,120);             System.out.println(result);         } catch (MyException e) {             // TODO Auto-generated catch block             System.out.println(e);         }              } } //自定義異常 public class MyException extends Exception{     public MyException(String ErrorMessage) {          super(ErrorMessage);     } } */ //呼叫靜態內部類 /* public class Square { public void  Square() {       System.out.println("正方形"); } public static  class innerClass{       int a =1;       public void innerf() {           System.out.println(a);       } } public static void main(String args[]) {       innerClass inner = new innerClass();       inner.innerf();       Square square = new Square();              } } */ //static類和非static類 /* class OuterClass{   private static String msg = "GeeksForGeeks";   // 靜態內部類   public static class NestedStaticClass{     // 靜態內部類只能訪問外部類的靜態成員     public void printMessage() {      // 試著將msg改成非靜態的,這將導致編譯錯誤       System.out.println("Message from nested static class: " + msg);      }   }   // 非靜態內部類   public class InnerClass{     // 不管是靜態方法還是非靜態方法都可以在非靜態內部類中訪問     public void display(){      System.out.println("Message from non-static nested class: "+ msg);     }   } }  class Main {   // 怎麼建立靜態內部類和非靜態內部類的例項   public static void main(String args[]){     // 建立靜態內部類的例項     OuterClass.NestedStaticClass printer = new OuterClass.NestedStaticClass();     // 建立靜態內部類的非靜態方法     printer.printMessage();  

    // 為了建立非靜態內部類,我們需要外部類的例項     OuterClass outer = new OuterClass();         OuterClass.InnerClass inner = outer.new InnerClass();  //這樣new出來的     // 呼叫非靜態內部類的非靜態方法     inner.display();     // 我們也可以結合以上步驟,一步建立的內部類例項     OuterClass.InnerClass innerObject = new OuterClass().new InnerClass();     // 同樣我們現在可以呼叫內部類方法     innerObject.display();   } } */