static关键字的使用

类是对象的外观或者行为方式的描述,通常只有使用new创建了一个对象后,数据存储空间才被分配,对象的方法才能被调用。这存在2种不足:

1、只想为特定属性分配储存空间,而不想创建对象。
2、想创建一个与此类的任何对象无关的方法,或不想创建对象,也想调用该方法。

static就是为解决此类问题存在的,只要用static修饰,就表示该属性该方法可以不依赖任何特定的对象实例。无需创建对象,也可以调用。

同时使用类名直接引用静态变量和方法是首选,这更强调了静态数据和方法是作为类而不是特定对象而存在的。

public class UseStatic {
	static void test() {
		System.out.println("这是一个静态方法");
	}
	public static void main(String[] args) {
		UseStatic.test();
	}
}

同样使用创建对象来调用test()也可以,当然首选是类,或者不加类名也可以。

		UseStatic sta = new UseStatic();
		sta.test();
		test();

这是因为static即被叫做静态或全局,独自利用一个数据存储空间,以属性为例:

public class UseStatic {
	static int i = 3;
	UseStatic st1 = new UseStatic();
	UseStatic st2 = new UseStatic();
}

即使创建了两个对象,但st1.i和st2.i都指向同一块存储空间,都是3;同样使用最优先级的类来引用:

{
UseStatic.i++;
}

此时st1.i和st2.i都变成了4。由以下代码可以证明,静态属性不依赖特定对象而存在的(属于类)。

public class UseStatic {
	static int i = 3;
	public static void main(String[] args) {
		UseStatic st1 = new UseStatic();
		UseStatic st2 = new UseStatic();
		UseStatic.i++;
		System.out.println(i);	// 4
		System.out.println(st1.i == UseStatic.i);	 // true
	}
}

——参考《ON JAVA 8》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值