在一个类的内部还存在另一个类, 则成为内部类。
使用static 可以生命一个内部类, 声明的内部类就称为外部类,可以直接在类的外部调用,但是如果想要在外部类访问类中的属性,则此属性必须是static 访问权限。
一个类除了可以通过外部类访问,也可以直接在其他类中调用,但是调用的格式:
外部类.内部类 内部类对象 = 外部类实例.new 内部类();
上一个demo:
package com.lyne.mldn_java.chapter5;
/**
* Created by Administrator on 2014/4/23.
*/
public class InnerClassDemo3 {
public static void main(String[] args){
Outer2 outer = new Outer2();
Outer2.Inner5 innter5 = new Outer2.Inner5(); //访问静态的内部类的方式
Outer2.Innter2 innter2 = outer.new Innter2(); //访问非晶态内部类的方式
innter2.print();
innter5.print();
}
}
class Outer2{
private String name="外部类";
private static String info="hello world";
public class Innter2{
public void print(){
System.out.println(this.getClass()+"--->"+name);
}
private void print(String msg){
System.out.println(this.getClass()+"--->"+name);
}
}
class Inner3{
public void print(){
System.out.println(this.getClass()+"--->"+name);
}
}
static class Inner5{
public void print(){
System.out.println(this.getClass()+"--->"+info);
}
}
public void println(){
new Inner3().print(); //内部访问方式
new Inner5().print();
}
}