static关键字和final关键字
static关键字和final关键字
static(静态)
作用
用来修饰属性、方法、代码块、内部类
static修饰属性
表示静态变量(类变量)
按是否使用static修饰,属性的分类
- 静态属性
- 当创建了类的多个对象、每个对象都共享一个静态变量
- 当通过某一个对象修改静态变量时,会导致其他对象此静态变量时是修改过的
- 非静态属性(实例变量)
- 当创建了类的多个对象、每个对象都独立的拥有一套类中的非静态属性
- 当修改其中一个对象的非静态属性时,不会导致其他对象中同样的属性值的修改
说明
静态变量随着类的加载而加载,可以通过“类.静态变量”的方式进行调用(实例变量随着对象的创建而加载)
静态变量的加载要早于对象的创建
由于类只会加载一次,则静态变量在内存中也只会存在一份:存在方法区的静态域中

内存结构解析

static修饰方法
表示静态方法

说明
- 随着类的加载而加载,可以通过“类.静态方法”的方式进行调用
- 静态方法中,只能调用静态的方法和属性;非静态方法中,即可以调用非静态的方法或属性,也可以调用静态的方法或属性
- 在静态的方法内,不能使用this关键字、super关键字

判断是否使用static
属性需要声明static的情况
- 属性可以被多个对象所共享的,不会随着对象的不同而不同
- 类中的常量也常常声明为static
方法需要声明static的情况
- 操作静态属性的方法,通常设置为静态的
- 工具类中的方法,习惯上声明为静态的(Math、Arrays)
final(最终)
作用
用来修饰类、方法、变量
final修饰类
此类不能被其他类所继承(String类、System类、StringBuffer类都是final类)
final修饰变量
此时被修饰的“变量”就是一个常量
final修饰属性
- 可以考虑赋值的位置
- 显式初始化
- 代码块中初始化
- 构造器中初始化
- 因为不知道对象调用哪个构造器,所以写的构造器中必须每个都要给final变量(其他情况的变量也如此)赋值
final修饰局部变量
- 用final修饰形参
- 表明此形参是个常量。
- 当调用此方法时,给形参赋一个实参。一旦赋值以后,就只能在方法体内使用此形参。但不能进行重新赋值
static final
- 用来修饰属性、方法
- 修饰属性:全局常量
static关键字和final关键字的更多相关文章
- abstract关键字、final关键字、static关键字、访问修饰符详解
abstract关键字.final关键字.static关键字.访问修饰符详解 abstract关键字: final关键字: static关键字: 访问修饰符:
- 详解详解Java中static关键字和final关键字的功能
摘要:static关键字和final关键字是Java语言的核心,深入理解他们的功能非常重要. 本文分享自华为云社区<Java: static关键字与final关键字>,原文作者:唐里 . ...
- Java SE 第二十三讲----static关键字and final关键字
1.static关键字 [在二十二讲视频中30分钟开始讲授] 2.static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量:一个对象对该静态成员变量进行了修改,其他 ...
- Java基础super关键字、final关键字、static关键字、匿名对象整理
super关键字 10.1子父类中构造方法的调用 public class Test { public static void main(String[] args) { new Zi(); } } ...
- [Java学习]面向对象-super关键字;final关键字
super关键字 super代表的是当前子类对象中的父类型特征,可以看做是this的一部分.与this不同,不是引用,不存储对象内存地址. super可以用在什么位置 1 可以用在成员方法中.不能用在 ...
- [18/12/01]super 关键字和final 关键字
一.super 关键字 1.super是直接父类对象的引用.可以通过super来访问父类中被子类覆盖的方法或属性. 使用super调用普通方法,语句没有位置限制,可以在子类中随便调用. 代码示例: c ...
- 面向对象编程(四)继承,概念及super关键字,final关键字,Object类常见方法
继承 概念: ① 继承背后的思想就是基于已存在的类来构建新类; ② 当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求; ③ 当从其它类导出的类叫作子 ...
- 重写、super关键字、final关键字、多态、子类型转换、抽象的初步了解
重写 含义 在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写.方法重写又称方法覆盖. 重写与重载的 ...
- java——super关键字、final关键字、throws关键字、访问控制
super关键字: 当父类被重写之后,子类对象无法访问父类被重写的方法,super就是为了解决这个问题: 1.使用super关键字访问父类的成员变量和成员方法: super.成员变量 super.成员 ...
随机推荐
- eclipse .project文件 .classpath文件的作用
.classpath文件的作用 可以参考.classpath文件的作用 .project文件的作用 确保你自己的eclipse能创建Java项目,并且正确编译运行helloworld,给eclipse ...
- 01.scrapy入门
Scrapy快速入门 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,它使用Twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求. ...
- vue全家桶(4.1)
5.状态管理 5.1.兄弟组件之间共享数据的问题? 首先,我们需要了解下兄弟组件之间如何共享数据的问题 完成下列需求: 1.点击按钮,改变商品数量 2.点击加入购物车,在购物车的这个div盒子里需要显 ...
- 如何在Vim中更改颜色和主题
大家好,我是良许. Vim是我们在Linux中非常常用的一款文本编辑器.Vim 是一款免费.开源的文本编辑器,它的功能和许多其他的文本编辑器大致相同,比如 Sublime 和 Notepad++ .V ...
- FTP学习
FTP服务的使用 一.LVM理论 介绍 FTP用于在Internet 上控制文件的双向传输. FTP的主要作用就是让用户连接一 个远程计算机(这些计算机上 运行着FTP服务器程序) ,并查看远程计算机 ...
- POJ 3463 Sightseeing 题解
题目 Tour operator Your Personal Holiday organises guided bus trips across the Benelux. Every day the ...
- ZJOI2008 骑士(树型DP)
ZJOI2008 骑士 题目大意 给出n个人的战斗力和每个人讨厌的人,然后问最大能有多大的战斗力 solution 简单粗暴的题意,有一丢丢背包的感觉 那敢情就是DP了 有点像没有上司的舞会,,, 根 ...
- 【经典DP】洛谷 P2782 友好城市
嘤嘤嘤,昨天两个文化课老师在上奥赛时招呼我(亲切交流),今天又要写工作报告,没时间写题解,希望今天能补上 友好城市 题目://洛谷那粘来的题面竟然能把格式粘过来 题目描述 有一条横贯东西的大河,河有笔 ...
- 原生JS实现树状结构列表
树状结构列表,这个技术点之前有写过了,是基于vue讲解,但似乎都没有解决痛点,最基础的原生JS该怎么实现呢? 这篇文章会全面详细的介绍树状结构列表的实现,从数据处理成树状结构,到动态生成dom节点渲染 ...
- day14总结
装饰器 """1.什么是装饰器 器指的是工具/功能 装饰指的是为被装饰对象添加额外的功能 大白话:定义装饰器就是定义了一个函数,该函数就是用来为其他函数添加额外的功能的 ...