内部类:成员内部类—局部内部类(方法,代码块,构造器)
/*
* 外部类Lei,和各种内部类
*
* 内部类:通用类的作用:
* 可以写方法,构造器,定义属性
* 可以用final修饰,修时候不能继承,没有子类,不修饰可以继承
* 可以用abstract修饰,抽象类
*
* 作为内部类而有的不同点:
* 可以用static修饰了,外部类是不可以的。
* 可以用4种修饰符,public private protected default,外部类只能用public
* 可以调用外部类的结构(属性,方法)
*
* 操作:main()在后面
*
* 附加: 1:this.参数(内部类实例化对象的参数=内部类中的属性)
* 2:外部类.this.参数(外部类实例化对象的参数=外部类中的属性)
*/
class Lei{
//成员内部类(静态和非静态)
class FeiJingTai{
public void nameFeiJingTai() {
System.out.println("成员内部类(非静态)");
}
}
static class JingTai{
public void nameJingTai() {
System.out.println("成员内部类(静态)");
}
}
/*
* 构造器内
*/
public Lei(){
//局部内部类(在构造器内)
//且不能用static修饰,只能用abstract,final修饰
class GouZaoQiJuBuNeiBuLei{
}
}
/*
* 代码块内
*/
{
//局部内部类(在代码块内)
//且不能用static修饰,只能用abstract,final修饰
class DaiMaKuaiJuBuNeiBuLei{
}
}
/*
* 方法内
*/
public void name() {
//局部内部类(在方法内)
//且不能用static修饰,只能用abstract,final修饰
class JuBuNeiBuLei{
}
}
}
/*
* 操作内部类,实例化内部类
*/
public class Java{
public static void main(String[] args){
//实例化 静态成员内部类的对象(成员内部类不是方法中的内部类)
//格式:外部类.内部类 mingzi = new 外部类.内部类();
Lei.JingTai jingTai = new Lei.JingTai();
jingTai.nameJingTai();//调用方法
//实例化 非静态成员内部类的对象(成员内部类不是方法中的内部类)
//步骤:先要实例化外部类,在用外部类new内部类
//格式:内部类 内部类名 = 外部类的对象名.new 内部类();
Lei lei = new Lei();
FeiJingTai feiJingTai = lei.new FeiJingTai();
feiJingTai.nameFeiJingTai();//调用方法
}
}