方法内部类

内部类:
就是定义在一个类内部的类,与之对应,包含内部类的类叫做外部类。

使用内部类优点:
1. 内部类提供了更好的封装,可以将内部类隐藏在外部类中,不允许同一个包中的其他类随意访问该类。
2. 内部类的方法可以直接访问外部类的所有数据,包括私有数据

定义:
方法内部类就是定义在外部类的方法中的类,只在该方法内可以调用

注意:
1.由于方法内部类不能在外部类的方法(指的是包含着该内部类的方法)以外的地方使用,所以不能使用 访 问 控 制 符 和 static修饰符
2.方法的返回类型不能是内部类,但可以是内部类的父类,当返回内部类对象的引用时,会进行向上转型

代码:

public class Fangfa_neibu_class {
    //外部类中的方法
    public void show(){
        final int a=25;//常量
        int b=2;       //变量

        //方法内部类
        class MInner { //注意不能使用public
            int c=13;
            public void print(){
                System.out.println("访问外部类中的final常量a:"+a);
                System.out.println("访问nei部类中的变量c:"+c);
            }
        }
        MInner mi=new MInner();//创建方法内部类的对象
        mi.print();//调用内部类的方法
    }

    public Object makeInner(final int i){
        int k=4;
        class Inner1{
            public String toString(){
                //k=5;
                return "Inner1 "+(i+k);
            }
        }
        return new Inner1();
    }

    public static void main(String[] args){
        Fangfa_neibu_class cs=new Fangfa_neibu_class();//创建外部类对象
        cs.show();//调用外部类方法
        Object cc=cs.makeInner(5);
        System.out.println(cc.toString());
    }
}

运行结果:

访问外部类中的final常量a:25
访问nei部类中的变量c:13
Inner1 9

在makeInner(final int i)方法中,存在方法内部类Inner1,在该方法中尝试返回内部类的对象,但在程序中可以看到 返回的对象为 cc,是Object类型的,正是Inner1 的父类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值