JAVA每日作业day6.27

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了家人们,明天见

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值