在 Java 中,内部类是一个非常有用的概念,它可以访问包含它的外部类的成员,包括私有成员。
内部类访问外部类的成员
在 Java 中,内部类可以访问包含它的外部类的所有成员,包括私有成员。这是因为内部类是外部类的成员,所以它可以访问外部类的所有成员。
下面是一个示例代码,演示了如何在内部类中访问外部类的成员:
public class Outer {
private int num;
public void method() {
Inner inner = new Inner();
inner.print();
}
public class Inner {
public void print() {
System.out.println(num);
}
}
}
在上面的代码中,Inner
是一个成员内部类,可以访问外部类 Outer
的成员 num
。在 method
方法中,我们创建了一个 Inner
类的对象并调用 print
方法来访问 num
的值。
内部类访问外部类的对象
在 Java 中,内部类可以通过 this
关键字来引用外部类的对象,从而访问外部类的成员。这是因为内部类是外部类的成员,所以它可以访问外部类的所有成员,包括私有成员。
下面是一个示例代码,演示了如何在内部类中访问外部类的对象:
public class Outer {
private int num;
public void method() {
Inner inner = new Inner();
inner.print();
}
public class Inner {
public void print() {
System.out.println(Outer.this.num);
}
}
}
在上面的代码中,Inner
是一个成员内部类,可以通过 Outer.this
来引用外部类 Outer
的对象,并访问其成员 num
。
内部类访问外部类的方法
在 Java 中,内部类可以通过外部类的对象来访问外部类的方法。这是因为内部类是外部类的成员,所以它可以访问外部类的所有成员,包括方法。
下面是一个示例代码,演示了如何在内部类中访问外部类的方法:
public class Outer {
private int num;
public void method() {
Inner inner = new Inner();
inner.print();
}
public void printNum() {
System.out.println(num);
}
public class Inner {
public void print() {
Outer.this.printNum();
}
}
}
在上面的代码中,Inner
是一个成员内部类,可以通过外部类 Outer
的对象来调用其方法 printNum
,从而访问其成员 num
的值。
示例代码
下面是一个完整的示例代码,演示了 Java 内部类访问外部类的成员、对象和方法:
public class Outer {
private int num;
public void method() {
Inner inner = new Inner();
inner.print();
}
public void printNum() {
System.out.println(num);
}
public class Inner {
public void print() {
System.out.println(num);
System.out.println(Outer.this.num);
Outer.this.printNum();
}
}
public static void main(String[] args) {
Outer outer = new Outer();
outer.num = 10;
outer.method();
Outer.Inner inner = outer.new Inner();
inner.print();
}
}
在上面的代码中,我们定义了一个外部类 Outer
,其中包含一个成员内部类 Inner
和一个成员变量 num
。在 main
方法中,我们创建了一个 Outer
对象并为其成员变量 num
赋值。然后我们通过创建 Inner
类的对象并调用其 print
方法来演示内部类访问外部类的成员、对象和方法。同时,我们还演示了如何使用 outer.new Inner()
创建内部类的对象。
总结
Java 内部类是一种非常有用的概念,它可以访问包含它的外部类的成员、对象和方法,包括私有成员和方法。通过这种方式,我们可以在外部类的基础上构建更加灵活和复杂的程序。希望本文对您理解 Java 内部类的访问方法有所帮助。