飞道的博客

[Java教程]21.静态-static

415人阅读  评论(0)

Java教程专栏:https://blog.csdn.net/qq_41806966/category_9929686.html

hello,I'm shendi

这节学习关键字 static


目录

 

static 是什么?

 

为什么需要?

 

作用?

如何使用?

特点

实战

领袖更换


在之前的学习中,我们有接触过 static 关键字---public static void main(String[] args) {}

 

static 是什么?

static是 Java 语言中的一个关键字,用于将成员声明为静态的,一个静态的成员在整个程序中是唯一的.

 

为什么需要?

首先熟悉一下对象的概念

 

在之前,我们知道可以通过 new 一个类来创建这个类的一个对象.

那么这个类相当于一个模板,对象相当于这个模板生成出来的产品(实例),也就是说,每一个实例都是独立的,并且可以单独修改.

例如 人类和具体的人,

 

那么,如果我们有需求,让所有对象实例共有一个成员,就需要使用 static(静态) 关键字

例如 已经有很多人类的实例 A,B,C,D,这群人有一个共同的领袖 A,代码如下


  
  1. class People {
  2. String name; // 名称
  3. String superName = "A"; // 领袖名称
  4. }

这个时候我们领袖更换了,想变成 B,该如何做呢?

我们有四个对象 A,B,C,D,因为对象都是独立的,所以需要将这四个对象的superName都改成 B,那么问题来了,我们怎么获取到这四个对象?创建完用数组储存起来? 这样会占内存,降低效率, 这时就可以使用 static 关键字

 

作用?

经过上面的叙述,应该有了一个大概的了解

static 静态,可以将类的某个成员置为共享(所有对象用这一个),因为只有一个,所以进行任何修改其他对象也跟着改变.

static 也可以理解为在类中,而不是对象中


如何使用?

在之前我们已经知道了可以在方法上使用(main函数)

static 关键字可以用作 方法上,属性上...简单说就是类里的成员都可以使用static关键字

 

我们一般将 static 写在权限修饰符的后方

例如


  
  1. class A {
  2. public static int a;
  3. private static int b;
  4. public static void a() {
  5. }
  6. }

 

特点

被 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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场