this关键字

​ this关键字this关键字代表的含义是在方法内部使用,表示对调用这个方法的对象的自身的引用。也就是说,调用this的方法,最终会返回当前对象。当参数名字和数据成员名字相同时候,可以用 this.dataname 来表示数据成员。

final关键字

​ 在Java中使用final关键字的两种优点:
将方法定义为final,可以有效的关闭动态绑定,即编译器不需要对其进行绑定,可以对final方法调用生成更有效的代码。
禁止在继承中覆盖方法。如果一个final方法在类中被重载,并且这个重载后的方法不再是final,那么这个重载方法是能够继承覆盖的,因为其相当于一个新的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
final 数据:
将基本类型设置为final 数值和引用都是恒定不变的。
带有恒定初始值(编译器常量)的final static 基本类型全用大写字母命名,并且字与字之间用下划线隔开。
空白 final:
空白final 指被声明为final 但未给定初始值的域。
final 参数:
在参数列表中以声明的方式将参数声明为final ,意味着不能在方法中更改参数引用所指定的对象。 这也就意味着可以读取参数,但是不能修改参数。这个特性用来向匿名内部类传递数据。
这意味着这个参数是常量。
final 方法:
将方法定义为 final ,将会把方法锁定,防止任何继承类修改它的含义,确保继承中使方法保持不变,并且不会被覆盖。
类中的所有的private方法都被隐式的定义为final。
final 类:
将一个类定义为final类的时候,将不允许该类被任何类继承。指定的final类中的所有方法都会被隐性的指定为final。String类被final修饰。

Static关键字

​ static :创建一个固定的区域,用以存放对象。定义方式:将static关键字放到定义之前,将字段或是方法设为static。

1
2
3
4
5
6
7
static对象:可以参考JavaScript内的原型对象,使用static创建一个类,然后用这个类去创建对象,所有的对象只有一个副本,对象之间对于创建的实例类来说是共享的,不是类似于普通类,创建一个对象就有一个副本。
static方法:static方法的一个重要用法就是在不创建任何对象的前提下就能够调用这个方法。static方法同样可以创建或使用与其类型相同的被命名对象。
static 方法不含this方法。
static方法的调用,使用类的名称去调用,而不是像非静态方法,使用类的对象的引用变量的名称去调用。
静态的方法不能够调用非静态的变量,同样也不能够调用非静态的方法。调用非静态的方法或变量的方式就是创建实例,通过实例去调用。
static变量:值是固定的,对于所有的实例变量来说都是相同的。静态变量会在类执行任何静态方法之前就被初始化。
静态变量是共享的,一个类所有的实例对象共享一份静态变量。

​ static关键字修饰的成员,相当于与这个类做一个绑定,而不是与生成的对象做绑定,所以static修饰的方法将不能够进行动态绑定。

查看更多

Java基础:Java基础