创建:内部类的意思就是将类的定义放在另一个类的内部。有时合理的内部类使用会使代码更加简洁,令程序更加巧妙。而且作为外部类的成员,内部类可以访问外部类私有的成员变量。我们先来看看内部类的创建,分这么几种情况:
1、在外部类的非静态方法中创建内部类的实例。
[java] view plain copy
public class InnerClass {
class A{
int a = 10;
void b(){
System.out.println("this is A.b()!");
}
}
void build(){
A a = new A();
a.b();
}
public static void main(String[] args) {
InnerClass ic = new InnerClass();
ic.build();
}
}
2、在外部类的静态方法中创建内部类的实例。
当在外部类的静态方法中创建内部类时,当内部类是静态的:
[java] view plain copy
public class InnerClass {
static class A{
int a = 10;
void b(){
System.out.println("this is A.b()!");
}
}
public static void main(String[] args) {
InnerClass.build();
}
static void build(){
A a = new A();
a.b();
}
}
当内部类是非静态的:
[java] view plain copy
public class InnerClass {
class A{
int a = 10;
void b(){
System.out.println("this is A.b()!");
}
}
public static void main(String[] args) {
InnerClass ic = new InnerClass();
InnerClass.A aa = ic.new A();
aa.b();
}
}
3、在内部类的非静态方法中创建外部类的实例。(使用外部类.this来创建外部类的实例)
[java] view plain copy
public class InnerClass {
class A{
int a = 10;
void build(){
InnerClass ic = InnerClass.this;
ic.a();
}
}
void a(){
System.out.println("this is InnerClass.a()!");
}
}
4、在内部类的静态方法中创建外部类的实例。(直接通过new来创建)
[java] view plain copy
public class InnerClass {
static class A{
int a = 10;
static void build(){
InnerClass ic = new InnerClass();
ic.a();
}
}
void a(){
System.out.println("this is InnerClass.a()!");
}
} |
|