S
simon heise
Gast
ich soll via tastatur eingabe(buffered reader eclipse) 4 benutzerdaten über einen studenten in ein feld einlesen.
das ganze wird via get, set und read methoden realisiert.
später soll eine zusätzliche eingabe über tastatur verwendet werden um diesen wert mit den werten der verschiedenen studentenobjekte zu vergleichen. die eingelesenen werte sind Strings!!!
sollte es übereinstimmungen geben, dann muss der betroffene student ausgegeben werden, anderfalls soll ausgegeben werden dass dieser student nicht existiert.
hier mein code:
Klasse Person:
Klasse Student
wenn ich nun jedoch aus
mache gibt er mir selbst bei unterschiedlichen matrikelnummern beide studenten aus, was für mich indiz ist, dass er irgendwo ein problem beim vergleich der Strings hat.
das nächste problem ist, dass im fett geschriebenen teil eigentlich die toString methode der superklasse aufgerufen werden sollte. tut er aber nicht, aus testgründen hab ich halt einfach die toString methode der subklasse verändert. eigentlich sollte nur return matrikelnummer drin stehen(auskommentierter bereich
danke für eure hilfe, wenn ihr nicht durchblickt, dann sagt bescheid, dann schick ich den gesamten code
mfg simon
das ganze wird via get, set und read methoden realisiert.
später soll eine zusätzliche eingabe über tastatur verwendet werden um diesen wert mit den werten der verschiedenen studentenobjekte zu vergleichen. die eingelesenen werte sind Strings!!!
sollte es übereinstimmungen geben, dann muss der betroffene student ausgegeben werden, anderfalls soll ausgegeben werden dass dieser student nicht existiert.
hier mein code:
Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Aufgabe1{
private static boolean treffer;
private static String matVergleich;
public static String readVergleich(){
BufferedReader eingabe = new BufferedReader ( new InputStreamReader(System.in));
try {
matVergleich = eingabe.readLine();
}
catch(Exception e){
System.err.println("Error: " + e.getMessage());
}
return matVergleich;
}
public static void main(String[] args) {
Student[] feld1 = new Student[2];
for ( int i = 0; i < feld1.length; i++){
feld1[i] = new Student();
feld1[i].read();
}
readVergleich();
for (int i = 0; i < feld1.length; i++){
if (feld1[i].getMatrikelnummer() != matVergleich){
treffer = true;
}
else{
continue;
}
if (treffer){
System.out.println(feld1[i].toString());
}
}
if (treffer == false){
System.out.println("Es gibt keinen Studenten mit dieser Matrikelnummer !!!");
}
}
}
Klasse Person:
Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Person {
private String name;
private String vorname;
private String telefonnummer;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVorname() {
return vorname;
}
public void setVorname(String vorname) {
this.vorname = vorname;
}
public String getTelefonnummer() {
return telefonnummer;
}
public void setTelefonnummer(String telefonnummer) {
this.telefonnummer = telefonnummer;
}
public String toString(){
return ("Name: " + getName() + "\n" +
"Vorname: " + getVorname() + "\n" +
"Telefonnummer: " + getTelefonnummer());
}
public void read(){
BufferedReader eingabe = new BufferedReader ( new InputStreamReader(System.in));
try {
setName(eingabe.readLine());
setVorname(eingabe.readLine());
setTelefonnummer(eingabe.readLine());
}
catch(Exception e){
System.err.println("Error: " + e.getMessage());
}
}
}
Klasse Student
Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Student extends Person {
private String matrikelnummer;
public String getMatrikelnummer() {
return matrikelnummer;
}
public void setMatrikelnummer(String matrikelnummer) {
this.matrikelnummer = matrikelnummer;
}
HIER DIE MARKIERTE toString METHODE
public String toString(){
super.toString();
return ("Name: " + getName() + "\n" +
"Vorname: " + getVorname() + "\n" +
"Telefonnummer: " + getTelefonnummer() + "\n" +
"Matrikelnummer: " + getMatrikelnummer());
//return ("Matrikelnummer: " + getMatrikelnummer());
}
public void read(){
super.read();
BufferedReader eingabe = new BufferedReader ( new InputStreamReader(System.in));
try {
setMatrikelnummer(eingabe.readLine());
}
catch(Exception e){
System.err.println("Error: " + e.getMessage());
}
}
}
wenn ich nun jedoch aus
Code:
if (feld1[i].getMatrikelnummer() == matVergleich)
if (feld1[i].getMatrikelnummer()[b] != [/b]matVergleich)
mache gibt er mir selbst bei unterschiedlichen matrikelnummern beide studenten aus, was für mich indiz ist, dass er irgendwo ein problem beim vergleich der Strings hat.
das nächste problem ist, dass im fett geschriebenen teil eigentlich die toString methode der superklasse aufgerufen werden sollte. tut er aber nicht, aus testgründen hab ich halt einfach die toString methode der subklasse verändert. eigentlich sollte nur return matrikelnummer drin stehen(auskommentierter bereich
danke für eure hilfe, wenn ihr nicht durchblickt, dann sagt bescheid, dann schick ich den gesamten code
mfg simon