java静态变量是什么_java静态变量可以改变吗[通俗易懂]

java静态变量是什么_java静态变量可以改变吗[通俗易懂]publicclassEmployee{/**-静态变量的默认值规则和实例变量一样。*-静态变量值是所有对象共享。*-静态变量的值存储在方法区。*-静态变量在本类中,可以在任意方法、代码块、构造器中直接使用。*-如果权限修饰符允许,在其他类中可以通过“类名.静态

大家好,欢迎来到IT知识分享网。

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);
		
	}
}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/29936.html

(0)
上一篇 2023-10-12 20:00
下一篇 2023-10-13 10:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信