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

来源:互联网 发布:js二维码弹窗代码 编辑:程序博客网 时间:2024/04/26 23:20

访问类中内部类中的方法的两种方法:
方法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("访问静态内部类静态方法成功!");        }    }    }

输出这里写图片描述

0 0