1: java中的命名规范
包的命名,尽量为xxx.xxx的形式。小写字母,这样方便包名的扩展
2: final的用法
final修饰变量无法更改
final修饰方法,无法重写
final修饰类无法继承
3:成员内部类、局部内部类、匿名内部类、静态内部类、
静态内部类
public class StaticInner {
public static int a =1;
public static class InnerClass{
//静态内部类可以声明静态的成员变量,其他的内部类不可以
private static int b=1;
public void execute(){
//静态内部类只能访问静态程序
System.out.println(a+b);
}
}
public static void main(String[] args) {
StaticInner.InnerClass innerClass = new StaticInner.InnerClass();
innerClass.execute();
}
}
成员内部类
package InnerClass;
public class MemberInner {
private int a = 1;
public void execute() {
// 在外部类中创建内部类
InnerClass innerClass = this.new InnerClass();
}
public class InnerClass {
// 内部类可以创建与外部类同名的成员变量
private int a = 2;
public void execute() {
// this引用的是内部类
System.out.println(this.a);
// 在内部类中使用外部类的成员变量方法
System.out.println(MemberInner.this.a);
}
}
public static void main(String[] args) {
MemberInner memberInner = new MemberInner();
MemberInner.InnerClass innerClass = memberInner.new InnerClass();
innerClass.execute();
}
}
局部内部类
package InnerClass;
public class LocalInner {
public void execute() {
final int a = 1;
// 创建局部类
class InnweClass {
public void execute() {
System.out.println("LocalInner Class");
// 局部内部类只能访问final变量
System.out.println(a);
}
}
// 只能在所在方法区域创建
new InnweClass().execute();
}
public static void main(String[] args) {
LocalInner localInner = new LocalInner();
localInner.execute();
}
}
abstract class Person {
public abstract void eat();
}
public class Demo {
public static void main(String[] args) {
Person p = new Person() {
public void eat() {
System.out.println("eat something");
}
};
p.eat();
}
}