我有一个班级说A
,静态嵌套班级说B
。
public class A {
public static class B {
B(Temp x) {
x.reg(this); // need to pass the nested class reference.
}
}
}
以上代码是否正确?我们可以在嵌套的静态类构造函数中使用this
关键字吗?
请帮我解决这个问题。感谢。
答案 0 :(得分:3)
请确保您写的是“公开”,而不是“公开”
答案 1 :(得分:2)
1)嵌套静态类不需要引用外部类,但非静态嵌套类或内部类需要外部类引用。
2)内部类(或非静态嵌套类)可以访问外部类的静态和非静态成员。静态类无法访问外部类的非静态成员。它只能访问外部类的静态成员。
3)如果没有外部类的实例,则无法创建Inner类的实例,而Inner类可以引用它所嵌套的外部类中定义的数据和方法,因此我们不需要将对象的引用传递给Inner类的构造函数。因此,内部类可以使程序简单明了。
有关详细信息,请参阅此http://www.geeksforgeeks.org/static-class-in-java/
答案 2 :(得分:0)
静态类的行为就像static
方法一样。此类属于类,但不属于实例。因此,this
在静态上下文中没有意义。