dream_sky




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

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());



 

posted @ 2018-06-11 22:54  书晨007  阅读(156)  评论(0编辑  收藏  举报
将时间精确到分,将获得较高的效率!