1.final关键字

  • final的意思为最终的,最后的,也就是说不可修改的,在Java中定义final变量表示这个变量为不可改变。
  • final修饰的类无法被继承,修饰的方法无法被覆盖,修饰的变量无法重新再次赋值。
  • final修饰的引用,一旦指向某个对象后不能再指向其他对象,其所指向的内部的内存变量是可以修改的。
  • final修饰的实例变量必须手动赋值。
什么是实例变量?
  • 在Java的类中,每个类都有自己的属性,而这些属性都是用变量来表示,这些变量就称之为实例变量。
    注:final修饰的实例变量一般和static联合使用,被称为常量。
    常量定义的语法格式:public static final 类型 常量名 = 值;
    常量的名字要求全部使用大写,并用下划线连接,常量的值不可修改。

2.static关键字

  • 当类中的对象有相同的属性值时 ,可以把这个属性加上static修饰,属性值一直不改变。
    举个栗子:现在要写一个学生类,学生的属性应该包括姓 名,学号,年龄,国籍(假设一个班里的学生都是中国国籍),那么这个国籍的前面就可以加上static进行修饰。
public static String County = “china”;
  • 加上static修饰的变量叫做静态变量,静态变量在类加载的时候初始化,且无需调用对象就可以直接使用。
  • 如果想让某种方法在这个类加载时就执行,并且只执行一次,那么把这个方法作为静态代码块就非常合适。
static{
	java语句;}

这便是一个静态代码块。

3.this关键字

  • this是一个引用,也是一个变量,this变量中保存的内存地址指向了自己本身。
  • 创建100个java对象,每一个对象都有this,也就是说有100个不同的this。
  • this可以出现在实例方法当中,代表当前这个对象。(实例方法就是必须通过new 出来一个对象才能调用的方法)
  • this不能使用在带有static的方法中。(带有static的方法是类方法,先于任何的实例(对象)存在。即Static方法在类加载时就已经存在了,但是对象是在创建时才在内存中生成。而this指代的是当前的对象。)
  • 在带有static方法当中,不能直接访问实例变量和实例方法。(实例对象和实例方法,即先有实例后有对象和方法,所以使用之前必须先new 一个对象)
  • this大部分时候可以省略,只有在区分局部变量和实例变量的时候不能省略。