c static java static_Java中static的用法解析

知识点

1.static关键字

a.可以修饰变量,方法,代码块

b.修饰的变量和方法可以使用类名.变量名/类名.方法名调用

c.static修饰的资源为静态资源,在类加载的时候执行

d.在静态方法中只能调用静态资源

e.静态代码块的作用就是加载一些静态资源(IP,图片)

在这里就用几个有代表性的代码实例进行简单说明吧,这样或许能够更好地理解;

案例一:

1 //用于修饰工具方法

2 public classStaticDemo {3 //在创建对象时赋值属性时才会被创建

4 private static String info="今天天气真好";5 //static修饰的静态变量在类加载时就会存在(.java文件->.class文件)

6 public static voidfunction(){7 int num=10;8 System.out.println("静态方法被调用!"+info+num);9 }10 public static voidmain(String[]args){11 StaticDemo.function();12 }13 }

♦在案例一中,我们发现当原本是StaticDemo中私人属性的info只有在加上static修饰符之后才能被之后function构造方法调用;

♦而function()中创建的num因为属于局部变量,是在所属构造方法在被创建时一同创建的而不用再次强调使用static修饰。

案例二:

1 public classStaticDemo02 {2 int i=0;3 static int j=0;4 publicStaticDemo02(){5 i++;6 j++;7 }8 public static voidmain(String[]args){9 StaticDemo02 s1=newStaticDemo02();10 System.out.println(s1.i);11 StaticDemo02 s2=newStaticDemo02();12 System.out.println(s2.i);13 StaticDemo02 s3=newStaticDemo02();14 System.out.println(s3.i);15 System.out.println(StaticDemo02.j);16 }17 }

♦在案例二中我们可以更加清楚地认识到只有在用static修饰变为静态资源后才能不被new关键字干扰;

♦其实在这里为了方便理解,我们可以把用static修饰过后的一般变量看作一种特殊的常量,就像1、2一样,但又不同于一般普通常量,

我们把这种常量称之为静态变量;

另外关于构造方法、代码块和静态代码块在类中谁先执行的问题,我们也同样可以用这样一个较简单的办法测试出来;

1 public classStaticDemo03 {2 publicStaticDemo03(){3 System.out.println("构造方法被执行");4 }5 {6 System.out.println("代码块被执行");7 }8 static{9 System.out.println("静态代码块被执行");10 }11 public static voidmain(String[]args){12 StaticDemo03 sd=newStaticDemo03();13 }14 }

当然结果可想而知,静态代码块是最先被创建的,而构造方法和一般代码块的执行顺序相差无几。

——————————————————小 结——————————————————————

还是把最主要的static说明用一张表做出来最好了^.^

310cf5ac92ea95e2de1a9aca60305a06.png

明天继续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值