2015年2月18日 星期三

[Java]好題目(2)

最近在某網站上看到一個Java題目,覺得挺有意思,就轉載過來紀錄在這裡。


網站的URL

http://www.codelect.net/InterviewQuestions/Java-Junior-Level-Test

請問以下程式碼輸出為何 ?

1. Basketball

2. Football

3. Baseball

4.這段程式碼無法編譯
 
public class Product {

    private String name;
    
    public static void main(String[] args) {
        Product a,b,c;
        a=b=c=new Product();
        a.setName("Basketball");
        b.setName("Football");
        c.setName("Baseball");        
        System.out.println(b.getName());     
    }
    
    public String getName()
    {
        return name;
    }
    
    public void setName(String name)
    {
        this.name=name;
    }
    
}

以下是自己對這一題的看法:

(1)其實 a , b , c 在記憶體中的位置都是相同的 ,所以你無論是先做 a.setName或是

b.setName(),其實都是對同一個Product做setName()。



(2) b.getName()所輸出的結果為Baseball。因為最後一次做setName的內容為

Baseball。

沒有留言:

張貼留言