这段java代码的运行原理。

public class chuandi_2 {
int x;
public static void main(String [] agev)
{
chuandi_2 obj1 = new chuandi_2();
obj1.x=5;
change(obj1);
System.out.println(obj1.x);
}
public static void change(chuandi_2 obj){
obj.x=3;
System.out.println(obj.x);}
}
运行步骤

public class chuandi_2 {
int x;//第一步:. chuandi_2 声明了变脸int x,然后进main函数调用
public static void main(String [] agev)
{
chuandi_2 obj1 = new chuandi_2();//第二步:.new obj1
obj1.x=5; //第三步:obj.x赋值为5
change(obj1);//第四步:调用change方法,转到下面的change方法
System.out.println(obj1.x);//第八步:这时也为x=3
}
public static void change(chuandi_2 obj){//第五步:.接着上面第四步执行这change方法
obj.x=3;/*第六步:这个obj就是你传进来的参数obj1.此时原本为5被这个复制语句覆盖了,所以此时x=3;*/
System.out.println(obj.x);}/*第七步:输出x。这时为3.执行完这步返回主调函数main()的转移处*/
}//如果你不明白的话hi我。给分了兄弟~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-07
public class chuandi_2 {
int x;
public static void main(String [] agev)
{
chuandi_2 obj1 = new chuandi_2(); // 实例化对象
obj1.x=5; // 把属性值改为5
change(obj1); // 调用方法,把对象的obj1引用传给方法
System.out.println(obj1.x);
}
public static void change(chuandi_2 obj){
obj.x=3; // 把obj指向对象的属性x的值改为3,此时obj1和obj都指向同一个对象,所以obj1的属性值也是3
System.out.println(obj.x);}
}
第2个回答  2011-05-09
public class chuandi_2 {
int x; //2 x=0
public static void main(String [] agev)
{
chuandi_2 obj1 = new chuandi_2();//1
obj1.x=5; //3
change(obj1);//4
System.out.println(obj1.x);//7
}
public static void change(chuandi_2 obj){
obj.x=3;//5
System.out.println(obj.x);}//6
}
第3个回答  2011-05-07
public class chuandi_2 {
int x;
public static void main(String [] agev)
{
chuandi_2 obj1 = new chuandi_2();//1
obj1.x=5; //2
change(obj1);//3
System.out.println(obj1.x);//6
}
public static void change(chuandi_2 obj){
obj.x=3;//4
System.out.println(obj.x);}//5
}
执行步骤应该是我标记的那样!如果不明白可以运行我下面的代码你就可以清楚的知道啦!
public class chuandi_2 {
int x;
public static void main(String [] agev)
{
System.out.println("*");
chuandi_2 obj1 = new chuandi_2();//1
System.out.println("**");
obj1.x=5; //2
change(obj1);//3
System.out.println("*****");
System.out.println(obj1.x);//6
}
public static void change(chuandi_2 obj){
System.out.println("***");
obj.x=3;//4
System.out.println("****");
System.out.println(obj.x);}//5
}
有不明白的再问 如果觉得好 别忘记给个好评 呵呵
第4个回答  2011-05-09
import java.io.*;
public class test
{
public static void sxh()
{
int a,b,c;
for(int i=100;i<1000;i++)
{
a=i/100;
b=(i-a*100)/10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
System.out.println("找到水仙花数:"+i);
}
}
public static boolean isPrime(int x)
{
int k=(int)Math.sqrt(x);
boolean flg = false;
for(int j=2;j<=k;j++)
{
if(j==k) {
flg = true;
break;
}
}
return flg;
}
public static int getInputData() throws IOException
{
String s;
System.in.read();
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
s=keyin.readLine();
int n=Integer.parseInt(s);
return n;
}
public static void isRn(int y)
{
if((y%4==0&&y%100!=0)||(y%400==0))
System.out.println(y+"年是闰年!");
else
System.out.println(y+"年不是闰年!");
}
public static char Menul() throws IOException
{
System.out.println("水仙花数---------------------1");
System.out.println("两数之间的所有素数-----------2");
System.out.println("打印上三角形-----------------3");
System.out.println("数字金字塔-------------------4");
System.out.println("判断闰年---------------------5");
System.out.println("请输入你的选择:");
char s=(char)(System.in.read());
return s;
}
public static void main(String args[]) throws IOException
{
char s=Menul();
switch(s)
{
case '1':
sxh();
break;
case '2':
int a,b;
System.out.print("请输入第一个数:");
System.in.read();
a=getInputData();
System.out.print("请输入第二个数:");
System.in.read();
b=getInputData();
System.out.println("a="+a+" b="+b);
if(a>b)
{int t=a;
a=b;
b=t;
}
for(int i=a;i<=b;i++)
{
if(isPrime(i))
System.out.print(" "+i);
}
break;
case '3':
int col;
System.out.print("请输入上三角形的行数:");
System.in.read();
col=getInputData();
for(int i=0;i<col;i++)
{
for(int j=0;j<col-i;j++)
System.out.print(" ");
for(int k=0;k<2*i-1;k++);
System.out.print("*");
System.out.println();
}
break;
case '4':
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9-i;j++)
System.out.print(" ");
for(int k=1;k<+1;k++)
System.out.print(k+" ");
for(int m=i;m>0;m--)
System.out.print(m+" ");
System.out.println();
}
break;
case '5':
System.out.print("请输入一个年份:");
System.in.read();
int y=getInputData();
isRn(y);
break;
}
}
}
括号位置不对,不匹配,修了一下,还有些逻辑错误,就要你自己思考了
第5个回答  2011-05-07
1.main方法里的---chuandi_2 obj1 = new chuandi_2();
2.main方法里的---obj1.x=5;
3.main方法里的---change(obj1);
4.change方法里的---obj.x=3;
5.change方法里的---System.out.println(obj.x);
6.main方法里的---System.out.println(obj1.x);

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网