范例1:访问内部类的私有属性
class Outer{
private String str="Hello";
class Inner{
private String info="World";
public void print() {
System.out.println(Outer.this.str);
}
}
public void fun() {
Inner in=new Inner();
System.out.println(in.info);
}
}
public class Demo {
public static void main(String[] args) {
Outer out=new Outer();
out.fun();
}
}
================分割线================
范例2:实例化内部类
class Outer{
private String str="Hello";
class Inner{
private String info="World";
public void print() {
System.out.println(Outer.this.str);
}
}
public void fun() {
Inner in=new Inner();
System.out.println(in.info);
}
}
public class Demo {
public static void main(String[] args) {
Outer.Inner oi=new Outer().new Inner();
oi.print();
}
}
================分割线================
范例3:使用static定义内部类
class Outer{
private static String msg="Hello World";
static class Inner{
public void print() {
System.out.println(msg);
}
}
}
public class Demo {
public static void main(String[] args) {
Outer.Inner oi=new Outer.Inner();
oi.print();
}
}
================分割线================
范例4:在方法中定义内部类
class Outer {
private String str = "Hello World";
public void fun() {
class Inner {
public void print() {
System.out.println(Outer.this.str);
}
}
new Inner().print();
}
}
public class Demo {
public static void main(String[] args) {
new Outer().fun();
}
}
================分割线================
范例5:在方法中定义内部类
class Outer {
private String str = "Hello World";
public void fun(final int num) {
final double score = 99.9;
class Inner {
public void print() {
System.out.println("属性:" + Outer.this.str);
System.out.println("方法参数:" + num);
System.out.println("方法变量:" + score);
}
}
new Inner().print();
}
}
public class Demo {
public static void main(String[] args) {
new Outer().fun(100);
}
}
