在外部類的靜態方法中不能建立內部類的例項物件

2021-09-12 18:53:58 字數 354 閱讀 7020

本來想在static的main方法裡面建立這個內部類的物件

idea提示報錯

因為內部類的特點就是,內部類持有外部類的引用,可以訪問外部類的屬性和方法,但是如果是在外部類的靜態方法中進行的建立,那麼就會有問題,因為外部類的靜態方法建立的時候,是不需要外部類物件存在的。

比如說直接 外部類類名.靜態方法 這樣也可以呼叫,這個時候外部類並沒有例項化,因此內部類就無法拿到外部類的引用。

解決方法,將內部類也宣告為static, 但是static的內部類,只能訪問到外部類的static屬性和方法。

在外部類的方法中訪問例項內部類示例

在外部類的方法中訪問例項內部類示例 public class interclass public void showinfo 在程式中interclass類的內部巢狀定義了內部類information。在外部類的userinner方法中定義了乙個內部類的物件,並通過這個物件呼叫了內部類的方法。從程式...

在main()方法中不能建立非靜態內部類的例項

public class outerclass public void foo public class innerclass public static class staticinnerclass 1 非靜態內部類,必須有乙個外部類的引用才能建立。2 在外部類的非靜態方法中,因為有隱含的外部類引...

靜態方法中不能new內部類的例項物件的總結

原文 class test start system.out.println aaaaaa class a 靜態方法中不能new內部類的例項物件。這是為什麼了?內部類的最重要的乙個特點就是它可以直接訪問它外部類的成員變數。成員變數是 物件身上的。物件建立完成了,才會為成員變數分配空間。能呼叫成員變數...