内部类解析
Posted shuchen007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内部类解析相关的知识,希望对你有一定的参考价值。
内部类分为四种:
成员内部类、类方法与普通方法同级;
局部内部类、类方法内部,局部内部类有构造器,通过构造器把外部的变量传入局部内部类再使用是完全可以的
匿名内部类、匿名内部类是唯一没有构造器的类,和局部内部类访问本方法内的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); } } } |
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()); |
以上是关于内部类解析的主要内容,如果未能解决你的问题,请参考以下文章