public class JTesta
{
int n=1;
int m=3;
void JTesta()
{
n=2;
m=5;
}
public static void main(String[] args)
{
JTesta jt=new JTesta();
System.out.println("jt.n="+jt.n+"jt.m="+jt.m);
}
}
帮小弟看看这个题是怎么运行的,说说思路好吗?谢谢大家了。

解决方案 »

  1.   

    单步跟踪就行了.还有Java的程序肯定是从main开始的.
      

  2.   

    1, JTesta jt=new JTesta();
    2, void JTesta()
    {
    n=2;
    m=5;
    }
    3,System.out.println("jt.n="+jt.n+"jt.m="+jt.m);
      

  3.   

    首先:
    执行 main()
    创建 JTesta 实例 jt
    --->
      然后是初始化变量 
      声明int类型的 n 和 m 
      并且 n=0 m=0  --->
        然后对n和m进行赋值
        n=1 m=3      --->
          接着执行
          System.out.println("jt.n="+jt.n+"jt.m="+jt.m);        --->
            得到结果 n=1 m=3
          
    -------------------------------------------------------
    LZ一定是想问为什么结果不是 n=2 m=5 因为void JTesta()不是构造子
    如果楼主想要得到 n=2 m=5 那么只要在main()中加入jt.JTesta();就可以了
    或者把void JTeata() 改成 public JTesta()就可以
      

  4.   

    void JTesta()
    {
    n=2;
    m=5;
    }
    上面这个不是构造函数(构造函数是没有返回植滴..),如果该成public JTesta()...结果就会是 n=2,m=5~
      

  5.   

    谢谢兄弟们,明白了。其实我有两个例子,一个就是不带void的,只是想明白它是怎么一个执行流程,现在明白了,谢谢大家
      

  6.   

    首先执行main方法
    在main方法里创建一个JTesta调用JTesta类构造方法并初始化对象jt,
    再执行System.out.println();
      

  7.   

    注意!!
    void JTesta()
    {
    n=2;
    m=5;
    }
    这只是一般的方法,并不是构造方法
    你的代码构造方法是系统默认的即
    JTesta(){}
      

  8.   

    LZ一定是想问为什么结果不是 n=2 m=5 因为void JTesta()不是构造子
    如果楼主想要得到 n=2 m=5 那么只要在main()中加入jt.JTesta();就可以了
    或者把void JTeata() 改成 public JTesta()就可以
    ----------------------------------------------------------------
    意思是说只有public 声明过的void 才有可能是构造函数吗?
    哪本书有详细的说明啊?
      

  9.   

    还是qinqinxiatiao(WWW·坑你·NET) 说的好 呵呵
      

  10.   

    jayfantsy() ( ) 
    ----------------------------------------------------------------
    意思是说只有public 声明过的void 才有可能是构造函数吗?
    哪本书有详细的说明啊?
    ----------------------------------------------------------------
    public声明的构造子是系统默认的
    也可以使用 private  具体请参考 Singleton 模式  
     
      

  11.   

    这是最基础的了   建议你找点基础的先看起   以后自然就明白为什么是输出N=1 M=3。
      原因很简单  void JTesta()
    {
    n=2;
    m=5;
    }
    不是构造方法。象上面所说   它有个默认构造方法 public JTesta(){  } 它就是调用构造方法
    并不调用一般方法。