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

Java关键字final、static、this、super总结,第1张

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

一、final关键字:

final关键字特点:

1、final修饰的类不能被继承

2、final修饰的方法不能被重写

3、如果final修饰的变量是基本数据类型,那么一旦被初始化后就不能更改;如果final修饰的是引用数据类型,那么一旦初始化后就不能指向其他对象。

4、final不能修饰构造方法(构造器不是通过继承得到的,所以没有必要)

使用final修饰的方法的原因:

1、方法锁定,不能被继承类重写或修改

2、高效(Java早期版本,会将final修饰的方法转为内嵌调用,但是如果方法过于庞大,优化的效果甚微;因此现在的Java版本已经不采用这种优化)

二、static关键字:

static使用场景:

1、修饰成员变量和成员方法:static修饰的成员变量、成员方法属于类,调用时可用:类名.变量名或类名.方法名

2、静态代码块:静态代码块在JVM加载类时,会执行一次(仅执行一次);而非静态代码块在每new一次,就会执行一次。静态代码块在非静态代码块之前执行(以此流程:静态-》非静态》构造方法)

3、静态内部类(static修饰类只能是内部类):静态内部类与非静态内部类区别:非静态内部类在编译后会隐含地会保存一个引用,指向创建它的外围类;而静态内部类没有。没有引用意味着它:不依赖外围类;不能调用外围类的非static的变量和方法。

4、静态导包(用来导入类中的静态资源)

三、this关键字&super关键字:

this指向当前类的对象,super指代父类。

this用法:

①使用this引用隐藏数据域

public class F{
private int i=1;
private static double k=0;

public void setI(int i){
    this.i=i;//this引用隐藏数据域
}

public static void setK(double k){
    F.k=k;
}
}

②使用this调用同类的构造方法

public class Circle{
    private double r;
    public Circle(Double r){
        this.r=r;//使用this引用隐藏数据域
}
    public Circle(){
        this(1,0);//调用同类中另一个构造方法(this()放在构造方法的第一行)
}

③引用对象自身属性和方法

        this.属性名/方法名()(通常this都是省略掉的。。。)

super关键字用法:

①调用父类的构造方法

public Circle(double radius,String color,boolean filled){
    super(color,filled);//调用父类构造方法时,super()必须放在第一行
    this.radius=radius;
}

②调用父类的方法

       super.父类方法名(参数)

自己总结,有错请指正!!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5715550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存