Static关键字【Java】

目录

一、 Static 的使用

        1.1 static 修饰属性

        1.2 static 修饰属性的其他说明

二、static 的举例说明

一、 Static 的使用

        Static:静态的。可以用来修饰:属性、方法、代码块、内部类。

        1.1 static 修饰属性

        属性从是否使用static来修饰,又可以分为静态变量(使用static修饰)和非静态变量(不使用static修饰,也可以称为实列变量)

        实例变量:当创建了类的多个对象时,每个对象都各自拥有一套类中的非静态变量,当修改其中一个非静态属性时,不会导致其他对象中的相同的属性的改变。

        静态变量:当创建了类的多个对象时,多个对象共享同一个静态变量。当修改一个对象后,会使其他对象中的此静态变量发生改变。

        1.2 static 修饰属性的其他说明

①  静态变量随类的加载而加载,可以通过 类.静态变量 的方式调用。

②  静态变量的加载要早于对象的创建。

③  由于类只会加载一次,则静态变量在内存中也只会存在一次,存在方法区的静态域中。

二、static 的举例说明

package cn.spilt_charging.contact;

public class staticTest {
	public static void main(String[] args) {
		
		//Chinese.name = "张三";  //编译无法通过(Chinese中的name不是静态的)
		
		Chinese.nation = "中国";
		
		System.out.println(Chinese.nation);
		
		Chinese chinese = new Chinese();
		chinese.name = "张三";
		chinese.age = 30;
		chinese.nation = "China";
		
		System.out.println("姓名: " + chinese.name + " 年龄: " + chinese.age + " 国籍: " + chinese.nation);
		//输出结果:姓名: 张三 年龄: 30 国籍: China
		
		Chinese chinese2 = new Chinese();
		chinese2.name = "李四";
		chinese2.age = 20; 
		System.out.println("姓名: " + chinese2.name + " 年龄: " + chinese2.age + " 国籍: " + chinese2.nation);
		//输出结果:姓名: 李四 年龄: 20 国籍: China
	}
}

class Chinese{
	
	String name;
	int age;
	static String nation = null;
}

static的应用

        在以下的例子中,将每个人的号数这一变量使用static修饰,实现的是每new一个对象,号数自动加1。 

package cn.spilt_charging.contact;

public class personStatic {
	public static void main(String[] args) {
		
		Popule person1 = new Popule("张三");
		Popule person2 = new Popule("李四");
		Popule person3 = new Popule("王五");
		
		System.out.println("第" + person1.getId() + "号的姓名为:" + person1.getName());
		System.out.println("第" + person2.getId() + "号的姓名为:" + person2.getName());
		System.out.println("第" + person3.getId() + "号的姓名为:" + person2.getName());
		System.out.println("总人数为:" + Popule.getTotal());
	}
}

class Popule{
	
	private String name;
	private int id;
	
	private static int total; //记录总人数
	private static int id_number = 101; // Person的学号
	
	public Popule() {
		id = id_number++;
		total++;
	}
	
	public Popule(String name) {
		this();
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public static int getTotal() {
		return total;
	}

	public static void setTotal(int total) {
		Popule.total = total;
	}
}

  最后到这里,文章就结束了,如果在内容上有问题,恳请各位大佬指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值