关于static关键字学习和使用

static关键字的作用

只要是被static静态关键字修饰过的变量,方法等。都会存放在内存的静态区中,静态区中的声明周期与程序的声明周期一样,直到程序结束,才释放。静态区的变量是可以被本类共享,其他类不需要实例化就可以调用。

常用案例:
1.静态变量
2.静态方法
3.静态块

静态变量
静态变量在代码中如何实现呢?又有哪些小特点呢?让我们来看一段小代码

我在main函数里创建了俩个Pool类的实例,in 和zm 分别调用了一次in方法,那么最后输出的值将会是 : 6 ,因为第一次和第二次调用静态变量的时候都会生效。

package beifendadai;


public class Pool {
		static int water = 0;
		
		public void in() {
			water +=3;
		}
		public static void main(String[] args) {
			Pool in =new Pool();
			Pool zm =new Pool();
			in.in();
			zm.in();
			System.out.println(Pool.water);
			
		}
}

补充一下,如果是多个类调用某一个类的常量final 时的情况下,也建议修改成静态方式方便调用。

下面看一下静态方法
静态方法
直接上代码

public class Pool {
		
		
	static	public void test() {
			 System.out.println("11111");
		}
		public static void main(String[] args) {
			Pool.test();			
		}
}

是不是跟上面调用变量时的步骤是一样的,没错可以通过 类名.方法名的方式直接来调用静态方法。

静态代码块
在类的成员方法外,是static修饰的代码块,就可以理解为静态代码块,静态代码块在类的声明的时候就会被运用,所以是最适合最类的初始化的。

语法代码:

static	{
		System.out.println("hahaha");
		}

需要注意的是 静态代码块与构造方法、成员方法是有先后的运行顺序的,看如下代码

package Test;

public class Dome {
	static	String name;
		static {
			System.out.println("静态方法: "+name);
		}
		Dome(String name){
			System.out.println("构造方法 :"+name);
		}
		void zhangMo(String name) {
			this.name=name;
			System.out.println("成员方法: "+this.name);
		}
		public static void main(String[] args) {
			Dome dome = new Dome("大飞");
			dome.zhangMo("大飞");
		}
}

下面是程序的输入结果:
静态方法: null
构造方法 :大飞
成员方法: 大飞

为了方便展示先后的运行顺序,将结果以顺序的形式展示出来,在构造方法前,static代码块里的方法就已经执行了。所有没有取到 name的值。

ps: 其实还有一个非静态代码块没有展示出来,非静态代码块也是在构造方法之前就已经执行了,是在声明类对象之后执行的。也就是new一个对象但是还没传参数值的时候~

以上是本人对static学习和使用的简单运用,有问题欢迎随时指正,我是张胖白,晚安~

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值