一、this关键字
1.this关键字代表当前对象
this.属性——操作当前对象的属性;
this.方法——调用当前对象的方法;
2.封装对象的属性的时候,经常会使用this关键字
(我们的属性名经常与参数名相同,为了区分属性和参数的概念,我们会在属性前加this关键字)
思考一下:此时如果去掉setScreen()中的this,结果会怎样呢?
public class TestThis { private String params; public void printMessage(){ System.out.println("类内方法!!"); } public String getParams() { return params; } public void setParams(String params) {
// params = params; //方式一 this.params = params; //this.属性=参数;就是将参数的值付给当前对象的属性(为了区分属性和参数)
// printMessage();//方式一 this.printMessage(); //this.方法;就是调用当前对象的sendMessage()方法。 } public static void main(String[] args) { TestThis t=new TestThis(); t.setParams("aaa"); System.out.println(t.getParams()); /** * 一:如果去掉setParams中属性this * 结果: * 类内方法!! * null * * 二:不去掉setParams中属性this * 结果: * 类内方法!! * aaa */ } }
this:其实在函数中经常会使用一些变量,如果这个变量是成员变量,那么这个变量实际上是必须有this的,如果你不写,系统默认也会帮你加上.所以你可以省略, 但是如果成员变量和你某些局部变量重名了,那么就必须加上this来表示成员变量。最常用的地方就是构造函数了,构造函数的参数一般和成员变量是同名的,那么就必须加上this来区别。
二、final关键字
final关键字: 表示“最终的”,即不可修改。
final可以修饰类、方法、属性和变量。
1、修饰类:不允许被继承;
2、修饰方法:不允许被重写;
3、修饰属性:则该属性不会进行隐式初始化(不会自动初始化),需要手动初始化或者在构造方法中初始化 (但二者只能选一,即只能初始化一次后便不能更改);
4、修饰变量,只能在声明的时候赋一次值,成为常量。 (static final 会使其成为全局常量)