final关键字+静态(static)

本文详细解析了final和static关键字的使用方法及注意事项,包括final修饰变量、方法、类的特点,以及static修饰成员变量、方法、代码块的作用与区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

final关键字+静态(static)

●final关键字
    -final关键字可以修饰成员变量,也可以修饰局部变量
    -final关键字可以修饰在方法上
    -final关键字可以修饰在类上

final修饰在变量上:
    final修饰的变量只能被赋值一次,不能修改
    final修饰在成员变量上,必须直接给初值
    final修饰在局部变量是,可以先声明后给初值

final修饰在方法上:
    这个方法不能被重写

final修饰在类上:
    这个类就不能被继承
        String类就是final类

●静态(static)
    -static关键字可以修饰成员变量,不能修饰局部变量
    -static关键字可以修饰方法
    -static关键字可以修饰一段代码,静态代码块
    -静态的属于类,不属于对象;非静态的属于对象,不属于类

static修饰成员变量:
    在方法区开辟空间,就占一份内存,任何方法都可以修改这个静态变量
    静态变量做一些共用或公用的计数(慎用),不安全
    一般情况下用static和final共同修饰成员变量

static修饰在方法:
    在方法区中开辟空间
    静态方法和非静态方法在方法区中的存储是没有区别的

    静态方法可以被重载
    静态方法可以直接通过类名来调用
        (频繁使用且不需要修改数据的方法设置为static)    
    在静态方法中不能使用this,this属于对象,而不属于类
                                               静态的属于类,而不属于对象

static修饰代码块:static{}
    静态代码块针对的是类,对类进行初始化
    静态代码块随着类加载而加载到静态区,在类创建对象或执行方法之前执行,只执行一次
    先执行静态代码块->类代码块->构造函数块

总结:
    静态的方法只能访问静态的变量和静态的方法
    非静态的方法可以访问静态变量和静态方法也可以访问非静态的变量和方法
    静态的方法既可以用对象diaoy(不建议),也可以用类名调用(建议)
    
静态+常量 static final同时修饰
    一般都是公有的静态的final变量
        public static final int FILE_BLOCK_SIZE=4*1024*1024    
            公有的静态的final修饰的的量名字都是大写的,单词间用下划线分隔
    一般出现在这样的类中

        public class SysConstant{
            public static final int FILE_BLOCK_SIZE=4*1024*1024;
            ...
            //整个项目中所有用到的固定的常量,且值不需要改变的
            //都可以放在此类中
        }


            直接用SysConstant.FILE_BLOCK_SIZE来取出值即可
    


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值