![](/img/trans.png)
[英]How can I access static inner class method using object of outer non static class?
[英]How to access outer class variable using inner static class object
我正在用Java學習內部類。 我已經看到,如果內部類是非靜態的,則可以輕松訪問外部類變量。 但是,如果內部類是靜態的,那如何使用靜態的class對象訪問外部類的變量呢?
下面是我的代碼,其中從內部類訪問外部類變量
package org;
public class Outerclass {
String name = "Europe";
public String getname() {
return name;
}
public void setname(String name) {
this.name = name;
System.out.println(this.name);
}
static class innerclass {
void updatename() {
Outerclass o = new Outerclass();
o.setname("USA");
}
}
public static void main(String[] args) {
Outerclass b = new Outerclass();
b.name; // why this error here ? "Syntax error, insert "VariableDeclarators" to complete LocalVariableDeclaration"
innerclass i = new innerclass();
i.updatename();
}
}
您無法訪問靜態內容內的非靜態內容
默認情況下,當我們創建靜態內部類時,它將作為外部模板創建為內部模板的關聯。 因此,我們可以將兩者加載在一起,但是只有靜態的東西才能在靜態內部類中。
現在,類的對象之間沒有連接。 但是模板之間有聯系。
以下是您的代碼,我做了一些修改可能會幫助您
public class Demo {
String name = "Europe";
public String getname() {
return name;
}
public void setname(String name) {
this.name = name;
System.out.println(this.name);
}
static class innerclass {
void updatename() {
Demo o = new Demo();
o.setname("USA");
}
}
public static void main(String[] args) {
Demo b = new Demo();
String a = b.name; // why this error here ? "Syntax error, insert "VariableDeclarators" to complete LocalVariableDeclaration"
System.out.println(a);
innerclass i = new innerclass();
i.updatename();
}
}
內部靜態類行為與普通類相同:
它主要用於兩種情況 :
非靜態內部類:
引用 :
...內部類可以訪問聲明類的所有成員,甚至是私有成員。 實際上,內部類本身就是該類的成員。 因此,遵循面向對象工程的規則,它應該有權訪問該類的所有成員。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.