黑马程序员技术交流社区

标题: 对象.(点)不出静态字段?为什么是1。1。2? [打印本页]

作者: guobin_lu    时间: 2013-3-31 17:16
标题: 对象.(点)不出静态字段?为什么是1。1。2?
  1. public class TestClass1
  2.     {
  3.         public static int Num1;  //默认有隐式的静态构造函数
  4.         public int Num2;
  5.         public TestClass1()
  6.         {
  7.             Num1++;
  8.             Num2++;
  9.         }
  10. }
  11. 执行
  12.         TestClass1 t1 = new TestClass1();
  13.     TestClass1 t2 = new TestClass1();

复制代码
此时t1.Num2、 t2.Num2、 TestClass1.Num1 的值分别为?

作者: DWC_5101    时间: 2013-3-31 17:57
静态字段,只有类可以访问,对象是点不出来的。

t1.Num2 :在执行构造函数时,有++操作,值为 1;
t2.Num2 :同上;
TestClass1.Num1 :这是静态变量,属于TestClass1类,与对象无关,所以两次new对象时,都会修改值,就是2了。
作者: J_hom    时间: 2013-3-31 18:17
本帖最后由 J_hom 于 2013-3-31 18:19 编辑

静态变量应该是 类名称和对象都点的出来吧,而静态方法只能用类名称点方法吧
作者: 郑丹丹1990    时间: 2013-3-31 21:03
我的理解:
Static静态变量的问题。可以查下静态变量和普通常量的区别。
静态常量分配内存的原则。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2