可以將一個類的定義放在另一個類的定義內部,這就是內部類(引用書中的第一句的介紹)。
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{ //靜態內部類
}
}
注:這裏針對內部類只是基本的介紹。