我读取静态可以应用于嵌套类。因此,无需创建对象即可访问。我将此作为输出。
存储在str中的字符串是 - 内部类Example1 我的代码:
cardview:cardUseCompatPadding="true"
答案 0 :(得分:1)
<强>声明强>
class OuterClass {
...
static class StaticNestedClass {
...
}
class InnerClass {
...
}
要为静态嵌套类创建对象,请使用以下语法:
OuterClass.StaticNestedClass nestedObject =
new OuterClass.StaticNestedClass();
请参阅http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
更新: -
我在程序下运行并且运行没有任何错误
class Example1{
//Static class
static class X{
static String str="Inside Class X";
}
public static void main(String args[])
{
X.str="Inside Class Example1";
System.out.println("String stored in str is- "+ X.str);
}
}
答案 1 :(得分:1)
您的代码运行正常,没有任何错误。
您可以访问静态内部类的静态方法/字段,而无需访问 创建静态内部类的任何对象。但是如果你想访问 来自另一个的静态内部类的任何非静态方法/字段 在class中,您将需要创建静态内部类的对象。
class Example1 {
// Static class
static class X {
static String str = "Inside Class X";
public void display() {
System.out.println("I am in display method");
}
}
}
public class StaticInnerDemo {
public static void main(String[] args) {
//Accessing static field of an static inner class
Example1.X.str = "Inside Class Example1";
System.out.println("String stored in str is- " + Example1.X.str);
//Accessing non static method of static inner class.
Example1.X ob = new Example1.X();
ob.display();
}
}
答案 2 :(得分:0)
它不需要外部类的实例来引用内部类,因为内部类是静态的。
public class Outer {
public static class Inner {
}
public static void main(String[] args) {
Inner inner = new Inner();
}
}