我先做一下自我介绍 毕竟这是我第一次发贴 首先很感谢大家来访问这个帖子 我是一名没有任何计算机基础的人 学JAVA无非就是为了金钱 之前干过很多与计算机没有任何关系的工作 但是对于在金钱上的欲望 那些收入真的是少之又少 在我打算换行业的时候 我选择了JAVA 或许有人会说 我选择JAVA是盲目的 但是不为其然 金钱上的欲望 无不促拥着我一定要在JAVA这个行业当中能够得到成功 我也从来都没有退缩过 刚开始我连变量是什么东西都很难理解 直到现在我能做到下面的代码 我连我自己都觉得我很了不起 我知道这些代码简直就是基础中的基础 但是对于我来讲这如同攀爬珠穆朗玛峰一样每一步都那么的艰难,并且坚信有一天我能够爬到它的最顶峰! 好了 废话就不多说了 浪费时间 ^^请问下面的代码的运行顺序是什么样的 我只知道运行顺序是从代码底部的main方法开始的 然后当创建对象的时候 就回到构造方法 剩下的顺序是什么样的我就不清楚了 望高手们指点。
再就是下面对象jsj 还有set,get方法 还有Person构造方法 以及类的属性 他们之间是按照怎样的步骤,运行机制来操作代码的? (我说的不是运行环境)class Person
{
 private String name;
 private int age;
 Person(String b,int c)
 {
  this.setName(b);
  this.setAge(c);
 }
 public void setName(String n)
 {
  name = n;
 }
 public void setAge(int a)
 {
  age = a;
 }
 public String getName()
 {
  return name;
 }
 public int getAge()
 {
  return age;
 }
 public String shout()
 {
  return "My Name : "+name+". My age : "+age;
 }
}
public class Test
{
 public static void main(String [] args)
 {
  Person jsj = new Person("Jo Sungju",25);
  System.out.print(jsj.shout()); }

解决方案 »

  1.   

    去看一下Thinking in Java关于类的初始化过程吧  一句话说不清楚因为不同的类构成不一样,也没法很全面地详细叙述。但是针对你这个类,在运行时,Person jsj = new Person("Jo Sungju",25); 会去调用Person类的Person(String b,int c) 构造方法,然后jsj.shout()回去输出这个人的return "My Name : "+name+". My age : "+age;也就是姓名和年龄。
      

  2.   

    首先很佩服你的勇气  转行和重生是一样的概念
    其次 你问的没什么呀  执行到构造方法就执行构造方法呀,构造方法调用getset方法把值填充到对象里
    然后调用shout方法呀我还以为你要问 初始化块 静态代码块  构造方法  静态方法的执行顺序呢
    这个才应该好好学习一下
      

  3.   

    1、套用火龙果今天的一句话:“这种帖子平均每周在JAVA版面出现一次”,你是新人,所以楼主以后发贴前先搜索一下旧的帖子,其实网上更快。
    2、如果是为了挣钱,迟早有一天你还会放弃,三百六十行,行行出状元,JAVA能赚钱,但是只是为了钱,你不会高兴的工作的。
      

  4.   

    class Person {
        private String name;
        private int age;    // A
        // Person 的构造方法产生对象
        Person(String b, int c) {
            this.setName(b);    // this 表示刚才产生的对象,同时调用该对象的 setName 方法
            this.setAge(c);     // 调用对象的 setAge 方法
        }    // 设置对象私有属性 name 的值
        public void setName(String n) {
            name = n;
        }    // 设置对象私有属性 age 的值
        public void setAge(int a) {
            age = a;
        }    // 获得对象的 name 值
        public String getName() {
            return name;
        }    // 获得对象的 age 值
        public int getAge() {
            return age;
        }    // 对象的 shout 方法,根据私有属性 name, age 输出一些东西
        public String shout() {
            return "My Name : " + name + ". My age : " + age;
        }
    }public class Test {
        public static void main(String[] args) {
            // 通过两个参数调用 Person 的构造方法,也就是 Person 注释 A 的那个方法
            // 这里的 jsj. 与 Person 类中的那个 this. 是相同的对象
            Person jsj = new Person("Jo Sungju", 25);
            // 调用 jsj 这个 Person 对象的 shout 方法
            System.out.print(jsj.shout());
        }
    }具体的执行流程是这样的:1:new Person
       通过 Person 的构造方法产生对 Person 对象2:("Jo Sungju", 25);
       对象产生后在构造方法内置设置 name 和 age 的值3:jsj.shout()
       调用 Person 对象的 shout 方法
       
      

  5.   

    在Person的构造方法里面,这里最好不要用this,直接用方法setName(b),setAge(c)就行
      

  6.   

    先main方法,然后再生成什么对象,对调用这个构造方法,不用的。就暂时不会生成。子类生成了对象,那父类的构造函数必须有一被调用。
      

  7.   

    看看张孝祥老师的java就业培训视频吧 个人感觉很不错  这些东西上面都有讲
      

  8.   

    学java要有耐心哦,买本书看看,推荐你看JAVA2.0系列,《thinking in java》是一部不可多得的好作品,但我个人认为他不适合初学者,因为他里面太多细节方面的问题了,而且那些细节多是你暂时用不到的,鄙人看《thinking in java》从头到尾看了遍,结果下来头晕的受不了,太咯利巴索了,还是从简单一点的书看看吧。
      

  9.   

    jvm 首先执行代码块 , 然后执行构造方法 ,最后再执行具体的方法。
      

  10.   

    呵呵,简单的方法就是一个方法中加个,System.printlen 
    看看打印结果,就明白顺序了、