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

  • 相关阅读:
    Setting up jQuery Unobtrusive Validation
    Valid vs Validate
    HTML Tags containing Vue.js v-if and v-for directives flash at loading
    What does a CSS selector in square brackets select in HTML?
    Template refs
    How to check if a variable is not null?
    Android中的Context
    Android从零基础到App上线
    ConstraintLayout 使用汇总
    ConstraintLayout的使用
  • 原文地址:https://www.cnblogs.com/m987/p/15095390.html
Copyright © 2011-2022 走看看