2.使用import可以导入包(.*导入包中所有类)、静态成员
3.被定义为final的常量需要定义时使用大写字母命名,并且中间需要使用下划线进行连接。定义为final的数据无论是常量、对象引用还是数组,在主函数中都不可以被改变
4.final关键字定义的变量必须在声明时对其进行赋值操作,除可修饰基本数据类型的常量之外,还可以修饰对象引用、数组、方法的参数。被定义为final的对象引用只能指向唯一一个对象,不可以将它再指向其他对象,但一个对象本身的值却是可以改变的,为了使一个常量真正做到不可更改,可将常量声明为static final
5.一个定义为private的方法隐式被指定为final类型;父类中被定义为private final的方法,子类中也可以定义,但不是正常覆盖(满足一个对象向上转型为它的基本类型并调用相同方法),而是生成一个新方法。
6.成员内部类:
在内部类中可以随意使用外部类的成员方法以及成员变量,尽管被修饰为private;内部类的实例一定要绑定在外部类的实例上(如果从外部类初始化一个内部类对象,那么内部类对象就会绑定在外部类对象上)
可通过外部类方法返回内部类引用,也可在主方法中通过外部类引用+new操作符实例化内部类对象
可向上转型为接口(将一个private内部类向上转型为其父类对象,或者直接向上转型为一个接口,本程序中就可以完全隐藏内部类的实现过程)可在外部提供一个接口,在接口中声明一个方法,在实现该接口的内部类中实现该接口的方法,可定义多个内部类以不同方式实现接口中同一个方法,而在一般的类中是不能多次实现接口中同一方法的(该技巧经常被使用在Swing编程中)
外部类与内部类成员变量名称相同时,可用this关键字
7.局部内部类:在类的方法中或任意的作用域中定义,并非类中的一部分,外部不能访问该内部类,但该内部类可以访问当前代码块的常量(将方法参数设置为final型,内部类不可改变其值)以及外部类的所有成员
8.匿名类:return new A{...//内部类体}; 返回类的引用 插入匿名类的代码,定义结束后需加分号标识
9.静态内部类:不可使用外部类的非静态成员。创建静态内部类的对象,不需要其他外部类的对象;不能从静态内部类的对象中访问非静态外部类的对象
10.内部类的继承:在某个类继承内部类时,必须硬性给予这个类一个带参数的构造方法,并且该构造方法的参数为需要继承内部类的外部类的引用,同时在构造方法体中使用a.super()语句,为继承提供了必要的对象引用