一,内部类-成员内部类,静态内部类
成员内部类
1.是什么?如何创建对象?
(1)就是类中的一个普通成员,类似我们之前学过的普通成员变量,成员方法
(2)外部类名.内部类名 对象名=new 外部类().new 内部类();
2.成员内部类的实例方法中,访问其他成员特点?
(1)可以直接访问外部类的实例成员,静态成员
(2)可以拿到当前外部对象,格式是:外部类名.this
public void test(){
int age=66;
System.out.println(age);//内部方法中
System.out.println(this.age);//内部类
System.out.println(Outer.this.age);//外部类
}
静态内部类
1.什么是?如何创建对象?特点?
(1)有static修饰的内部类
(2)外部类名.内部类名 对象名=new 外部类.内部类();
二,匿名内部类,场景
1.匿名内部类的书写格式?
/**
new 类或接口(参数值...){
类名(一般是方法重写);
};
new Animal(){
@Override
public void cry() {
System.out.println("喵喵喵的叫~~");
}
};
2.特点?
匿名内部类本质就是一个子类,并会立即创建出一个子类对象
3.作用,应用场景?
(1)可以更方便的创建一个子类对象
(2)匿名内部类通常作为一个参数传输给方法
三,枚举
1.特点
public enum A {
x,y,z;
}
(1)枚举第一行只能罗列一些名称,这些名称都是常量,并且每个常量都是枚举类的一个对象
(2)枚举类的构造器都是私有的(写不写都只能是私有),因此,枚举类不能创建对象
(3)枚举都是最终类,不可以被继承
(4)枚举类中,从第二行开始,可以定义类的其他成员变量
(5)编译器为枚举类新增了几个方法,并且枚举类都是继承:java.lang.Enum类的
从enum类也会继承到一些方法
A[] as=A.values();//拿到全部对象
A a3=A.valueOf("z");//单个
五,认识泛型,泛型类,泛型接口
1.泛型
(1)定义类,接口,方法时,同时声明了一个或者多个类型变量<E>,称为泛型类,接口...
(2)作用:泛型提供了在编译段约束所能操作的数据类型,并自动进行检查的能力,可以避免强制类型转换出现的异常
六,泛型方法,泛型的通配符和泛型的的上下极限,泛型的注意事
1.通配符
就是“?”,可以在使用泛型的时候代表一切类型;ETKV是在定义泛型的时候使用
2.泛型的上下限
上限:?extends Car:?能接受的必须是Car或者其子类
下限:?super Car:?能接受的必须是Car或者其父类
public static void go(ArrayList<? extends Car> cars){}