天天看点

JAVA拾遗1

1  static修饰符

    类的成员变量分为静态变量和实例变量,     被stacit修饰的变量,叫静态变量,没被修饰的就是实例变量了.

静态变量的特点,在于其在内存中只有一个COPY,在使用时不需要实例化,直接用类名来调用就可以了.

   同样,比如

     public static int add()

 这样的叫静态方法,同样,使用静态方法时不需要实例化类.

   在静态方法中要注意两点

    A 静态方法中,不能用this关键字,也不能访问非静态变量,比如

    public class Voter{

    private static int count;   

  private String name;  

 public static void printVoteResult(){

    System.out.println("当前投票数为:"+count); //正确

     System.out.println("当前投票数为:"+name); //错误

  System.out.println("当前投票数为:"+this.name); //错误

  同样,静态方法中不能用super关键字

    此外,静态方法必须被实现,因为静态方法是表示某个类的特有功能,不需要实例化,因此必须要给实现.,比如

    static abstract void add()是错误的。

2  类的初始化

      A 对于final类型的变量,如果在编译时能计算其值,则此时该类不会被初始化,比如

   class Tester

  {

   public static final int a=2*3;

static

  { 

System.out.println("abc");

    }

}

  public class samle

{

   System.out.println("a="+Tester.a);

  }

 则只会输出a=6

  而如果是编译时算不出的话,则要初始化这个类,比如

   public static final int  a=....运算表达式;

3 final修饰符

    final修饰的方法不能被子类的方法覆盖,修饰的类不能被子类继承,要注意的是,在一个类中,如果出现final常量,则必须被初始化,

  比如

  public a

  final int a;//错误

继续阅读