看板java
标 题Re: [问题] 初学者的几点小疑问
发信站KKCITY (Sun Jan 21 23:23:51 2007)
转信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.chu!Leo.mi.chu!zoonews.ee.nt
※ 引述《[email protected] (war3rd)》之铭言:
> 以下这二支小程式....
> 程式一:
> public static void main (String[] args){
> Integer n1 = new Integer(47);
> Integer n2 = new Integer(47);
> System.out.println(n1==n2);
> Integer i1 = 47;
> Integer i2 = 47;
> System.out.println(i1==i2);
> Integer p1 = 147;
> Integer p2 = 147;
> System.out.println(p1==p2);
> }
> }
> 因为小弟刚接触java(自修) 如果觉得问题太蠢还请见谅
> 问题1:为何n1==n2(结果:false)而i1==i2(结果:true) 他们的值不是都相等吗?
> 还是Integer oo = new Integer (xx) 与 Integer oo = xx 二种方式有哪不同吗?
> 问题2: 那又为啥同样是 Integer oo = xx 的方式
> i1==i2(ture) 而p1==p2(false) 这又是为啥?我只不过数字修正了一下
程式二:
class Letter {
char c;
}
public class test{
static void f(Letter y) { <---接收引数把其代入y物件
y.c='Z'; <---用y物件(此时y物件为Letter类别下的东西),故又可指定c的
} 值
public static void main (String[] args){ <---程式从这里开始执行
Letter x= new Letter(); <---宣告了一个Letter类别的物件x
x.c= 'a'; <--用x物件来指定Letter类别的实体变数c的初值为a
System.out.println("1:x.c: "+x.c); <---第一次输出c故其值为a
f(x); <---呼叫f方法,引数为x物件,请看f方法的注解
System.out.println("2:x.c: "+x.c); <--第2次输出c的值,已因呼叫方法而
} 变动为Z
}
> 问题3: 为何第二次的输出 x.c的字元是Z 而不是a 呢?
> ps: 如果有有违反板规请告知 我会自d的(因为不知算不算是作业文^^u)
--
┌─────◆KKCITY◆─────┐ KKBOX◤歌名╱歌手╱歌词╱专辑◢搜寻
│ bbs.kkcity.com.tw │ ★ http://www.kkbox.com.tw ★
└──《From:220.138.53.44
》──┘ 超过80家唱片公司合法授权 音乐尽情下载
--