您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 1浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

java静态内部类示例解释

小志的博客 发布时间:2021-08-11 20:31:45 ,浏览量:1

1、静态内部类实例代码及解释
package com.rf.rabiitmq;

/**
 * @description: 定义一个外部类,外部类中定义静态内部类
 * @author: xz
 * @create: 2021-08-11 20:30
 */
public class Outer {
    //定义一个实例变量
    private int number;
    //定义一个静态变量
    private static int sum;
    //定义一个非静态方法
    public void select(){

    }
    //定义一个静态方法
    public static void delete(){
        /**
         * 在外部类中调用内部类的属性和方法
         */
        Outer.Inner.result=1;//可以通过静态内部类的全类名来调用静态内部类的静态属性(外部类名.静态内部类名.属性)
        Outer.Inner.walk();  //可以通过静态内部类的全类名来调用静态内部类的静态方法(外部类名.静态内部类名.方法)

        //Outer.Inner.count=1; //不能通过类静态内部类的全类名来调用内部类的非静态属性
        //Outer.Inner.go();    //不能通过类静态内部类的全类名来调用内部类的非静态方法

        Inner inner = new Inner();
        inner.count=1; //可以通过创建内部类实例来调用静态内部类的非静态属性
        inner.go();//可以通过创建内部类实例来调用静态内部类的非静态方法
    }

    /**
     *  定义一个静态内部类
     */
    public static class Inner{
        //定义一个实例变量
        private int count;
        //定义一个静态变量
        private static int result;

        //定义一个匿名代码块
        {

        }

        //定义一个静态代码块
        static {

        }
        //定义一个普通方法
        public void go(){

        }
        //定义一个静态方法
        public static void walk(){
            /**
             *  在静态内部类中调用外部类的属性和方法
             */
            int a = sum;       //可以直接调用外部类的静态属性
            delete();          //可以直接调用外部类的静态方法

            //int b = number;  //直接调用外部类的非静态属性出错(编译出错)
            //select();        //直接调用外部类的非静态方法出错(编译出错)

            Outer outer = new Outer();
            int c=outer.number;//可以通过创建外部类实例来调用外部类的非静态属性
            outer.select();    //可以通过创建外部类实例来调用外部类的非静态方法
        }
    }

}

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.1721s