Java基础-复习03-关键字

本文深入解析Java中的this和super关键字使用场景,探讨final修饰符对变量、方法和类的影响,以及static关键字在变量、方法和代码块中的应用。通过实例讲解,帮助读者理解这些核心概念,提升编程技巧。

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

一. this和super

1. this

  • this指 当前对象本身 或 当前正在创建的对象
  • this.属性 和 this.方法 调用时可以省略this,当方法的形参和类属性同名时,this不可省略
  • this(形参) 调用本类中相同参数形式的另一构造函数,必须为构造函数中的第一条语句

2. super

  • super指向离自己最近的一个父类,通常可以省略
  • 当子类和父类有同名属性,为了指定调用了父类的属性,不可省略super
  • 当子类和父类有同名方法,为了指定重写了父类的方法,不可省略super
  • super(形参)调用父类中相同参数形式的构造函数,必须为构造函数中的第一条语句

二. final

1. final 变量

  • 对于基本类型,final使数值不变
  • 对于引用类型,final使引用不变,即不能引用其他对象,但被引用对象本身可以改变

2. final 方法

  • 父类中的final方法可以被子类继承,但是不能被子类重写

3. final 类

  • final类不能被继承

final域可以保证多线程访问的安全性

//JVM保证final修饰的accounts引用必须在Bank的构造函数执行后才能生效
class Bank {
	private fianl Map<String, Double> accounts = new HashMap<>();
	public Bank() {
		accounts.put("张三", 3000);
		accounts.put("李四", 4000);
	}
}

三. static

1. static 变量

  • 又称类变量,即此变量属于类,无论一个类实例化多少个对象,它们都共享同一静态变量
  • 静态变量随着类的加载而加载,因此早于对象的创建,且在内存中只存在一份
  • 一个类实例化多个对象,某个对象修改了静态变量,其他对象调用也是修改过的静态变量
  • 类中的常量通常声明为static,即 static final int XXX = 123;

2. static 方法

  • 静态方法随类的加载而加载,它不依赖于任何实例
  • 静态方法必须有实现,也就是说它不能是抽象方法
  • 静态方法只能调用所属类的静态方法和静态属性
  • 静态方法中不能有 this 和 super 关键字
  • 工具类中的方法,习惯上声明为static,比如:Math、Arrays、Collections

3. 静态代码块

  • 静态代码块在类初始化时运行一次

4. 初始化顺序

  • 静态变量、静态代码块 -> 成员变量、普通代码块 -> 构造函数

5. 访问原则

  • 静态的只能访问静态的,因为他们在对象没创建前就存在了
  • 静态的如果想访问非静态的,则必须初始化该对象,非静态的才存在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值