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,代码如下

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关键字

[Java教程]21.静态-static相关推荐

  1. Java学习(静态static关键字,数组工具类Arrays,数学相关工具类(绝对值,向上取整,向下取整),继承,super和this关键字,抽象)

    2022/1/2 (1/6)Java学习 1.静态Static关键字概述 一旦用了static关键字,那么这样的内容不再属于对象自己,而是属于类的,所以凡是本类的对象,都共享同一份. 2.静态stat ...

  2. 【java笔记】静态static关键字

    目录 static 修饰成员变量: static修饰成员方法: 注意: 静态static的内存图:​ 静态代码块: 一旦用了static关键字,那么这样的内容不再属于对象自己,而是属于类的. 多个对象 ...

  3. 一语点破Java中的静态static关键字

    作者:嗑嗑磕嗑瓜子的猫 blog.csdn.net/ju_362204801/article/details/90738966 思考:大家有没有想过一个问题,静态它为什么叫静态?因为书上或者别的文章里 ...

  4. 一语点破 Java 中的静态 static 关键字

    来源 | blog.csdn.net/ju_362204801/article/details/90738966 思考:大家有没有想过一个问题,静态它为什么叫静态?因为书上或者别的文章里这么写的都这么 ...

  5. 大白话系列之 —— 一语点破Java中的静态static关键字

    铁子们,快扫码关注啦!或 wx搜索:"聊5毛钱的java",关注可领取博主的Java学习视频+资料,保证都是干货 思考:大家有没有想过一个问题,静态它为什么叫静态?因为书上或者别的 ...

  6. java static关键字_好程序员Java教程分享static关键字的理解

    好程序员Java教程分享static关键字的理解,static关键字含义可以理解为静态的. 1. 当其修饰属性时,该属性为整个类公有,所有的对象操作的都是同一个静态属性.所以调用时应该使用类名去调用, ...

  7. Java的知识点10——static关键字、静态初始化块、 参数传值机制、包、导入类import、 静态导入

    static 关键字 在类中,用static声明的成员变量为静态成员变量,也称为类变量. 类变量的生命周期和类相同,在整个应用程序执行期间都有效.它有如下特点: 1. 为该类的公用变量,属于类,被该类 ...

  8. jsp页面中JSTL/EL标签引用java后台静态static字段的方法总结

    转载自   jsp页面中JSTL/EL标签引用java后台静态static字段的方法总结 为什么使用该功能? 项目中的每个页面都包含产品名称.Logo.版本等信息,我希望修改一处,其它所有的全部跟着变 ...

  9. Java编程基础08——面向对象_构造方法静态static

    1.构造方法Constructor概述和格式(掌握) A:构造方法概述和作用 给对象的数据(属性)进行初始化 B:构造方法格式特点 a:方法名与类名相同(大小写也要与类名一致) b:没有返回值类型,连 ...

最新文章

  1. 一家大型公司的nginx配置
  2. Lua日期与时间操作
  3. EventLoopGroup 与Reactor
  4. mysql workbench导入sql_MySQL Workbench 导入sql脚本-Go语言中文社区
  5. windows运行对话框_如何在Windows运行对话框中添加文本快捷方式?
  6. mssql2008极占内存
  7. 27. 用户生成内容
  8. ORACLE 树形遍历查询根节点 父节点 子节点
  9. 防止linux子系统关闭,Linux关闭selinux安全子系统的方法
  10. 军用设备环境试验方法高温振动试验标准
  11. 怎么用计算机打对错,丶符号怎么打-Word里的对√ 和 错× 怎么打出来的?
  12. 【Apollo 6.0项目实战】Canbus模块
  13. C语言实现HDB3编码与译码
  14. linux系统管理员用户名为admin,Linux创建系统管理员用户
  15. 工具系列——COMSOL Multiphysics 5.5安装教程
  16. 单核CPU使用多线程能否提高效率?
  17. julia集 matlab代码,Julia中文手册1.1版本
  18. 79:企业CRM客户系统:登录模块开发(cookie和session以及登录态校验)
  19. 蓝桥杯算法提高试题 学霸的迷宫(BFS)
  20. 【求证】 网上配镜靠谱吗?

热门文章

  1. 前端页面 原生php+H5 视频播放一 专辑列表页(专辑页list)
  2. 中职计算机基础教材节选,中职计算机基础 (985)(33页)-原创力文档
  3. 判断平面多边形的凹凸性
  4. Node 开发npm脚手架(类似vue-cli)
  5. Java 并发之Concurrent 包综述
  6. 锐化pdf文件(图片形式)
  7. oracle修改数据文件
  8. 阈值分割:基本全局阀值法、上下阀值法、迭代法
  9. python opencv根据颜色进行目标检测
  10. 电子商务网站测试经验总结