Java教程专栏:https://blog.csdn.net/qq_41806966/category_9929686.html
hello,I'm shendi
这节学习关键字 static
目录
在之前的学习中,我们有接触过 static 关键字---public static void main(String[] args) {}
static 是什么?
static是 Java 语言中的一个关键字,用于将成员声明为静态的,一个静态的成员在整个程序中是唯一的.
为什么需要?
首先熟悉一下对象的概念
在之前,我们知道可以通过 new 一个类来创建这个类的一个对象.
那么这个类相当于一个模板,对象相当于这个模板生成出来的产品(实例),也就是说,每一个实例都是独立的,并且可以单独修改.
例如 人类和具体的人,
那么,如果我们有需求,让所有对象实例共有一个成员,就需要使用 static(静态) 关键字
例如 已经有很多人类的实例 A,B,C,D,这群人有一个共同的领袖 A,代码如下
-
class People {
-
String name;
// 名称
-
String superName =
"A";
// 领袖名称
-
}
这个时候我们领袖更换了,想变成 B,该如何做呢?
我们有四个对象 A,B,C,D,因为对象都是独立的,所以需要将这四个对象的superName都改成 B,那么问题来了,我们怎么获取到这四个对象?创建完用数组储存起来? 这样会占内存,降低效率, 这时就可以使用 static 关键字
作用?
经过上面的叙述,应该有了一个大概的了解
static 静态,可以将类的某个成员置为共享(所有对象用这一个),因为只有一个,所以进行任何修改其他对象也跟着改变.
static 也可以理解为在类中,而不是对象中
如何使用?
在之前我们已经知道了可以在方法上使用(main函数)
static 关键字可以用作 方法上,属性上...简单说就是类里的成员都可以使用static关键字
我们一般将 static 写在权限修饰符的后方
例如
-
class A {
-
public
static
int a;
-
private
static
int b;
-
public static void a() {
-
-
}
-
}
特点
被 static 关键字修饰的成员不在属于对象,而属于类,所以我们可以直接通过类来使用
语法: 类名.成员
static 关键字多用于工具类中
比如求和,计算,打印等不需要变的固定的方法
注意: 因为静态的成员(static修饰)属于类,而不属于对象,所以,非静态的成员不能使用静态的成员
实战
本节代码以及后续代码都会上传至github,直接进入 https://github.com/1711680493/JavaCourse
记得点一下右上角的 star
先从上面的注意事项开始,非静态成员不能使用静态成员
编译出错
领袖更换
接下来我们完成之前说的那个例子
首先我们需要一个人类 People, 此类拥有名称,和领袖名的属性,因为要让外部访问,所以是public的
然后我们创建一个测试类,分别创建名称为A,B,C,D的实例,并输出领袖
因为默认领袖为A,所以他们的领袖都为A,编译运行
我们这时候修改领袖为B,就使用对象a
再次编译运行
可以看到,只有A的领袖变了,这不是我们想要的,这时我们将领袖属性改成静态
再次编译运行
下节学习final关键字
转载:https://blog.csdn.net/qq_41806966/article/details/108110142