2017-02-15 3 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

Этот код не даст вам никакого вывода. Вы не называете какие-либо методы, если нет «основной», которую вы не разместили. – khelwood

+0

'join()' должен вызываться после фактической установки значений, которые в вашем случае, скорее всего, не будут выполнены. – vegaasen

ответ

1

В DrJava вам нужно вызвать методы в следующем порядке:

  • Здравствуйте d = новый привет();
  • d.hello();
  • d.world();
  • d.join();
  • d.helloWorld();

или изменить функцию HelloWorld на:

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

Струны а и б пока не установлено (потому что вы установите их в 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

Смежные вопросы