类中的内部类(静态、非静态、私有)中方法(静态、非静态)的调用

访问类中内部类中的方法的两种方法:
方法1、

class OuterInnerClass {

    public static void main(String[] args) {

        Outer.Inner oi = new Outer().new Inner();
        oi.print();
    }
}


class Outer {                                       //这是一个普通部类
    class Inner {                                   //这是一个普通内部类
        public void print(){
            System.out.println("访问内部类成功!");
        }
    }

输出这里写图片描述
方法2、

class OuterInnerClass {

    public static void main(String[] args) {
    //只是这里分开创建对象了!
        Outer o = new Outer();
        Outer.Inner oi = o.new Inner();
        oi.print();
    }
}


class Outer {                                       //这是一个普通部类
    class Inner {                                   //这是一个普通内部类
        public void print(){
            System.out.println("访问内部类成功!");
        }
    }

输出这里写图片描述
访问类中私有内部类中的方法:

class OuterInnerClass {

    public static void main(String[] args) {

        Outer oi = new Outer();                 //访问类中私有内部类中的方法
        oi.method();                            //可以将私有内部类看做一个私有方法              
    }
}

class Outer {                                       //这是外部类
/*
    通过内部创建方法访问本类中的私有类,和类中私有方法的访问原理一样
*/
    public void method(){
        PrivateInner p = new PrivateInner();
        p.print();
    }

    private class PrivateInner {                    //这是内部类(私有)
        public void print (){
            System.out.println("访问私有内部类成功!");
        }
    }
}

输出这里写图片描述

访问类中静态内部类中的非静态、静态方法:

class OuterInnerClass {

    public static void main(String[] args) {

        Outer.StaticInner oi1 = new Outer.StaticInner();//访问类中静态内部类中的非静态方法
        oi1.print();


        Outer.StaticInner.staticPrint();    //访问类中静态内部类中的静态方法之方法1,
                                            //直接类名.调用

        Outer.StaticInner oi2 = new Outer.StaticInner();//访问类中静态内部类中的静态方法之方法2,
                                            //创建对象后调用
        oi2.staticPrint();
    }
}


class Outer {                                       //这是一个普通部类

    static class StaticInner {                  //这是内部类(静态)
        public void print (){
            System.out.println("访问静态内部类成功!");
        }

        public static void staticPrint (){
            System.out.println("访问静态内部类静态方法成功!");
        }
    }
    }

输出这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值