博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java】用 static 修饰变量时应该注意的问题
阅读量:5879 次
发布时间:2019-06-19

本文共 1048 字,大约阅读时间需要 3 分钟。

1.使用 static 修饰的变量由该类的全体对象共享

public class TestStatic {    static int a;        public void setA(int a) {        this.a = a;    }        public void printA() {        System.out.println(a);    }        public static void main(String[] args) {        TestStatic t1 = new TestStatic();        t1.setA(10);        t1.printA();                TestStatic t2 = new TestStatic();        t2.printA();    }}

输出结果

1010

t1 中我们把静态变量 a 的值设为了 10,在 t2 中并没有对 a 进行任何操作

我们可以清楚的看到被 static 修饰的变量是被该类的全体对象所共享的

 

2.在子类中如果没有重新定义继承自父类的静态变量,那么子类和父类共享同一个静态变量

(1)没有在子类重新定义静态变量 a

public class TestStatic2 extends Father{    public static void main(String[] args) {        a++;        System.out.println(a);    }}class Father{    static int a = 10;}

输出结果

11

(2)在子类中重新定义静态变量 a

public class TestStatic2 extends Father{    static int a = 5;    public static void main(String[] args) {        a++;        System.out.println(a);    }}class Father{    static int a = 10;}

输出结果

6

我们可以看到

static 修饰的变量,在子类中如果没有重新定义继承自父类的静态变量,那么子类和父类共享同一个静态变量

 

转载于:https://www.cnblogs.com/syxy/p/10040615.html

你可能感兴趣的文章
zabbix监控部署
查看>>
struts中的xwork源码下载地址
查看>>
Android硬件抽象层(HAL)深入剖析(二)
查看>>
CDays–4 习题一至四及相关内容解析。
查看>>
L3.十一.匿名函数和map方法
查看>>
java面向对象高级分层实例_实体类
查看>>
android aapt 用法 -- ApkReader
查看>>
[翻译]用 Puppet 搭建易管理的服务器基础架构(3)
查看>>
Android -- AudioPlayer
查看>>
Python大数据依赖包安装
查看>>
Android View.onMeasure方法的理解
查看>>
Node.js 爬虫初探
查看>>
ABP理论学习之仓储
查看>>
NestJS 脑图
查看>>
我的友情链接
查看>>
Html body的滚动条禁止与启用
查看>>
Tengine新增nginx upstream模块的使用
查看>>
多媒体工具Mediainfo
查看>>
1-小程序
查看>>
CentOS图形界面和命令行切换
查看>>