哪位朋友愿意帮我解释一下下面的JAVA代码

sungju 2009-10-22 03:24:24

我先做一下自我介绍 毕竟这是我第一次发贴 首先很感谢大家来访问这个帖子 我是一名没有任何计算机基础的人 学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());

}
}
...全文
254 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
RPNP_HUA 2009-10-23
  • 打赏
  • 举报
回复
恩,看书,多调试下就ok咯
zxjdai 2009-10-23
  • 打赏
  • 举报
回复
呵呵,简单的方法就是一个方法中加个,System.printlen
看看打印结果,就明白顺序了、
zjwpopstar 2009-10-23
  • 打赏
  • 举报
回复
jvm 首先执行代码块 , 然后执行构造方法 ,最后再执行具体的方法。
lilongnan2009 2009-10-23
  • 打赏
  • 举报
回复
学java要有耐心哦,买本书看看,推荐你看JAVA2.0系列,《thinking in java》是一部不可多得的好作品,但我个人认为他不适合初学者,因为他里面太多细节方面的问题了,而且那些细节多是你暂时用不到的,鄙人看《thinking in java》从头到尾看了遍,结果下来头晕的受不了,太咯利巴索了,还是从简单一点的书看看吧。
jciv002 2009-10-23
  • 打赏
  • 举报
回复
看看张孝祥老师的java就业培训视频吧

个人感觉很不错 这些东西上面都有讲
孤尽JavaSea 2009-10-22
  • 打赏
  • 举报
回复
先main方法,然后再生成什么对象,对调用这个构造方法,不用的。就暂时不会生成。子类生成了对象,那父类的构造函数必须有一被调用。
Firstwindow 2009-10-22
  • 打赏
  • 举报
回复
在Person的构造方法里面,这里最好不要用this,直接用方法setName(b),setAge(c)就行
弘石 2009-10-22
  • 打赏
  • 举报
回复
这种基础知识问题在网上也找不到答案
强烈建议买本讲语法的基础书学习
yangkaixin1226 2009-10-22
  • 打赏
  • 举报
回复
基本的问题!
  • 打赏
  • 举报
回复
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 方法

imasmallbird 2009-10-22
  • 打赏
  • 举报
回复
1、套用火龙果今天的一句话:“这种帖子平均每周在JAVA版面出现一次”,你是新人,所以楼主以后发贴前先搜索一下旧的帖子,其实网上更快。
2、如果是为了挣钱,迟早有一天你还会放弃,三百六十行,行行出状元,JAVA能赚钱,但是只是为了钱,你不会高兴的工作的。
yangkunyeah 2009-10-22
  • 打赏
  • 举报
回复
勇气可嘉
k2611112 2009-10-22
  • 打赏
  • 举报
回复
我来学习的。。。。。。。。。。。
liuluxyz 2009-10-22
  • 打赏
  • 举报
回复
我建议先买本基础的书,看一下。
边看书,边按照书上的例子编写代码学习!
静水s 2009-10-22
  • 打赏
  • 举报
回复
去看看java编程思想
zhuzeitou 2009-10-22
  • 打赏
  • 举报
回复
好无聊的金钱上的欲望………………咋什么都往这上扯………………

找本教材从头看起吧
chpublish1012 2009-10-22
  • 打赏
  • 举报
回复
首先很佩服你的勇气 转行和重生是一样的概念
其次 你问的没什么呀 执行到构造方法就执行构造方法呀,构造方法调用getset方法把值填充到对象里
然后调用shout方法呀

我还以为你要问 初始化块 静态代码块 构造方法 静态方法的执行顺序呢
这个才应该好好学习一下
justinavril 2009-10-22
  • 打赏
  • 举报
回复
去看一下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;也就是姓名和年龄。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧