基础关键字之static

static关键字

  • static就是没有this的方法
  • 可以在没有创建任何对象的前提下,仅通过类本身来调用
  • 很像全局方法,但是Java中禁止全局方法

静态代码块

public class 类名称{
static{
       //静态代码块内容
   }
}

特点

当第一次用到本类时,静态代码块执行唯一的一次

静态代码块执行时机:

静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码块以及构造函数。如果一个类中有多个静态代码块,会按照书写顺序依次执行。后面在比较的时候会通过具体实例来证明。

构造代码块:

构造代码块在创建对象时被调用,每次创建对象(依赖于构造函数,不实例化对象,不会执行)都会调用一次,但是优先于构造函数执行。

静态变量

如果想让一个类的所有对象共享数据,就要使用静态变量,也叫类变量。

静态方法

静态部分是依赖于类,而不是依赖于对象存在的,所以静态部分的加载优先于对象存在

  • 静态方法只能访问静态变量

  • 静态不能直接访问非静态【重点 & 注意】原因:在内存当中,【先有】静态内容,【后有】非静态内容

  • 静态方法不可以使用this关键字

  • 成员方法可以访问成员变量

  • 成员方法可以访问静态变量

调用方法

​ 无论是成员变量还是方法。如果有了static,都推荐用类名来调用它

静态变量:类名称.静态变量

静态方法:类名称.静态方法()

如何判断一个变量或者方法应该是实例还是静态的?

如果一个变量或方法依赖于类的某个实例,那就因该将它定义为实例变量或实例方法。

反之,定义为静态变量或静态方法。

Java 中的 static 关键字可以用来修饰类、方法和变量,它的作用是使得这些元素成为类级别的而非实例级别的。 1. static 变量 在 Java 中,每个实例都会拥有一份自己的成员变量,而 static 变量则是属于整个类的,所有实例共享同一份 static 变量的值。在定义 static 变量时,需要在变量前加上 static 关键字。 举个例子,下面的代码定义了一个类 A,其中包含了一个实例变量 x 和一个 static 变量 y: ``` public class A { int x; static int y; } ``` 在这里,每个 A 的实例都会有自己的 x 变量,但是它们都共享同一个 y 变量。 2. static 方法 static 方法属于类级别,可以直接通过类名调用,不需要先创建类的实例。在定义 static 方法时,需要在方法前加上 static 关键字。 举个例子,下面的代码定义了一个类 B,其中包含了一个实例方法 foo 和一个 static 方法 bar: ``` public class B { void foo() { // 实例方法 } static void bar() { // 类方法 } } ``` 在这里,foo 方法必须通过 B 的实例才能调用,而 bar 方法可以直接通过 B 类名调用。 3. static 代码块 static 代码块是在类被加载时执行的一段代码,它可以用来初始化 static 变量。static 代码块只会执行一次,且在所有实例创建之前执行。 举个例子,下面的代码定义了一个类 C,其中包含了一个 static 变量 x 和一个 static 代码块: ``` public class C { static int x; static { x = 10; } } ``` 在这里,当 C 类被加载时,static 代码块会执行一次,将 x 变量初始化为 10。 总结一下,Java 中的 static 关键字可以用来修饰类、方法和变量,它使得这些元素成为类级别的而非实例级别的。static 变量和方法可以通过类名直接访问,而 static 代码块可以用来初始化 static 变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值