- 4
- 0
- 约3.61千字
- 约 7页
- 2017-05-12 发布于河南
- 举报
static
Static
目前如果想要调用某个对象上面的方法,必须要产生对象的实例,如果在两个地方调用就需要产生两个实例。有些时候被调用的方法与实例的多少没有任何关系,该方法可能只是帮助方法。在这种情况下,不需要多个实例,为了解决必须产生实例才能调用方法的问题,java 引入了static,先看一个实例:
public static void main(String[] args) {
System.out.println(Math.random());
}
在jdk中Math的random方法的作用是提供一个产生随机数的功能,它只是一个帮助方法,与Math中的实例变量没有任何关系,所以不需要调用一次产生一个实例,只通过类直接调用就可以了,在此JDK中就提供了random这static(静态)方法。
Static 不仅可以修饰方法还可以修饰属性,由于Static 修饰的方法或者属性与实例的多少没有任何的关系,可以理解为static 的方法和属性是可以在多个实例之间共享的。
看以下实例:
public class StaticDemo {
static int counter;
public StaticDemo(){
counter++;
}
public static void main(String[] args) {
StaticDemo sd0 = new StaticDemo();
StaticDemo sd1 = new StaticDemo();
System.out.println(counter:+counter);
}
}
运行结果:counter:2
从以上实例可以看出,sd0 所指向的对象和 sd1指向的对象共享了static变量。实际上我们经常提到的入口函数也是个static静态方法,静态方法与实例没有任何的关系,它可以直接调用静态变量。 也可以通过实例的引用调用静态属性或者方法,效果是相同,只是不需要而已。
以上述实例为例:
System.out.println(counter:+sd0.counter);, System.out.println(counter:+sd1.counter)和 System.out.println(counter:+counter);三者完全等价。
再强调一遍,在静态方法里可以直接调用static(静态)变量,如果不是静态变量,而是实例变量,是不能够在静态方法中直接调用的,必须要先产生实例,好好理解以下这句话:实例变量是与实例相关的,只有产生了实例,实例变量才有意义。而我们想要调用实例变量,这时候必须要先有实例,所以如果想要调用实例变量必须 new 出个实例。
以上实例,如果把关键字static去掉,则counter就变成了实例变量,如果在static 方法中调用必须先有一个实例。
静态代码块
可以把某段代码直接通过static修饰,看以下实例:
public class StaticDemo {
int counter;
static {
System.out.println(in the static segment...);
}
public StaticDemo(){
System.out.println(in the constuctor segment...);
}
public static void main(String[] args) {
StaticDemo sd0 = new StaticDemo();
}
}
运行结果:
in the static segment...
in the constuctor segment...
大家注意到,通过static修饰的代码块在构造函数之前就执行了,实际上静态代码块是在程序加载(load)的时候执行的,而构造函数是在运行的时候执行的。
静态代码块只加载一次,看以下实例:
public class StaticDemo {
static {
System.out.println(in the static segment...);
}
public StaticDemo(){
System.out.println(in the constuctor segment...);
}
public static void main(String[] args) {
StaticDemo sd0 = ne
您可能关注的文档
最近下载
- 民法总论课件.ppt VIP
- 低空经济与低空旅游建设方案.pdf VIP
- 《DLT 2934—2025垃圾发电厂飞灰低温处理技术规范》专题研究报告.pptx VIP
- 大气TSP、PM10监测.ppt VIP
- 公用工程车间调试车总结110116.doc VIP
- 畜牧微生物学教学课件电子教案全套课件.pptx VIP
- 2025年移动图书馆第三届知识竞答挑战赛题库及答案(第五关).docx VIP
- 2026年党支部班子在对照加强理论武装、做好群众工作、执行上级组织决定、严格组织生活等“6个对照方面”检查材料2份稿.docx VIP
- 降低患者胃肠减压管非计划拔管率品管圈.pdf
- 业绩完成情况专项审计报告.docx VIP
原创力文档

文档评论(0)