您的位置:首页 > 编程语言 > Java开发

java中的this关键字与final关键字的用法总结

2017-09-18 17:19 555 查看

一、this的基本用处

Java中的this关键词有三个基本的用法

1.调用本类的成员变量

2.调用本类的成员方法

3.调用本类的构造方法

在调用构造方法的时候this();语句必须放在构造方法中的第一个语句位置。(在成员方法中使用this();并无意义,java不允许这样做)

public class Student{

private String name;   //定义了一个student类的成员变量

public Student(){   //定义了一个无参构造方法
this("Awesome!");    //这里this调用了带参数的构造方法
}

public Student(String a){   //定义了一个带参数的构造方法

}

public void setName(String name){
this.name=name;   //这里this调用了本类中的成员变量,将形参name的值赋给了成员变量name。
this.printname();   //这里this调用了本类中的成员方法。
}

public void printname(){   //定义了一个student类的成员方法
System.out.println("张三");

}
}


4.返回类的引用

如上例中 return this; 即代表着return student;

二、延伸理解

在gc中,有一种有巨大缺陷的算法叫做引用计数法(Reference Counting Collector),它的缺陷在于无法处理互相引用的两个对象。

看到这里我突然想知道一个的的确确是循环引用的例子。这也就导出了我认真学习this关键词的这一步。

http://bbs.csdn.net/topics/390317579引用此帖中的例子

package com.xiuxiu.table;

public class A {
private B b;
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
public static void main(String[] args) {
A a = new A();
B b = new B();
a.setB(b);
b.setA(a);
}
}

class B {
private A a;
public A getA() {
return a;
}
public void setA(A a) {
this.a = a;
}
}


补充:http://blog.csdn.net/rockpk008/article/details/52374203

三、final关键字

修饰类

final关键字修饰类表明这个类是不可以被继承的,即不允许任何人试图通过继承修改这个类。被final修饰的类的所有方法会被隐式指定为final。

修饰方法

final修饰方法时表示这个方法是无法被继承该类的子类重写的方法。(private方法也会被隐式指定为final方法)

修饰变量

(1)如果修饰的是基本数据类型变量,则初始化后该变量的值不能被修改。

(2)如果修饰的是引用类型变量,则初始化之后它便不能引用(指向)其他对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: