1.成员内部类
概念:是与成员变量同位置非static 修饰的类
成员内部类不能申明static的成员(因为他自己是外部了对象的.可以点出来的)
创建对象格式 先创建父类对象 “ 内部类 对象名=父类对象名.new 内部类() ”
2.局部内部类
概念:是与局部变量同位置的 非
如果局部内部类里面的方法想要访问本类所在的方法的变量 ,此变量必须是finall 修饰 (一般都是参数位置改为finall修饰)
3.静态内部类
概念:是与成员变量同位置的由static修饰的类
与成员内部类的区别是可以申明staic的成员了并且可以访问到
4.匿名内部类
概念:一个没有名字的内部类
这个类只想有一个人对象 =》用匿名内部类
多用于,接口和抽象类的实现
案例:学校指派老师上课
如果是奇数上java课 如果是偶数上html课
接口如下:
public interface Teacher {
void teach();
}
类如下:
public class School {
//有一个获取老师的功能
public static Teacher getTeacher(int i){
if(i%2==0){
return new Teacher(){
@Override
public void teach() {
System.out.println("上html课");
}
};
}else{
return new Teacher(){
@Override
public void teach() {
System.out.println("上的就是java课");
}
};
}
}
public static void main(String[] args){
Teacher java=getTeacher(12);
java.teach();
}
}
悄悄的@娇美老师 哈哈哈哈~