📄 java中static用法简谈-java面向对象 - it电子教育门户 高端java培训.htm
字号:
<BR>15. prt("v1.c="+v1.c+"
v2.c="+v2.c); <BR>16. v1.inc();
<BR>17. prt("v1.c="+v1.c+"
v2.c="+v2.c); <BR>18. } <BR>19. }
<BR>结果如下:<BR>v1.c=0 v2.c=0<BR>v1.c=1
v2.c=1<BR>由此可以证明它们共享一块存储区。static变量有点类似于C中的全局变量的概念。值得探讨的是静态变量的初始化问题。我们修改上面的程序:
<BR>1. class Value{ <BR>2. static int c=0;
<BR>3. Value(){ <BR>4.
c=15; <BR>5. } <BR>6. Value(int i){
<BR>7. c=i; <BR>8. }
<BR>9. static void inc(){
<BR>10. c++; <BR>11. }
<BR>12. } <BR>13. class Count{ <BR>14.
public static void prt(String s){
<BR>15. System.out.println(s);
<BR>16. } <BR>17. Value
v=new Value(10); <BR>18. static Value
v1,v2; <BR>19. static{
<BR>20.
prt("v1.c="+v1.c+" v2.c="+v2.c);
<BR>21. v1=new Value(27);
<BR>22.
prt("v1.c="+v1.c+" v2.c="+v2.c);
<BR>23. v2=new Value(15);
<BR>24.
prt("v1.c="+v1.c+" v2.c="+v2.c);
<BR>25. }
<BR>26. <BR>27. public static void
main(String[] args){ <BR>28. Count
ct=new Count(); <BR>29.
prt("ct.c="+ct.v.c); <BR>30.
prt("v1.c="+v1.c+" v2.c="+v2.c);
<BR>31. v1.inc();
<BR>32. prt("v1.c="+v1.c+"
v2.c="+v2.c); <BR>33.
prt("ct.c="+ct.v.c); <BR>34. } <BR>35. }
</FONT></P>
<P><FONT face="Times New Roman">运行结果如下:<BR>v1.c=0
v2.c=0<BR>v1.c=27 v2.c=27<BR>v1.c=15
v2.c=15<BR>ct.c=10<BR>v1.c=10 v2.c=10<BR>v1.c=11
v2.c=11<BR>ct.c=11<BR>这个程序展示了静态初始化的各种特性。如果你初次接触Java,结果可能令你吃惊。可能会对static后加大括号感到困惑。首先要告诉你的是,static定义的变量会优先于任何其它非static变量,不论其出现的顺序如何。正如在程序中所表现的,虽然v出现在v1和v2的前面,但是结果却是v1和v2的初始化在v的前面。在static{后面跟着一段代码,这是用来进行显式的静态变量初始化,这段代码只会初始化一次,且在类被第一次装载时。如果你能读懂并理解这段代码,会帮助你对static关键字的认识。在涉及到继承的时候,会先初始化父类的static变量,然后是子类的,依次类推。非静态变量不是本文的主题,在此不做详细讨论,请参考Think
in
Java中的讲解。<BR>静态类<BR>通常一个普通类不允许声明为静态的,只有一个内部类才可以。这时这个声明为静态的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。如下代码所示:<BR>1. public
class StaticCls{ <BR>2. public static void
main(String[] args){ <BR>3.
OuterCls.InnerCls oi=new OuterCls.InnerCls();
<BR>4. } <BR>5. } <BR>6. class OuterCls{
<BR>7. public static class InnerCls{
<BR>8. InnerCls(){
<BR>9.
System.out.println("InnerCls");
<BR>10. } <BR>11. }
<BR>12. } </FONT></P>
<P><FONT
face="Times New Roman">输出结果会如你所料:<BR>InnerCls</FONT></P></DIV></SPAN></TD></TR>
<TR>
<TD width="71%"> </TD>
<TD width="29%">【 <A
href="http://www.mldn.cn/print.jtml?articleid=2320">打印</A> 】【
<A
href="http://www.mldn.cn/member/favlist.jtml?action=add&postid=2320">收藏</A>
】【 <A href="http://www.mldn.cn/email.jtml?articleid=2320"
target=_blank>推荐</A> 】 </TD></TR>
<TR>
<TD colSpan=2>
<TABLE cellSpacing=3 cellPadding=0 width="100%" align=center
bgColor=#ffffff border=0>
<TBODY>
<TR height=25>
<TD align=middle width="33%"><IMG height=95 alt=java视频教程
src="Java中static用法简谈-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/javavideo.gif"
width=642></TD></TR>
<TR>
<TD class=content-table vAlign=top align=middle>
<TABLE>
<TBODY>
<TR>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-8-21/article_view_2251.htm"
rel=external><IMG class=midImg alt=struts2.0入门视频
src="Java中static用法简谈-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/struts2.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=struts2.0入门视频
href="http://www.mldn.cn/articleview/2007-8-21/article_view_2251.htm"
rel=external>struts2.0入门视频</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-6-15/article_view_2141.htm"
rel=external><IMG class=midImg
alt=JAVAEE学习流程和学习方法
src="Java中static用法简谈-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/j2eejc.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=JAVAEE学习流程和学习方法
href="http://www.mldn.cn/articleview/2007-6-15/article_view_2141.htm"
rel=external>JAVAEE学习流程和学习方..</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-6-5/article_view_2091.htm"
rel=external><IMG class=midImg
alt=1-Java介绍及JDK配置
src="Java中static用法简谈-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/javase.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=1-Java介绍及JDK配置
href="http://www.mldn.cn/articleview/2007-6-5/article_view_2091.htm"
rel=external>1-Java介绍及JDK配置..</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-4-19/article_view_2012.htm"
rel=external><IMG class=midImg alt=Oracle中的多表连接
src="Java中static用法简谈-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/Oracle.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=Oracle中的多表连接
href="http://www.mldn.cn/articleview/2007-4-19/article_view_2012.htm"
rel=external>Oracle中的多表连接</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-4-11/article_view_1978.htm"
rel=external><IMG class=midImg
alt=Struts中logic标签的使用
src="Java中static用法简谈-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/struts.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=Struts中logic标签的使用
href="http://www.mldn.cn/articleview/2007-4-11/article_view_1978.htm"
rel=external>Struts中logic标签..</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD colSpan=2>
<TABLE cellSpacing=3 cellPadding=0 width="100%" align=center
bgColor=#ffffff border=0>
<TBODY>
<TR height=25>
<TD align=middle width="33%" bgColor=#aac4c4><FONT
color=#ffffff>相关文章</FONT></TD>
<TD align=middle width="33%" bgColor=#aac4c4><FONT
color=#ffffff>推荐文章</FONT></TD></TR>
<TR>
<TD class=content-table vAlign=top>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-7/article_view_2650.htm"
rel=external>垃圾收集器与Java程序的性能</A> <IMG
alt=24小时内新文章
src="Java中static用法简谈-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/new.gif"
align=absMiddle border=0></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[11.7]</SPAN></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-7/article_view_2652.htm"
rel=external>详细解析Java中抽象类和接口的..</A> <IMG
alt=24小时内新文章
src="Java中static用法简谈-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/new.gif"
align=absMiddle border=0></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[11.7]</SPAN></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-2/article_view_2624.htm"
rel=external>讲述java语言中内部类的研究</A></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[11.2]</SPAN></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-1/article_view_2618.htm"
rel=external>通过实例学习Java对象的构造过..</A></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[11.1]</SPAN></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-1/article_view_2619.htm"
rel=external>详细讲解This对象的使用方法</A></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[11.1]</SPAN></TD></TR></TBODY></TABLE></TD>
<TD class=content-table vAlign=top>
<TABLE>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -