内部类分为四种:
成员内部类、类方法与普通方法同级;
局部内部类、类方法内部,局部内部类有构造器,通过构造器把外部的变量传入局部内部类再使用是完全可以的
匿名内部类、匿名内部类是唯一没有构造器的类,和局部内部类访问本方法内的final变量和方法外的private变量。jdk1.8不再要求用final修饰。
静态内部类、加了static方法的成员内部类。
优势:
1、内部类相当于多继承;
2、成员内部类可以直接访问其外部类的private属性,外部类要用geter方法;
3、使用内部类可以让类与类之间的逻辑上的联系更加紧密。
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">
局部内部类:(方法内部)
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();
}
//升序,匿名内部类
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、纸上得来终觉浅,绝知此事要躬行。
种一棵树最好的时间是 十年前。 其次是, 现在!