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

    内部类分为四种:

    成员内部类、类方法与普通方法同级;

    局部内部类、类方法内部,局部内部类有构造器,通过构造器把外部的变量传入局部内部类再使用是完全可以的

    匿名内部类、匿名内部类是唯一没有构造器的类,和局部内部类访问本方法内的final变量和方法外的private变量。jdk1.8不再要求用final修饰。

    静态内部类、加了static方法的成员内部类。

    优势:

    1、内部类相当于多继承;

    2、成员内部类可以直接访问其外部类的private属性,外部类要用geter方法;

    3、使用内部类可以让类与类之间的逻辑上的联系更加紧密。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public class Outer
    {
        private int i;
     
        public Outer(int i)
        {
            this.i = i;
        }
     
        public void privateInnerGetI()
        {
            new PrivateInner().printI();
        }
     
        private class PrivateInner
        {
            public void printI()
            {
                System.out.println(i);
            }
        }
     
        public class PublicInner
        {
            private int i = 2;
     
            public void printI()
            {
                System.out.println(i);
            }
        }
    }
    <wiz_tmp_tag class="wiz-block-scroll">
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    局部内部类:(方法内部)
    public static void main(String[] args)
    {
        final int i = 0;
        class A
        {
            public void print()
                {
                System.out.println("AAA, i = " + i);
            }
        }
        A a = new A();
        a.print();
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //升序,匿名内部类
            Collections.sort(listout, new Comparator() {
                @Override
                public int compare(Object o1, Object o2) {
                    String map1 = (String) o1;
                    String map2 = (String) o2;
                    return map1.compareTo(map2);
    //            return map1.get("baseTime").toString().compareTo(map2.get("baseTime").toString());
                }
            });
            Collections.sort(listout,new MyComparator());



    1、将通过毅力完成的事转化为习惯。
    2、清心寡欲、方能高枕无忧。
    3、纸上得来终觉浅,绝知此事要躬行。

    种一棵树最好的时间是 十年前。 其次是, 现在!

  • 相关阅读:
    合适的适配器的最佳模式
    poj3414--Pots(bfs,记录路径)
    HTML与XHTML差额
    获得球——采访拼图
    3-08. 栈模拟队列(25)(ZJU_PAT 模拟)
    学习内核驱动程序的错误及其解决方案的出现,
    Objective-C中的Block
    Objective-C语法之代码块(block)的使用
    ObjectiveC中的block用法解析
    使用Swift的代理,闭包来封装一个公用协议减少垃圾代码
  • 原文地址:https://www.cnblogs.com/shuchen007/p/9170435.html
Copyright © 2011-2022 走看看