在嵌套的静态类java中使用“this”关键字

时间:2013-11-18 05:52:17

标签: java static static-class

我有一个班级说A,静态嵌套班级说B

public class A {
    public static class B {
        B(Temp x) {
            x.reg(this); // need to pass the nested class reference.
        }
    }
}

以上代码是否正确?我们可以在嵌套的静态类构造函数中使用this关键字吗?

请帮我解决这个问题。感谢。

3 个答案:

答案 0 :(得分:3)

是的,确实如此。对于运行时,内部类只是另一个独立的类。如果内部类不是静态的,它只会引用外部类,但在你的情况下,它是静态的,所以不是偶数,所以它就像你在新文件中创建了一个新类

请确保您写的是“公开”,而不是“公开”

答案 1 :(得分:2)

1)嵌套静态类不需要引用外部类,但非静态嵌套类或内部类需要外部类引用。

2)内部类(或非静态嵌套类)可以访问外部类的静态和非静态成员。静态类无法访问外部类的非静态成员。它只能访问外部类的静态成员。

3)如果没有外部类的实例,则无法创建Inner类的实例,而Inner类可以引用它所嵌套的外部类中定义的数据和方法,因此我们不需要将对象的引用传递给Inner类的构造函数。因此,内部类可以使程序简单明了。

有关详细信息,请参阅此http://www.geeksforgeeks.org/static-class-in-java/

答案 2 :(得分:0)

静态类的行为就像static方法一样。此类属于类,但不属于实例。因此,this在静态上下文中没有意义。