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{
@Overrride
public void eat(){
System.out.println("猫吃鱼...")
}
}
public class AnimalTest{
public static void main(String[] args){
Animal a01 = new Cat();
a01.eat();
Animal a02 = new Animal(){
@Override
public 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(){
@Override
public void method(){
System.out.println("method...")
}
};
my. Method();
}
}
ok了家人们,明天见