当前位置: 首页 > news >正文

Java学习------static、final、this、super关键字

1. static关键字

  • static修饰的变量叫做静态变量。当所有对象的某个属性的值是相同的,建议将该属性定义为静态变量,来节省内存的开销。
  • 静态变量在类加载时初始化,存储在堆中。
  • static修饰的方法叫做静态方法。
  • 所有静态变量和静态方法,统一使用“类名.”调用。
  • 静态方法中不能使用this关键字。因此无法直接访问实例变量和调用实例方法。
  • 静态代码块在类加载时执行,一个类中可以编写多个静态代码块,遵循自上而下的顺序依次执行。
  • 静态代码块代表了类加载时刻,如果你有代码需要在此时刻执行,可以将该代码放到静态代码块中。

2. final关键字

  • final修饰的类不能被继承
  • final修饰的方法不能被覆盖
  • final修饰的变量,一旦赋值不能重新赋值
  • final修饰的实例变量必须在对象初始化时手动赋值
  • final修饰的实例变量一般和static联合使用:称为常量
  • final修饰的引用,一旦指向某个对象后,不能再指向其它对象。但指向的对象内部的数据是可以修改的。

3. this关键字

  • this出现在实例方法中,代表当前对象。
  • this本质上是一个引用,该引用保存当前对象的内存地址。
  • 通过“this.”可以访问实例变量,可以调用实例方法。
  • this存储在:栈帧的局部变量表的第0个槽位上。
  • this. 大部分情况下可以省略,用于区分局部变量和实例变量时不能省略。
  • this不能出现在静态方法中。
  • this(实参):只能出现在构造方法的第一行

4. super关键字

  • super代表的是当前对象中的父类型特征。
  • super不能使用在静态上下文中。
  • 当父类和子类中定义了相同的属性(实例变量)或者相同方法(实例方法)时,如果需要在子类中访问父类的属性或方法时,super.不能省略。
  • super(实参):通过子类的构造方法调用父类的构造方法,目的是为了完成父类型特征的初始化。
  • 当一个构造方法第一行没有显示的调用“super(实参);”,也没有显示的调用“this(实参)”,系统会自动调用super()。
  • super(实参); 这个语法只能出现在构造方法第一行。
  • 在Java语言中只要new对象,Object的无参数构造方法一定会执行。

相关文章:

  • 【最佳实践】Go 状态模式
  • 基于CNN的多种类蝴蝶图像分类
  • SAP学习笔记 - 用Deepseek 整理SAP 01 - MM模块中的常用表及主键
  • 自然语言处理编程文档
  • 8051汇编--条件转移指令
  • OceanBase 中,如何抓包分析应用连接超时的问题
  • SourceTree的安装与使用
  • 【Go每日一练】计算整数数组的最大子数组和
  • docker安装node部分问题
  • Leetcode 刷题笔记1 单调栈part02
  • C# 获取Type对象的方式
  • 本周安全速报(2025.3.11~3.17)
  • 依赖倒置 DIP、依赖注入 DI、控制反转 IoC 和工厂模式
  • 算法备案全景洞察趋势解码:技术迭代、行业裂变与生态重构
  • IP关联对跨境电商的影响及如何防范措施?
  • Arduino开发ESP8266环境搭建
  • LeetCode[19]删除链表的倒数第N个节点
  • 【Go语言圣经3.1】
  • 《Python深度学习》第一讲:深度学习基础
  • uniapp APP权限弹框
  • 人民日报评论员:焕发风雨无阻、奋勇前行的精气神
  • 白玉兰奖征片综述丨国产剧集创作的此消彼长
  • “80后”杨占旭已任辽宁阜新市副市长,曾任辽宁石油化工大学副校长
  • 徐徕任上海浦东新区副区长,此前已任区委常委
  • 辽宁辽阳市白塔区一饭店火灾事故举行新闻发布会,现场为遇难者默哀
  • 深入贯彻中央八项规定精神学习教育中央指导组培训会议召开