2015-04-02 4 views
-1

Я пытаюсь понять, как правильно вызывать и выводить мои методы. Однако на выходе отображается только один вызов метода (последний). Как получить его для вывода всех вызовов метода, а не только последнего. Похоже, что все предыдущие вызовы метода становятся переопределенными, и сохраняется только последний. Я только начинаю с Java. Любая помощь будет оценена по достоинству.Только один вызов метода показан на выходе

Вот класс PartyDriver, где я делаю 5 вызовов метода. Только последний отображается в методе printParty.

import java.util.ArrayList; 

public class PartyDriver 
{ 

public static void main(String[] args) 

{ 


    Party party = new Party(3, "David Beckham"); 

    ArrayList<String> guest = new ArrayList<>(); 

    party.addGuest("Roberto Baggio"); 

    party.addGuest("Zinedine Zidane"); 

    party.addGuest("Roberto Baggio"); 

    party.addGuest("Johan Cruyff"); 

    party.addGuest("Diego Maradona"); 

    party.printParty(); 

} // end main 

}//End Party Driver 

Здесь пока партия класса со всеми моими методами:

import java.util.ArrayList; 

public class Party 
{ 


    // instance variables that will hold your data 
    // private indicates they belong to this class exclusively 


    private int maxGuests; 
    private String host; 
    private String guest; 



    //Constructor 
    public Party(int maxGuests, String host) 
    { 

    this.maxGuests = maxGuests; 
    this.host = host; 
    } 



    //getter 
    // define type of data to be returned 
    public String getHost() 
    { 
    return host; 
    } 



    //setter 
    // setters have type void b/c they return nothing 
    public void setHost(String host) 
    { 
    this.host = host; 
    } 


//************************************* 
//Method to add to guest list 
    public void addGuest(String guest) 
    { 

    this.guest = guest; 
    } 


//************************************* 
//Method to print party 
public void printParty() 
    { 
    System.out.println("Guest list for " + 
     this.host + "'s party is: \n\n" + 
     this.guest + ".\n"); 

    } // end Print Party method 


}//end class Party 

ответ

0

Нет методов, но PrintParty() напечатать что-нибудь, потому что вы не сказали никаких методов, но PrintParty() для печати ничего.

Один из способов вывода вывода на консоль - использовать System.out.println().

Я скорректировал каждый из ваших методов, чтобы напечатать что-то на экране. Я также добавил переменную экземпляра guests в ваш класс Party и сделал ваш метод addGuest(String guest) соответствующим образом модифицировать эту переменную экземпляра.

import java.util.ArrayList; 

public class Party 
{ 
    // instance variables that will hold your data 
    // private indicates they belong to this class exclusively 
    private int maxGuests; 
    private String host; 
    private ArrayList<String> guests; 

    //Constructor 
    public Party(int maxGuests, String host) 
    { 
     System.out.println("Initializing party with maxGuests: '" + maxGuests + "' and host: '" + host + "'"); 
     this.guests = new ArrayList<String>(); 
     this.maxGuests = maxGuests; 
     this.host = host; 
    } 

    //getter 
    // define type of data to be returned 
    public String getHost() 
    { 
     System.out.println("Setting host to: " + host); 
     return host; 
    } 

    //setter 
    // setters have type void b/c they return nothing 
    public void setHost(String host) 
    { 
     System.out.println("Setting host to: " + host); 
     this.host = host; 
    } 

    //************************************* 
    //Method to add to guest list 
    public void addGuest(String guest) 
    { 
     if (guests.size() < maxGuests) 
     { 
      System.out.println("Adding guest: " + guest); 
      this.guests.add(guest); 
     } 
     else 
     { 
      System.out.println("Guest list full"); 
     } 
    } 

    //************************************* 
    //Method to print party 
    public void printParty() 
    { 
     System.out.println("Guest list for " + 
     this.host + "'s party is: \n\n" + 
     this.guests + ".\n"); 
    } // end Print Party method 

    public static void main(String[] args) 
    { 

     Party party = new Party(3, "David Beckham"); 
     party.addGuest("Roberto Baggio"); 
     party.addGuest("Zinedine Zidane"); 
     party.addGuest("Roberto Baggio"); 
     party.addGuest("Johan Cruyff"); 
     party.addGuest("Diego Maradona"); 
     party.printParty(); 

    } // end main 

}//end class Party 
+0

Хорошо, я попробую это предложение, которое вы сделали. Но я говорил, что мой метод printParty должен возвращать больше, чем одно имя. Предположим, что нужно вернуть 3 имени. Он возвращает только фамилию «Диего Марадона». Я вызвал метод addGuest 5 раз. Но только одно имя («Диего Марадона»), похоже, было добавлено к Гостевому методу. Я не могу понять, почему другие имена не добавляются в список гостей, потому что они также являются частью метода printParty. Предполагается, что метод printParty будет печатать все имена в гостевом списке и печатать только одно имя. – Fryguy

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