Java程序员成神之路

本文详细介绍了Java中的类变量和类方法(静态方法),强调了它们在何时使用以及与实例变量的区别。类变量是所有对象共享的,而实例变量是对象独有的。类方法可以通过类名或对象调用,但不允许使用`this`关键字。在创建对象时,会按照特定顺序执行静态和非静态代码块、构造器。此外,讨论了类加载时机,如创建对象、使用静态成员时。对于子类实例化,还会涉及父类的初始化过程。

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

类变量和类方法(static)

  1. 什么时候需要用类变量
    当我们需要让某个类共享同一个变量时,可以考虑将变量设置为类变量
  2. 类变量和实例变量的区别
    类变量是该类的所有对象共享的,而实例变量是每个对象独享的
  3. 类变量可以通过,类名.类变量 或者 对象.类变量【类变量的访问也需要满足访问权限】
  4. 实例变量不能通过 类名.变量名 访问
  • 类方法的基本介绍
    类方法也称为静态方法
访问修饰符 static 数据返回类型 方法名(){}
static 访问修饰符 数据返回类型 方法名(){}
  1. 静态方法不允许有this关键词
  2. 静态方法只能访问静态变量或静态方法
  3. 普通成员方法可以访问静态变量和静态方法

代码块

  1. 通过{}两个大括号来包括,修饰符只能为static或者默认。
  2. 代码块在调用类的时候会隐性执行,先调用代码块的内容再调用构造器
  3. 是一种对构造器的补充机制
  4. static 标记的代码块为静态代码块,在类加载时默认执行,只会执行一次。未标注static则表示普通代码块,如果是普通代码块则会在每次创建类的时候就执行,但是使用类的静态成员时,普通代码块不会执行。
  • 类什么时候会被加载?
  • 创建对象实例的时候(new)
  • 创建子子类对象实例,父类也会被加载
  • 使用类的静态成员的时候(静态属性,静态方法)也会进行加载
  1. 创建一个对象时,在一个类调用的顺序
  • 调用静态代码块和静态属性初始化(静态代码块和静态属性初始化调用的优先级相等,如果有多个静态代码块和多个静态属性则按照定义的顺序进行调用)
  • 调用普通代码块和普通属性的初始化(优先级相同)
  • 调用构造方法
  1. 如果一个子类继承父类,创建一个子类实例时执行顺序为
  • 父类的静态代码块和属性初始化
  • 子类的静态代码块和属性初始化
  • 父类的普通代码块和属性初始化
  • 父类的构造方法
  • 子类的普通代码块和属性初始化
  • 子类的构造方法
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值