博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
final与static
阅读量:4451 次
发布时间:2019-06-07

本文共 712 字,大约阅读时间需要 2 分钟。

final 与 static

  • final
    • 修饰==类==
      • 不能被继承
      • final类中的方法默认是final的
    • 修饰==方法==
      • 可以被继承,不能被重写
    • 修饰==变量==
      • 成为常量,只能赋值一次,赋值后不能改变
      • 如果变量是一个对象,只要引用不变它的属性是可以改变的
    • final不能修饰构造方法
    • 父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。
    • 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。
  • static
    • 修饰成员变量
      • 静态变量,加载类的过程中就会为静态变量分配内存,使用类名直接引用
    • 修饰方法
      • 静态方法 不能访问所属类不带static的成员变量和成员方法
    • 修饰代码块
      • 静态代码块 位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。
  • static和final一块用
    • static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
      • 对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
      • 对于方法,表示不可覆盖,并且可以通过类名直接访问。

      • 特别要注意一个问题:
        • 对于被static和final修饰过的实例常量,实例本身不能再改变了,但对于一些容器类型(比如,ArrayList、HashMap)的实例变量,不可以改变容器变量本身,但可以修改容器中存放的对象,这一点在编程中用到很多。

转载于:https://www.cnblogs.com/tonghaolang/p/7141523.html

你可能感兴趣的文章
git安装和使用
查看>>
数据类型转换
查看>>
Nodejs学习笔记(2) 阻塞/非阻塞实例 与 Nodejs事件
查看>>
跟我一起读postgresql源码(六)——Executor(查询执行模块之——查询执行策略)
查看>>
scala的4中for循环,及while和do while循环
查看>>
Go语言程序结构
查看>>
自定义圆形头像
查看>>
JavaScript&jQuery.动态创建元素
查看>>
WebBrowser记录
查看>>
什么是FreeMaker
查看>>
设计模式学习笔记(总结篇:模式分类)
查看>>
算法笔记_075:蓝桥杯练习 最短路(Java)
查看>>
TCP的三次握手/建立连接
查看>>
Python 教程阅读笔记(一):使用解释器
查看>>
运算符重载
查看>>
SDWebImage 新版接口使用方法
查看>>
简单的jQuery检测注册用户名
查看>>
DataTable导出为word,excel,html,csv,pdf,.txt
查看>>
android ListView详解
查看>>
软件工程 第一次作业
查看>>