当前位置: 技术问答>java相关
帮忙解释下段代码!
来源: 互联网 发布时间:2015-08-28
本文导语: class Letter{ char c; } public class PassObject{ static void f(Letter y){ y.c='z'; } public static void main(String[] args){ Letter x=new Letter(); x.c='a'; System.out.println("x.c="+x.c); f(x); ...
class Letter{
char c;
}
public class PassObject{
static void f(Letter y){
y.c='z';
}
public static void main(String[] args){
Letter x=new Letter();
x.c='a';
System.out.println("x.c="+x.c);
f(x);
System.out.println("x.c="+x.c);
}
}
我是初学,请讲详细点 OK?
char c;
}
public class PassObject{
static void f(Letter y){
y.c='z';
}
public static void main(String[] args){
Letter x=new Letter();
x.c='a';
System.out.println("x.c="+x.c);
f(x);
System.out.println("x.c="+x.c);
}
}
我是初学,请讲详细点 OK?
|
从public static void main(String[] args){处开始:
Letter x=new Letter();
初始化一个Letter对象x,也就是x是一个Letter类型的句柄
x.c='a';
给这个Letter对象x的一个字符变量c赋值为'a'
System.out.println("x.c="+x.c);
输出x的字符变量c
f(x);
调用PassObject类的f()方法,因为它申明是静态的,所以不用初始化PassObject类,直接调用即可。由于f(Letter y)方法是将Letter类型的变量参数y的值y.c='z';从新赋值为'z',所以执行f(x);的结果就是将Letter类型的参数x的字符变量c从新赋值为'z',也就是说x.c现在为'z'
System.out.println("x.c="+x.c);
输出x的c变量值
Letter x=new Letter();
初始化一个Letter对象x,也就是x是一个Letter类型的句柄
x.c='a';
给这个Letter对象x的一个字符变量c赋值为'a'
System.out.println("x.c="+x.c);
输出x的字符变量c
f(x);
调用PassObject类的f()方法,因为它申明是静态的,所以不用初始化PassObject类,直接调用即可。由于f(Letter y)方法是将Letter类型的变量参数y的值y.c='z';从新赋值为'z',所以执行f(x);的结果就是将Letter类型的参数x的字符变量c从新赋值为'z',也就是说x.c现在为'z'
System.out.println("x.c="+x.c);
输出x的c变量值