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 String
s gleich sind, wird das Ergebnis das gleiche sein.
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"); } }
Muss der Zielstring, in diesem Programm, exakt mit dem String im TelefonBuch übereinstimmen?