public class Three3_3
{
static int x1 = 4 ;
int x2 = 5 ;
public static void main(String args[])
{
Three3_3 obj1 = new Three3_3() ;
Three3_3 obj2 = new Three3_3() ;
obj1.x1 = obj1.x1 + 2 ;
obj1.x2 = obj1.x2 + 4 ;
obj2.x1 = obj2.x1 + 1 ;
obj2.x2 = obj2.x2 + 6 ;
System.out.println("obj.x1 = " + obj1.x1) ;
System.out.println("obj2.x2 =" + obj1.x2) ;
System.out.println("obj2.x2 =" + obj2.x2) ;
System.out.println("Three3_3.x1 =" + Three3_3.x1) ;
}
}运行的结果怎么是:
obj.x1 = 7
obj2.x2 =9
obj2.x2 =11
Three3_3.x1 =7怎么不是这样的呢?
obj.x1 = 2
obj2.x2 =9
obj2.x2 =11
Three3_3.x1 =7哪位帮解释一下!!!!
{
static int x1 = 4 ;
int x2 = 5 ;
public static void main(String args[])
{
Three3_3 obj1 = new Three3_3() ;
Three3_3 obj2 = new Three3_3() ;
obj1.x1 = obj1.x1 + 2 ;
obj1.x2 = obj1.x2 + 4 ;
obj2.x1 = obj2.x1 + 1 ;
obj2.x2 = obj2.x2 + 6 ;
System.out.println("obj.x1 = " + obj1.x1) ;
System.out.println("obj2.x2 =" + obj1.x2) ;
System.out.println("obj2.x2 =" + obj2.x2) ;
System.out.println("Three3_3.x1 =" + Three3_3.x1) ;
}
}运行的结果怎么是:
obj.x1 = 7
obj2.x2 =9
obj2.x2 =11
Three3_3.x1 =7怎么不是这样的呢?
obj.x1 = 2
obj2.x2 =9
obj2.x2 =11
Three3_3.x1 =7哪位帮解释一下!!!!
解决方案 »
- java的FMJ框架应该如何使用呢?
- 怎么编写一个简单的方法,实现两个数交换?
- 换个角度再再区分一下String str1 = "abc"和String str2 = new String("abc");
- 新人求助
- 谁能帮我解释一下这段代码中的疑惑,有关引用类型的
- 为何无法用ResultSet更新数据库记录?
- ???(初学者问题)高手高手高高手快进,在先等
- 各位大虾,谁知道怎么通过jdbc调用sqlserver2000的存储过程
- applet如何让别人的机子能看呢?
- 哪里可以载到jbuilder5.他与ibm 的vage的优缺点是什么呢?谢谢。
- 最简单的问题
- 为什么下面的程序还会有 Syntax error on token ":", * expected
int x ;
public Three3_32(int x1)
{
x = x1 ;
}
public static void main(String args[])
{
Three3_32 m1 = new Three3_32(4) ;
Three3_32 m2 = new Three3_32(4) ;
Three3_32 m3 = m2 ;
m3.x = 6 ;
System.out.println("m1 = m2 is" + (m1 == m2)) ;
System.out.println("m2 = m3 is" + (m2 == m3)) ;
System.out.println("m1.x == m2.x is" + (m1.x == m2.x)) ;
}运行结果为:m1 = m2 isfalse
m2 = m3 istrue
m1.x == m2.x isfalse
理由???
{
static int x = 5 ;
static {x += 10 ;}
public static void main(String args[])
{
System.out.println("x = " + x);
}
static { x = x-5 ;}
}运行结果是 : 10 ;
有点模糊!!
obj1.x1 = obj1.x1 + 2 ;//obj1.x1==obj2.x1=4+2=6
obj1.x2 = obj1.x2 + 4 ;//obj1.x2=5+4=9
obj2.x1 = obj2.x1 + 1 ;//obj2.x1=6+1=7,Three3_3.x1=7
obj2.x2 = obj2.x2 + 6 ;//obj2.x2=5+6=11
m1和m2是2个不同的Three3_32对象m1 == m2为f
m2的引用副给m3,m3也指向m2,m2 == m3 为T
由于m2和m3指向同一个对象,m3.x = 6改变了m2.x的值m1.x == m2.x为F
3、初始化顺序
x=5,x+=10->x=15,x=x-5->x=10
47页有对你这个问题介绍
在附录A有解释.
当一个陷阱...
首地址不同