自学java (day25):内部类

//alt+回车是纠错的:
/**
 *      匿名内部类(类没有名字):
 *          1、什么是内部类 ?
 *              内部类:是在类的内部又定义了一个新的类。被称为内部类。
 *          2、内部类的分类:
 *              静态内部类:类似于静态变量
 *              实例内部类:类似于实例变量
 *              局部内部类:类似于局部变量
 *          3、使用内部类编写的代码可读性差,能不用就不用
 *          4、匿名内部类属于局部内部类的一种
 *             因为这个类没有名字而得名,叫做匿名内部类
 *          5、学习匿名内部类主要是为了以后读别人的代码可以读懂,并不代表以后这样写,因为匿名内部类有两个缺点:
 *              1、太复杂,太乱 可读性差
 *              2、没有名字,不能重复使用
 *          6、不理解就记住这种写法就行
 */
public class NeibuLei {
    public static void main(String[] args) {
        //调用MyMath中的Mysum方法
        MyMath mm=new MyMath();
       // mm.sum(new ComputeImpl(),50,10);

        //使用匿名内部类,表示这个ComputeImpl这个类没有名字了
        //这里是new了一个接口后边的大括号{}里边要实现接口的抽象方法
        mm.sum(new Compute(){
            public int sum(int a,int b){
                return a+b;
            }
        },50,10);
    }
}

class Test01{

    //静态变量
    static String country;
    //该类在类的内部,所以称为内部类
    //由于前边有static,所以称为“静态内部类”
    static class Inner1{

    }
    //实例变量
    int age;
    //该类在类的内部,所以称为内部类
    //没有static。所以称为实例内部类
    class Inner2{

    }

    public void doSome(){

        //局部变量
        int i=1;
        //该类在类的内部,所以称为内部类
        //局部内部类
        class Inner3{

        }
    }
    public void doOther(){
        //doSome()方法中的局部内部类Inner在doOther中不能用
    }
}

//负责计算的接口
interface Compute{

    //抽象方法
    int sum(int a,int b);
}

/*
//你自动在这写个Compute接口的实现类
class ComputeImpl implements Compute{

    //对方法的实现
    public int sum(int a,int b){
         return a+b;
    }
}

 */

//数学类
class MyMath{

    //数学求和方法
    public void sum(Compute c,int x,int y){
        int retValue=c.sum(x,y);
        System.out.println(retValue);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值