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 Server 2012 磁盘管理之 简单卷、跨区卷、带区卷、镜像卷和RAID-5卷
    Java web项目 本地配置https调试
    Twitter的分布式自增ID算法snowflake (Java版)
    Redis压测命令
    Java读取txt文件信息并操作。
    安装配置adb工具及遇到的问题
    数据库逆向生成数据库表详细设计文档
    Java常用日期处理方法
    Date与String互相转换及日期的大小比较
  • 原文地址:https://www.cnblogs.com/m987/p/15095390.html
Copyright © 2011-2022 走看看