Java中this关键字、static关键字、final关键字、instanceof关键字用法详解

1、this关键字

this关键字代表是对象的引用。也就是this在指向一个对象,所指向的对象就是调用该函数的对象引用。实际工作中,存在着构造函数之间的相互调用,但是构造函数不是普通的成员函数,不能通过函数名自己接调用所以sun公司提供this关键字。

        a.this只能在非静态中(没有static修饰的)函数使用.
        b.构造函数间相互调用必须放在构造函数的第一个语句中,否则编译错误.

        c.可以解决构造函数中对象属性和函数形参的同名问题.

2、static关键字(为了实现对象之间重复属性的数据共享)

a、static关键字的的特点

    1)随着类的加载而加载,静态会随着类的加载而加载,随着类的消失而消失。
    2)优先于对象存在。(静态是先存在,对象是后存在。)
    3)被所有实例(对象)所共享。

    4)可以直接被类名调用。

b、使用static时应注意

    1)主要用于修饰类的成员

        非静态成员变量:需要创建对象来访问。

        静态成员变量:使用类名直接调用,也可以通过对象访问。

     2)成员方法

        静态函数中不能访问非静态成员变量,只能访问静态变量。
        静态方法不可以定义this,super关键字。因为静态优先于对象存在.静态方法中更不可以出现this。

        非静态函数:非静态函数中可以访问静态成员变量

c、使用static的优缺点

        优点:对对象的共享数据进行单独空间的存储,节省空间。

        缺点:生命周期过长。

3、final关键字

final关键字主要用于修饰类、类成员、方法、以及方法的形参。

    1)final修饰成员变量:说明该成员属性是常量,不能被修改。一般与static结合使用。(常量不能被修改)

    2)final修饰类:  该类是终类,不能被修改。(如JavaAPI中的String、Integer类)

    3)final修饰方法:该方法是最终方法,不能被重写。当一个类被继承,那么所有的非私有函数都将被继承,如果函数不想被子类继承并重写可以将该函数final修饰。

4、instanceof关键字(主要用于多态)

    判断一个对象是否属于指定的类别。

    使用前提:判断对象与指定的 类别必须要存在继承或者实现(接口)的关系。

注:this与super很像,但是this 指向的是当前函数的调用对象,super指的是当前调用对象的父类。

你可能感兴趣的