Java关键字this、super、static、final



0 写在前面

本文主要讲讲 Java 中比较常见的关键字,如 this 、 super 、 static 、 final ,它们在程序中出现频率较高。

1 this

  • 表示类中的属性,比如 this.username = username;
  • 强调调用的是本类的方法;
  • 调用本类的构造方法,如 this(); 调用本类的无参构造方法;
  • 表示当前对象(调用方法的对象)。

2 super

  • 调用父类的构造方法;
  • 调用父类的普通方法;
  • 调用父类的属性。

3 static

  • static 修饰类: static 修饰的类称为静态类,静态类作为类的静态成员存在于某个类中,静态成员类可以不创建父类对象直接创建静态类的对象。
  • static 修饰变量: static 修饰的变量称为静态变量或类变量,而没有被 static 修饰的变量称为实例变量。静态变量在内存中只有一个拷贝, JVM 只为静态变量分配一次内存,且在加载类的过程中完成静态变量的内存分配;而实例变量每创建一个实例就分配一次内存,实例变量在内存中有多个拷贝,互补影响。
  • static 修饰方法: static 修饰的方法称为类方法,否则为实例方法,实例方法只有生成对象时才分配内存。类方法可以通过类名直接调用,实例方法只能通过类对象调用。

4 final

  • final 修饰类:被 final 修饰的类表示最终类,其不能被继承,不能当父类;
  • final 修饰变量:被 final 修饰的变量为最终变量,即常量,其值不能修改,在定义时必须赋值。值得注意的是,当 final 修饰的不是普通变量而是对象引用时,变量指向的对象是可变的,不可变的是变量对对象的引用;
  • final 修饰方法: final 修饰的方法为最终方法,父类包含最终方法时,子类不能重写该方法。


 
comments powered by Disqus