推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

Java中被final修饰的变量的几种赋值方式

   2023-08-17 网络整理佚名1630
核心提示:表示最后的、最终的含义,变量一旦赋值后,不能被重新赋值。修饰的实例变量必须显式指定初始值。关于final,首先想到的是一旦赋值后不可变,那么就有相关问题了,对于final修饰的变量属性都有哪些赋值的方式呢?非静态final赋值有三种:定义初始化、非静态代码块、构造方法。这种是在定义之初不进行赋值操作,而是在代码块中进行赋值,也是可以的。静态final赋值有两种:定义初始化、非静态代码块。

关于决赛

Final的意思是“最终的,最后的”。 变量一旦被赋值,就不能再重新赋值。 由final修饰的实例变量必须显式指定初始值。

Final 修饰符通常与修饰符一起使用来创建类常量。

说到final,首先想到的是,一旦赋值是不可变的,那么就会出现相关的问题。 Final修饰变量属性的赋值方法有哪些?

非静态使用最终

非静态最终赋值有三种类型:定义初始化、非静态代码块和构造方法。

定义初始化时赋值

声明一个对象时,直接给它赋值,赋值后,它是不可变的。 这是最容易想到的事情。

public class FinalTest {
    
    private final Integer num = 10;
    
}

代码块中的赋值

这种赋值不是在定义开始时进行,而是在代码块中赋值,这也是可以的。

public class FinalTest {
    private final Integer num;
    {
        num = 10;
    }
    
}

构造函数中的赋值

这也是很容易想到的。 创建对象时进行赋值。 对象一旦创建,就是不可变的,因此set()方法在对象创建后就不能再赋值了。

public class FinalTest {
    private final Integer num;
    
    public FinalTest(Integer num) {
        this.num = num;
    }
    
}

静态使用最终

静态最终赋值有两种类型:定义初始化、非静态代码块。

Final关键字一般与

这个时候就和上面的不同了。 静态变量是随着类的加载而加载的,因此在构造函数中不能进行初始化和赋值操作。

定义初始化

public class FinalTest {
    
    private static final Integer num = 10 ;
    
}

静态块

public class FinalTest {
    private static final Integer num;
    
    static {
        num = 10;
    }
}

关于fianl的补充说明

父类中的final方法可以被子类继承,但不能被子类重写。

声明final方法的主要目的是防止方法的内容被修改。

class Father{
    public final void methodTest(){
        return;
    }
}
class Son extends Father{
    //调用父类final方法
    public void test(){
        this.methodTest();
    }
}

Final 类不能被继承,并且任何类都不能继承 Final 类的任何属性。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON