溫馨提示×

Java中instantiationexception實例分析

小樊
122
2024-10-21 23:24:40
欄目: 編程語言

在Java中,InstantiationException 是一個運行時異常,它發生在試圖通過 new 關鍵字實例化一個類時,但該類或其任何父類都包含一個無參構造函數且該構造函數是私有的(private)。

下面是一個簡單的例子來說明 InstantiationException 的情況:

class MyClass {
    // 私有無參構造函數
    private MyClass() {
        System.out.println("MyClass 的私有構造函數被調用");
    }
}

public class Main {
    public static void main(String[] args) {
        try {
            // 嘗試實例化 MyClass,這將拋出 InstantiationException
            MyClass obj = new MyClass();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
    }
}

在這個例子中,MyClass 類有一個私有的無參構造函數。當我們嘗試使用 new MyClass() 實例化 MyClass 時,Java 無法調用該私有構造函數,因此拋出了 InstantiationException。

注意:如果你嘗試實例化的類或其父類包含一個公共(public)的無參構造函數,那么就不會拋出 InstantiationException。例如:

class MyClass {
    // 公共無參構造函數
    public MyClass() {
        System.out.println("MyClass 的公共構造函數被調用");
    }
}

public class Main {
    public static void main(String[] args) {
        MyClass obj = new MyClass(); // 這里不會拋出 InstantiationException
    }
}

在這個修改后的例子中,MyClass 有一個公共的無參構造函數,所以我們可以成功地實例化它,而不會遇到 InstantiationException。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女