再识Static(java)

之前认为Static修饰的类不用实例化,可以直接用类名点出来就行了。最近又学习了一下Static,又有了新的认识。

static是静态的意思,对静态的理解:比如要使用一个类里面的一个方法或者属性,就要需要进行实例化,需要new出新的东西,所以实例化的过程就是动态。而使用了static就不用实例化,所以用static修饰的类或者方法不用new出新的东西,就属于静态。

用static修饰了一个类下面的内容之后(例如一个变量),这个变量所占的内存就只有一块,不会随着实例化去申请新的内存空间。这也是属于静态的。

下面举例来说明static的功能:

public class Cat{
	private static int id = 0;
	
	Cat(){id ++;}
	
	public void info(){
	    System.out.println(id);		
	}
	
	public static void main(String arg[]){
	
	    Cat mimi = new Cat();	
	    mimi.info();
	    Cat pipi = new Cat();
	    pipi.info();	
}
	
}

如上,mimi打印出来的是1,pipi打印出来的是2,因为id用了static修饰,内存只有一块,任何实例化的新对象都不会new 出新的id内存,任何修改只会动原来这一块内存。如果没有static的修饰,那两个对象打印出来的都会是1。

下面新增一行代码:

public class Cat{
	private static int id = 0;
	
	Cat(){id ++;}
	
	public void info(){
		System.out.println(id);		
	}
	
	public static void main(String arg[]){
	
		Cat mimi = new Cat();	
		mimi.info();
		mimi.id = 100;//新增代码
		Cat pipi = new Cat();
		pipi.info();	
}	
}

因为static是静态的,即使是mimi给id赋的值,但pipi打印出来的是id是101,而不是1。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值