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

一、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)如果修饰的是引用类型变量,则初始化之后它便不能引用(指向)其他对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值