this、final、static、super关键字小总结

this关键字:
1.调用本类属性 this.属性名:明确表示调用类中同名属性
     规范:在类的普通方法中访问本类属性,必须加
this关键字。
2.调用本类方法 a:调用普通方法:this.方法名(参数)
              b
:调用构造方法:this(参数)
    
规范:this调用本类其他构造方法时,必须放在首行调用;this调用构造方法不能成环。
3.表示当前对象:只要有某一个对象调用了本类中的方法,那么这个this就表示当前执行的对象

static关键字:
1.static属性(静态属性),被static修饰的变量存放在全局数据区。
    访问
static属性应该使用类名称.属性名(类属性)如:Person.age描述共享属性
2.static方法:与对象实例化无关,通过类名调用(类方法),常见于工具类。如:数组的排序Arrays.sort();
   
静态方法不能访问类中普通属性;普通方法可以访问类的静态属性。
3.static不能修饰外部类,因为static修饰的一定与对象无关。

final关键字:
1.修饰属性:必须在变量初始化时赋值。
   (初始化有三种方式:
1.变量声明时赋值 如:private static final int i=10
  
2.构造方法中赋值 public Person{
   i=5

  
}
   3.
代码块中赋值 {
   i=9

  
}
  

  
a:修饰基本数据类型的变量,类中常量一般用static+final描述全局常量。
  
b:修饰引用数据类型类型的变量,表示值不可变,本质上是变量地址不可变,也就是他只能指向初始时指向的那个对象,而不关心指向对象内容的变化。

  数据类型的转换:
doublefloatlong三种数据额类型在进行加减乘除、取模、求余运算时,如果数据类型不同,如int+float就会结果自动转型为float
  但是
bytebooleancharshort在进行运算时,都会自动转型为int进行计算,结果也为整型;但是如果这些数据类型的变量被final修饰,就不会自动转型;
  比如
final byte i=10;final byte j=7;那么i+j的结果就是byte类型

2.修饰方法:表示该方法不能被覆写,但是子类依然可以使用。
3.修饰类:用final修饰的类表示该类不允许被继承;同时,该类中的所有方法都会被隐式加上final关键字(不包含成员变量)
  
String8种基本数据类型的包装类都是使用final修饰的,一个类不能同时被final和abstract修饰。

比较:

finally是异常处理的一部分,只能用在try/catch语句中,并且附带一个语句块,表示本段语句最终一定会执行,经常用在需要释放资源的情况下。

finalize是Object类的一个方法,在垃圾回收器执行时会调用被回收对象的finalize方法,可以覆盖此方法来实现对其他资源的回收。一旦垃圾回收器准备好释放对象占用的空间,将会调用其finalize方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。finalize方法只执行一次。

 


super关键字:super表示调用父类方法
1.调用父类构造方法 super(参数列表)super调用父类的无参构造时super可以不写;
  但是调用父类有参构造时必须写,因为必须要告诉编译器调用的是弗雷德哪个参数的有参构造。
 
super调用父类构造方法必须将这条语句放在代码的首行;this调用本类的构造方法时,也必须放在首行。
  因此
superthis在构造方法中不能同时存在,即子类不存在构造方法的相互调用。
2.super调用父类普通方法 super.方法名(参数列表)
3.super
调用父类属性;但一般属性都是private修饰,一般都被封装了。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值