Java功底之static、final、this、super

来源:互联网 发布:简历信息采集软件 编辑:程序博客网 时间:2024/05/29 02:42

看完本文后,请看转自键行天下的博客:

http://blog.csdn.net/chensheng913/archive/2004/07/05/34564.aspx

一.static

静态方法:
        我们在写System.in的时候并没有用new去创建它,这是因为它是一个静态的方法,这个意味着告诉Java编译器,我这个方法不需要创建一个此类的对象即可使用。一般说来,静态方法常常为应用程序中的其他类提供一些实用工具所用,Java的类库中大量的静态方法也是出于这个目的的。

静态变量:
        静态变量也叫类变量,所有的此类实例共享此静态变量,也就是说在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间(final不讨论)。在虚拟机加载的时候,类变量会优于其他非static变量。在继承时候,会先加载化父类的static变量,然后是子类的。

二.final
final成员:
        在定义类中变量的时候加上了final,表示一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。我们也经常称为常量(常量命名规范为大写)。

final方法:
        将方法声明为final,那就说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。

final类:
        当你将final用于类身上时,表示类是无法被任何人继承的,那也就意味此类的设计已被认为很完美而不需要进行修改或扩展。

三.this和super
        Java中this通常指当前对象,super则指父类的。当你想要引用当前对象的某个方法或某个成员,可以利用this来实现这个目的。this的另一个用途是调用当前对象的另一个构造函数。而如果引用父类的某个东西,则是super。在继承的过程中,如果子类的方法覆盖了父类的方法,想调用父类被覆盖的方法,就得用到super。其中比较特殊的是在构造函数中,this和super不是用“.”连接一个方法或成员,而是用super后加参数的是用来调用父类中具有相同形式的构造函数(例:super()),this后加参数则调用的是当前具有相同参数的构造函数(例:this())。在很多地方,有this更能使程序读的更流畅些。

final public class T3 {

 /**
  * @param args
  */
 public static void main(String[] args) {

  lable: {
   int i = 0;
   int a = 9;
   int b;
   b = a + i;
   while (true) {
    i++;
    if (i == 2) {
     break lable; //tiao dao flag
    }
   }
  }// flag

 }

 public void getXXX(String... strings) {
  lable: {
   int i = 0;
   int a = 9;
   int b;
   b = a + i;
   while (true) {
    i++;
    if (i == 2) {
     break lable; //tiao dao flag
    }
   }
  }// flag
 }

 public void getXXXX(int a, String... strings) {

 }

 // public void getXXXX(String... strings, int a) {//error
 //
 // }
 static final public void CheckXXXX() {

 }
}


 super.www="kf";
  this.www="rty";


from: http://blog.csdn.net/it_man/article/details/1372721

0 0