zoukankan      html  css  js  c++  java
  • java中的内部类


    内部类就是在一个类的内部定义一个类,比如:A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类啦。


    【示例 1】成员内部类

    class Outer {
        private int num = 10;
        
        public void out() {
            System.out.println("这是外部的方法");
        }
    
        class Inner {
            public void in() {
                System.out.println("这是内部的方法");
            }
    
            public void getNum() {
                System.out.println(num);
            }
        }
    }
    
    public class Test2 {
        public static void main(String[] args) {
            Outer outer = new Outer();
            //通过外部类来实例化内部类
            Outer.Inner inner = outer.new Inner();
            inner.in();
            inner.getNum();
        }
    }
    

    执行结果如下:
    image


    【示例 2】局部内部类

    class Outer1 {
        //局部内部类
        public void method() {
            class Inner {
                public void in() {
                    System.out.println("我是局部内部类");
                }
            }
            new Inner().in();
        }
    }
    
    public class Test3 {
        public static void main(String[] args) {
            Outer1 outer1 = new Outer1();
            outer1.method();
        }
    }
    

    执行结果如下:
    image

    【示例 3】静态内部类

    class Outer2{
        private int num = 100;
        public void out(){
            System.out.println("我是外部类");
        }
    
        //静态内部类
        static class Inner2{
            public void in(){
                System.out.println("我是内部类");
            }
        }
    }
    
    public class Test4 {
        public static void main(String[] args) {
            Outer2 outer2 = new Outer2();
            outer2.out();
    
            Outer2.Inner2 inner2 = new Outer2.Inner2();
            inner2.in();
        }
    }
    

    执行结果如下:
    image

    【示例 4】匿名内部类

    class Xxx {
        public void shout() {
            System.out.println("嗷~");
        }
    }
    
    interface UserService {
        void hello();
    }
    
    public class Test5 {
        public static void main(String[] args) {
            //匿名对象.方法
            new Xxx().shout();
    
            // 适合那种只需要使用一次的类。比如:键盘监听操作等等。
            new UserService() {
                @Override
                public void hello() {
                    System.out.println("hello");
                }
            }.hello();
        }
    }
    

    执行结果如下:
    image

  • 相关阅读:
    Windows系统下八大具有高逼格的DOS命令之一【ping】
    NOIP初赛 之 逻辑运算
    动态规划 —— 背包问题一 专项研究学习
    使用前端原生 js,贪吃蛇小游戏
    纯html+css制作3D立方体和动画效果
    css3实现3D动画轮播图
    原生js的弹力小球
    小球的问题
    早期练手:功能相对比较完善的 js 计算器
    自动布局简介
  • 原文地址:https://www.cnblogs.com/m987/p/15095390.html
Copyright © 2011-2022 走看看