1,java中,允许在类中介绍类。这种声明在类的内部的类称为嵌套类,也可以叫内部类。
2,嵌套类对象可以访问创建它的外部类的所有属性和方法、
3,嵌套类通过在其外部类环境内的嵌套声明,不为同一包的其他类所见。可以支持更高层次的封装。
4,嵌套类可以很方便地定义运行时回调。
5,嵌套类在编写事件处理程序很方便。
6,被static修饰的嵌套类被称为静态嵌套类,静态嵌套类中可以声明static成员或者非静态成员,但是只能访问外部的静态成员。
下面是我写的嵌套类程序
Outer.java
package com.qiantao1.java;
public class Outer //外部类
{
public void test()
{
System.out.println("这是外部类");
}
public void accessInner()
{
Inner inner=new Inner();
inner.display();
}
public class Inner //嵌套类
{
public void display()
{
System.out.println("外部的i="+outer_i);
test();
System.out.println("内部的i="+this.inner_i);
System.out.println(j);
System.out.println(Outer.this.j);
}
private int inner_i=100;
private int j=200;
}
private int outer_i=300;
private int j=400;
}
Test1.java
package com.qiantao1.java;
public class Test1
{
public static void main(String [] args)
{
Outer outer=new Outer();
outer.test();
outer.accessInner();
System.out.println();
Outer.Inner inner=outer.new Inner(); //定义嵌套类的。
// Outer.Inner inner=new Outer.Inner();
// Outer.Inner.display();
inner.display();
}
}
静态嵌套程序如下:
package com.qiantao2.java;
import com.qiantao1.java.Outer;
public class Statictest {
public static void main(String [] args)
{
Outer1 outer=new Outer1();
outer.test1();
Outer1.Inner.display(); //第一种设置对象
//Outer1.Inner inner=outer.new Inner();
//Inner inner =new Inner();
Outer1.Inner inner=new Outer1.Inner(); //第二种设置对象。 只有静态嵌套类,才能使用这样建立对象。
inner.test();
}
}
class Outer1
{
private static int outer_i=100;
private int j=200;
public static void test1()
{
Inner.display();
//Inner.test();
}
public static class Inner{
public static String str="华东师范大学";
private int i=200;
public static void display()
{
System.out.println("外部的类outer_i"+outer_i);
}
public void test()
{
System.out.println(str);
//System.out.println(j);
System.out.println(i);
}
}
}