class bar{
int barnum = 28;
}
class foo
{
bar mybar = new bar();
void change(bar mybar)
{
mybar.barnum = 99;
System.out,println(barnum);
mybar = new bar();
mybar.barnum = 420;
System.out,println(barnum);
}
public static void main(String s[]){
foo f = new foo();
System.out,println(f.mybar.barnum);
change(f.mybar);
System.out,println(f.mybar.barnum);
}
}
我是个新手 希望高手能解释清楚一点 谢谢
int barnum = 28;
}
class foo
{
bar mybar = new bar();
void change(bar mybar)
{
mybar.barnum = 99;
System.out,println(barnum);
mybar = new bar();
mybar.barnum = 420;
System.out,println(barnum);
}
public static void main(String s[]){
foo f = new foo();
System.out,println(f.mybar.barnum);
change(f.mybar);
System.out,println(f.mybar.barnum);
}
}
我是个新手 希望高手能解释清楚一点 谢谢
解决方案 »
- 关于时间格式转换
- hashmap中equals() 和hashcode(),请教
- 多对对关系怎么写sql语句
- java 插入 mysql blob 对象时 语法错误
- 非web的java代码,能实现网站登录,并取得session结合内部链接返回页面信息么?
- 在浏览器上的APPLET 程序,出现如下错误。请问如何处理?
- 急,我想对JTextField输入的信息进行校验,输入的只能是EMAIL格式的,如****@sina.com.cn
- panel面板中的元素在dialog窗口中不能显示,求助~~~~
- 请问Attribute和Property是否都翻译为属性?
- 在JBlider5里,我设置了断点,为什么不能跟踪?立刻给分
- 算法问题,进来有分
- 求解
第一个打印f.mybar.barnum的值
change方法中,第一次修改了f.mybar.barnum的值
第二次打印99
第二次又重新创建了一个bar,但是是局部变量,出了这个方法就无效了,所以
第二次打印420
第三次打印时用的是f.mybar.barnum第一次修改的值,99.
int barnum = 28;
}
class foo
{
bar mybar = new bar();
static void change(bar mybar)
{
mybar.barnum = 99;
System.out.println(mybar.barnum);
mybar = new bar();
mybar.barnum = 420;
System.out.println(mybar.barnum);
}
public static void main(String s[]){
foo f = new foo();//生成foo对象,foo对象初始化bar对象,barnum=28
System.out.println(f.mybar.barnum); //输出28
change(f.mybar);//调用了chang(),注意,这里传递的是对mybar的引用,这个引用指向f.mybar
// mybar.barnum = 99;//设置barnum为99
//System.out.println(barnum);输出99
//mybar = new bar();//mybar指向一个新的bar对象,这个bar不是f.mybar, 而 不 是一个新的bar'对象,而barnum初始化为28,这个barnum是新的bar'的成员对象,而不是foo.mybar.barnum
//mybar.barnum = 420;//bar'.barnum设为420
// System.out.println(barnum);//输出420
System.out.println(f.mybar.barnum); //输出f.mubar.barnum,这个barnum与赋值为420的barnum不是同一个对象的barnum 输出99
}
}
输出:[code=Java]
28
99
420
99[/code]
class bar{
int barnum = 28;
}
class foo
{
bar mybar = new bar();
static void change(bar mybar)
{
mybar.barnum = 99;
System.out.println(mybar.barnum);
mybar = new bar();
mybar.barnum = 420;
System.out.println(mybar.barnum);
}
public static void main(String s[]){
foo f = new foo();//生成foo对象,foo对象初始化bar对象,barnum=28
System.out.println(f.mybar.barnum); //输出28
change(f.mybar);//调用了chang(),注意,这里传递的是对mybar的引用,这个引用指向f.mybar
// mybar.barnum = 99;//设置f.mybar.barnum为99
//System.out.println(barnum);输出99
//mybar = new bar();//mybar指向一个新的bar对象,这个bar不是f.mybar,
而 是一个新的bar'对象,而barnum初始化为28,
这个barnum是新的bar'的成员对象,而不是
foo.mybar.barnum
//mybar.barnum = 420;//bar'.barnum设为420
// System.out.println(barnum);//输出420
System.out.println(f.mybar.barnum); //输出f.mubar.barnum,这个barnum与赋值为420的barnum不是同一个对象的barnum 输出99
}
}
输出:28
99
420
99