15/365 java static final

本文介绍了Java中static和final关键字的用法。static用于声明类属性和方法,不依赖实例,直接通过类名调用。静态代码块只在类首次加载时执行。final修饰的类不可继承,成员变量一旦初始化不可修改,修饰方法则不能被重写。final也可用于修饰局部变量和导入包,限制变量或方法的可变性和重写性。
摘要由CSDN通过智能技术生成

1.static属性,方法

类内属性或方法用static修饰,表示该属性或方法属于类,不依赖于实例对象,所以不需要用对象调用,而是直接用类名调用。

static方法只能调用其他static方法,而普通方法可以调用其他的普通方法和static方法。

2.静态代码块

class Animal{

    {
        //1.匿名代码块  可用于给属性赋初值
    }

    static{
        //2.静态代码块
    }

    public Animal(){
        //3.构造方法
    }

    public static void main(String[] agrs){
        Animal a = new Animal();

        Animal a2 = new Animal();
    }

}

如上图的代码,当new一个新对象a时,执行顺序为2-->1-->3,

当继续new一个新对象时,执行顺序为1-->3,

这表示静态代码块只在第一次new这个类的对象时执行。

3.静态导入包

import static java.lang.Math.random;
import static java.lang.Math.PI;

同文件的程序就可以直接调用random()了,而不用写Math.random()。PI也是同理,直接使用。

4.final

通过final修饰的类不能被继承,没有子类。

public final class Animal{

}

public class Rabbit extends Animal{ //会报错

final修饰的成员变量必须在所在的类的对象创建之前被初始化,且一旦初始化就不能被修改

下列代码为final成员变量初始化的三种方式:

public class Animal{

    final int ear = 2;
    
    final int leg;
    {
        leg = 4;
    }

    final int eyes;

    public Animal(){
        eyes = 2;
    }

}

final修饰的局部变量必须在使用前赋值,且不能再修改。

public void func(){
    final int number = 8;
}

当fina修饰基本类型的变量,则变量一旦被赋值,就不能修改,因为final修饰的变量是自定义常量

当final修饰的引用类型的变量,则该变量的值不能改变(也就是该变量不能指向别的对象,存放的地址不能改),但是指向的对象的内容可以被修改。

final int a = 10; //a不能被修改
final Animal r = new Animal();// r的值不能修改,但r指向的对象的内容可以修改
r.ear = 5;//修改对象的属性

当final修饰成员方法,该方法不能被重写,但是可以被继承

final 总结

 

Reference:

java final 关键字_小鸡费斯特的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值