2016-07-15 20 views
-1

Tutor zu spezifizieren hat uns gebeten,wie ein Verfahren zu schaffen nehmen String-Parameter den Namen sth

wie eine neue Methode addAlien genannt zu schaffen, die einen String Parameter, um den Namen des Ausländers angeben nimmt, und erstellen Sie eine neue Alien-Objekt in der Methode und fügen Sie es dann der ArrayList hinzu.

ich gerade geschrieben:

public void addAlien(String name)  
{ 
    Alien name = new Alien() 
} 

Antwort

2

Ich hoffe, Sie suchen:

ArrayList<Alien> list = new ArrayList<>(); 
public void addAlien(String name) { 
    list.add(new Alien(name)); 
} 
1

In Ihrem addAlien Verfahren wird der Eingabeparameter an Identifier 'name' gebunden, wie Sie erklärt:

Wenn der Benutzer die Zeichenfolge an die Methode übergibt, kann die Zeichenfolge mit dem Bezeichner 'name' und fu bezeichnet werden Weiterbenutzung für andere Zwecke. Aber direkt danach haben Sie eine Variable vom Typ Alien mit dem gleichen Bezeichner (nämlich 'name') erstellt. Diese Verwirrung sollte ausgeräumt werden, bevor man sich der weiteren Entwicklung zuwendet.

so statt

Alien name = new Alien() 

Sie

Alien newlyCreatedAlien = new Alien() 

Hinweis tun sollte es syntaktisch legal ist der Code, den Sie geschrieben zu kompilieren, ist es ein Konzept, "Shadowing" genannt. Lassen Sie mich wissen, wenn Sie Schwierigkeiten haben, verwandtes Material zu verstehen oder zu finden.

Schließlich sollte die vom Methodenbenutzer angegebene Zeichenfolge (jetzt gespeichert und mit dem Bezeichner 'name' abrufbar) richtig verwendet werden! In diesem Fall erstellen (konstruieren) wir ein neues Alien-Objekt. Normalerweise rufen wir den Konstruktor einer Klasse auf.

new Alien(someParameterPassedToTheConstructor) 

Die in 'name' gespeicherten Informationen sollten daher über den Parameter constructor übergeben werden, um ein bestimmtes Alien zu erstellen.

new Alien(name) 

wäre die triviale Lösung für die Notwendigkeit.

Hinweis in der von DhiwaTdG zur Verfügung gestellten Lösung, das neu erstellte Alien wird nicht mit irgendeinem Identifikator gespeichert (es wird erstellt und dann direkt zur Liste hinzugefügt). Es ist vollkommen in Ordnung, da diese Methode keine weiteren Operationen an diesem bestimmten Alien durchführen muss, um sie dann in die Liste aufzunehmen. Es ist die Liste, nach der wir suchen, nicht das Alien (zumindest in dieser Methode).

Hoffe, das würde Ihnen helfen, einige Verwirrungen zu klären.