啥是Java静态变量

public class Employee { /* * - 静态变量的默认值规则和实例变量一样。 * - 静态变量值是所有对象共享。 * - 静态变量的值存储在方法区。 * - 静态变量在本类中,可以在任意方法、代码块、构造器中直接使用。 * - 如果权限修饰符允许,在其他类中可以通过“类名.静态变量”直接访问,也可以通过“对象.静态变量”的方式访问(但是更推荐使用类名.静态变量的方式)。 * - 静态变量的get/set方法也静态的,当局部变量与静态变量重名时,使用“类名.静态变量”进行区分 */ //私有的静态变量需要通过 类名.getTotal()来访问 private static int total; //不私有的静态变量可以直接通过 类名.company访问 static String company; private int id; private String name; //这样的块叫做非静态代码块,可用来作为多个构造器的公共代码,即在每创建一个对象时会执行一次 { total++; id = total; } public Employee() {} public Employee(String name) { this.name = name; } public static int getTotal() { return total; } public static void setTotal(int total) { Employee.total = total; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Employee {company = "+ company +", id=" + id + ", name=" + name + "}"; } } public class TestStaticVariable { public static void main(String[] args) { //静态变量的默认值与实例变量一样,此处为0 System.out.println("Employee total = " + Employee.getTotal()); //company值默认为null,每创建一个对象都会执行一次非静态代码块,即total加了两次,值为2 Employee c1 = new Employee("yangtao"); Employee c2 = new Employee(); System.out.println(c1); System.out.println(c2); System.out.println("Employee total = " + Employee.getTotal()); //非私有的静态变量可以通过 类名.静态变量名 来访问与赋值 Employee.company = "atguigu"; System.out.println(c1); System.out.println(c2); //静态变量为所有对象共有的变量,修改了其中一个对象的静态变量会影响所有对象 c1.company = "object change static"; System.out.println(c1); System.out.println(c2); } }

__EOF__

本文作者··十方··
本文链接https://www.cnblogs.com/flynn24/p/16127655.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ··十方··  阅读(366)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示