2017-02-15 53 views
-5

我剛開始學習java並編寫了一個非常糟糕的代碼。我很肯定會有更好的方法來編寫代碼。任何人都可以解釋我爲什麼這個代碼給我的輸出: 「nullnull」我只想連接java中的兩個字符串

public class Hello { 

    public String a; 
    public String b; 
    public String c; 

    public Hello() { 
     c = ""; 
    } 

    public String helloWorld() { 
     return c; 
    } 

    public String hello() { 
     a = "Hello"; 
     return a; 
    } 

    public String world() { 
     b = "World"; 
     return b; 
    } 

    public void join() { 
     c = a + b; 
    } 
} 
+4

看起來你叫調用其他方法之前加入方法。向我們顯示完整代碼 –

+0

此代碼根本不會給你任何輸出。你沒有調用任何方法,除非有一個你沒有發佈的'main'。 – khelwood

+0

'join()'必須在實際設置值後調用,在你的情況下,最有可能不會完成。 – vegaasen

回答

1

在DrJava你需要調用以下順序的方法:

  • 你好d =新的Hello();
  • d.hello();
  • d.world();
  • d.join();
  • d.helloWorld();

或修改了HelloWorld功能:

public String helloWorld() { 
    hello(); 
    world(); 
    join(); 
    return c; 
} 

A和B字符串目前尚未確定(因爲你設置他們hello()world()),因此,當你調用join(),他們仍然是一個空值。

+0

感謝隊友,這只是沒有改變我的代碼工作。 – Reboot

+0

這就是在同一個類中調用類實例的完美例子。你的回答幫助我理解了這個概念。乾杯! – Reboot

1

這是一個簡單的解決方案

package com.fred.code; 

public class concat { 

    public static void main(String[] args) { 
     String a = "hello"; 
     String b = "world"; 
     System.out.println(a + b); 
    } 

} 
+0

感謝您的回答,我只想探索班級內班級的實例。 – Reboot