1.内部类的基本介绍
Bird类就是Test类的内部类。
内部类也是拥有访问权限private、protected、public、包权限。特别注意的是它的默认权限是在同一包下访问。
2.局部内部类
局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。
匿名内部类也就是没有名字的内部类。
可以将一个类的定义放在另一个类的定义内部,这就是内部类(引用书中的第一句的介绍)。
public class Test {
String str;
public Test() {
str = "汪汪";
}
class Bird{
public void Voice(){
System.out.println("吱吱");
}
}
}
Bird类就是Test类的内部类。
内部类也是拥有访问权限private、protected、public、包权限。特别注意的是它的默认权限是在同一包下访问。
2.局部内部类
局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。
public class Cat {
public Cat() {
}
public Cat GetCat(){
class SmartCat extends Cat{} //局部内部类
return new SmartCat();
}
}
3.匿名内部类
匿名内部类也就是没有名字的内部类。
abstract class Cat {
public abstract void Sound();
}
public class Test {
public static void main(String[] args) {
Cat cat = new Cat(){
public void Sound(){
System.out.println("我是一只聪明的猫");
}
};
cat.Sound();
}
}
4.静态内部类
静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。
public class Cat {
public Cat() {}
static class MyCat{ //静态内部类
}
}
注:这里针对内部类只是基本的介绍。