ok了家人们,今天学习了内部类,话不多说我们一起看看吧。
一,内部类
1.1 内部类概述
将一个类 A 定义在另一个类 B 里面,里面的那个类 A 就称为 内部
类 , B 则称为 外部类 。
内部类分为成员内部类与局部内部类。
1.2 成员内部类
成员内部类 :定义在 类中方法外 的类。
public class 外部类{public class 内部类{}}
public class Outer{class Inter {// 成员变量public int num=10;// 成员方法public void method01(){System.out.println("inner...method01...")}}
}
1.3 成员内部类访问特点
在其他类中 , 需要创建成员内部类对象来访问内部类成员
外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
在外部类中访问成员内部类的成员 , 需要创建成员内部类对象
在成员内部类中可以直接访问外部类的一切成员 ( 包含私有的)
public class Outer{public int num01 = 20;public void method01(){// 创建内部类对象// Outer.Inner in = new Outer().new Ineer();Inner in = new Inner();System.out.println(in.num);in.method();}public void method(){System.out.println("外部类...method...")}class Inner{//成员变量public int num = 10;//成员方法public void method02(){System.out.println("inner...method...")//访问外部成员System.out.println(num02);method();}}
}
pubic class OuterTest{public static void main(String[] args){// 在其他类中,需要创建成员内部类对象来访问内部类成员Outer.Inner in = new Outer().new Inner();System.out.println(in.num)in.method02();System.out.println("--------------")//在外部类中访问成员内部类的成员,需要创建成员内 部类对象Outer out = new Outer();out. Method01();}
}
二.匿名内部类
2.1 匿名内部类概述
匿名内部类 :是内部类的简化写法。它的本质是一个带具体实现的 父类或者父接口的匿名的 子类对象 。
new 类名/接口名(){方法重写
};
2.2 匿名内部类作用
匿名内部类的作用 : 为了简化代码 , 并没有什么特殊的功能
pubic abstract class Animal {public abstract void eat;}public class Cat extends Animal{@Overrridepublic void eat(){System.out.println("猫吃鱼...")}
}
public class AnimalTest{public static void main(String[] args){Animal a01 = new Cat();a01.eat();Animal a02 = new Animal(){@Overridepublic void eat(){System.out.println("eat...");}};a02.eat();}
}
public interface MyInter{void method();
}
public class DomeTest{public static void main(String[] args){MyInter my = new MyInter(){@Overridepublic void method(){System.out.println("method...")}};my. Method();
}}
ok了家人们,明天见