内部类
(1) 在类的内部又定义了一个新的类。
(2) 内部类的分类 :
- a) 静态内部类:类似于静态变量
- b) 实例内部类:类似于实例变量
- c) 局部内部类:类似于局部变量
(3) 使用内部类编写的代码,可读性很差,能不用尽量不用。
(4) 匿名内部类是局部内部类的一种。因为这个类没有名字而得名。
示例:
package java核心技术;
public class InClassTest01 {
public static void main(String [] args) {
MyMath01 mm = new MyMath01();
//mm.sum(new ComputeImpl(), 100, 200);
//使用匿名内部类
mm.sum(new Compute() {
public int sum(int a, int b) {
return a + b;
}
}, 100, 200);
}
//静态内部类:前面有static
static class Inner1{
}
//实例内部类:该类在类的内部
class Inner2{
}
public void doSome() {
//局部变量
int i = 100;
//局部内部类:该类在类的内部,方法的内部
class Inner3{
}
}
public void doOther() {
//doSome()方法中的局部内部类Inner3,在doOther中不能被调用
}
}
interface Compute{
int sum(int a, int b);
}
/*
class ComputeImpl implements Compute{
public int sum(int a, int b) {
return a + b;
}
}
*/
class MyMath01{
public void sum(Compute c, int x, int y) {
System.out.println(c.sum(x, y));
}
}