zur vorherigen Seite  zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Ja. In dem ersten Ausdruck führt der String auf den targetName verweist seine equals() Methode aus. In dem zweiten Ausdruck führt der String auf den telefonbuch[j] verweist seine equals() Methode aus. Aber wenn die beiden Strings gleich sind, wird das Ergebnis das gleiche sein.


Vollständiges Programm

Hier ist das vollständige Programm. Es gibt hier eine Menge Details, und es ist leicht den Überblick zu verlieren. Was dagegen hilft, ist das Programm laufen zu lassen und damit zu experimentieren. Die Programmieraufgaben dieses Kapitels geben dazu ein paar Anregungen.

Wer Java von der Kommandozeile ausführt, kopiert sich den kompletten Code in eine Datei TelefonBuchTester.java und kompiliert sie mit javac. Wer eine IDE (wie NetBeans oder BlueJ) verwendet, erzeugt für jede Klasse eine eigene Datei.


class TelefonEintrag
{
  private String name;    // Name der Person
  private String telefon; // ihre Telefonnummer

  public TelefonEintrag( String name, String telefon )
  {
    this.name = name; this.telefon = telefon;
  }

  public String getName()  {return name;}
  public String getPhone() {return telefon;}
}

class TelefonBuch
{
  private TelefonEintrag[] telefonbuch;

  public TelefonBuch()    // Konstruktor
  {
    telefonbuch = new TelefonEintrag[ 5 ] ;
    telefonbuch[0] = new TelefonEintrag(
      "James Barclay", "(418)665-1223");
    telefonbuch[1] = new TelefonEintrag(
      "Grace Dunbar", "(860)399-3044");
    telefonbuch[2] = new TelefonEintrag(
      "Paul Kratides", "(815)439-9271");
    telefonbuch[3] = new TelefonEintrag(
      "Violet Smith", "(312)223-1937");
    telefonbuch[4] = new TelefonEintrag(
      "John Wood", "(913)883-2874");
  }

  TelefonEintrag suchen( String targetName )
  {
    for ( int j=0; j < telefonbuch.length; j++ )
    {
      if ( telefonbuch[ j ] != null && telefonbuch[ j ].getName().equals( targetName ) )
        return telefonbuch[ j ];
    }

    return null;
  }
}

public class TelefonBuchTester
{
  public static void main (String[] args)
  {
    TelefonBuch telebuch = new TelefonBuch();

    // suchen for "Violet Smith"
    TelefonEintrag eintrag =
      telebuch.suchen( "Violet Smith" );

    if ( eintrag != null )
      System.out.println( eintrag.getName() +
        ": " + eintrag.getPhone() );
    else
      System.out.println("Name nicht gefunden");

  }
}

FRAGE 15:

Muss der Zielstring, in diesem Programm, exakt mit dem String im TelefonBuch übereinstimmen?

zur vorherigen Seite  zum Inhaltsverzeichnis   zur nächsten Seite