一,内部类的分类
内部类的分类:
* (1),静态内部类:类似于静态变量
* (2),实例内部类:类似于实例变量
* (3),局部内部类:类似于局部变量
public class Innerclass{
public static void main(String[] args){
}
该类在类的内部所以叫内部类
static class Inner1{}//静态内部类
class Inner2{}//实例内部类
public void dosome(){
class Inner3{
//局部内部类
}
}
public void doother(){
// dosome()中的局部内部类在doother()方法中不能用。
}
}
二,匿名内部类
1,使用内部类的代码可读性很差,能不用就尽量不用。
匿名内部类是局部内部类的一种,叫作匿名内部类
public class Innerclass{
public static void main(String[] args){
Mymath math=new Mymath();
//math.mysum(new ComputerImpl(),100,200);
// 这里使用匿名内部类,表示这个computeImpl这个类没名字了
// 这里表面上看上去接口好像可以直接new了,实际上并不是接口可以直接new了
// 后面的{}代表了对接口的实现
// 不建议代码使用匿名内部类,因为匿名内部类没有类名不能重复使用,且代码可读性差
// 学习匿名内部类,主要是为了看懂其他人对代码的这种写法
math.mysum(new Compute() {
@Override
public int sum(int a, int b) {
return a+b;
}
},100,200);
}
该类在类的内部所以叫内部类
static class Inner1{}//静态内部类
class Inner2{}//实例内部类
public void dosome(){
class Inner3{
//局部内部类
}
}
public void doother(){
// dosome()中的局部内部类在doother()方法中不能用。
}
}