this、super、final关键字(以及final修饰基本数据类型和引用类型的区别)

一、this

  • 1、定义:对当前实例的引用,this关键字总是指向调用该方法的对象。

  • 2、用法:

    • 构造方法中引用该构造方法,执行初始化的对象,即this(参数),使用在该方法的第一条。

    • this用在普通方法中,用来访问本类其他方法和属性。

    • 可以将this关键字当作普通实参,在方法间进行传递。

注意:

用static修饰的方法还总使用this关键字,则这个关键字无法指向合适的对象,所以static关键字修饰的方法中不能使用this引用

二、super

  • 1、定义:父类对象的一个引用

  • 2、用法:

    • 写在子类中:可以引用父类中可见的属性和方法,就是让父类去干什么。

    • super():使用在子类构造方法的第一条

    • super(参数):不能写在子类普通方法中

    • super不能作为参数在方法间进行传递(与this的不同之处)

三、final

  • 1、用法

    • 修饰全局变量:该变量为一个全局的常量(全局常量一定要赋初始值,全局变量可以不赋初始值)。

    • 修饰局部变量:变为局部的常量,仅在所在的代码块中有效。

    • 修饰类:则该类为最终类,即没有子类不能被继承

    • 修饰方法:则该类不能被重写,成为最终方法

注意:

局部常量初始化和赋值可在不同行,但是全局常量必须在同行

无论是全局常量还是局部常量都只能赋值一次,之后不能修改

只有final可以修饰局部变量,像private一类的访问权限修饰符不能修饰局部变量,但是可以修饰全局变量

子类可以继承父类中final修饰的方法,但是不能重写

final修饰基本数据类型和引用类型变量的区别:

    当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本数据类型变量不能被改变,但对于引用类型的变量而言,它保存的仅仅是一个引用,final只保证这个引用所引用的地址不会改变,即一直引用同一个对象,但这个对象完全可以发生改变
final Person p = new Person(45);//p是一个引用变量
p.setAge(23);//改变Person的age属性,合法
p=null;//对P赋值非法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值