D
Destiny1985
Gast
Also erstmal der Code, nachfolgend die Frage
und die Klasse Student
Ok...was ich nicht ganz verstehe ist folgendes: in der instanzmethode "setNummer" ist eine überpüfung eingebaut, die die übergebene nummer prüfen soll und im falle, das sie ungültig ist, die alte Nummer weiterhin beibehält. Das gabze ist ein Beispiel aus dem Buch, ich habe es aber vorher mal alleine geschrieben, der Übung halber...bei mir sah die Methode so aus
So funktioniert die Abfrage nicht, er setzte auch die neue Nummer wenn sie laut der Abfrage ungültig ist. Der Unterschied liegt ja nur darin, das einmal statt
das hier ist
und das statt
das hier ist
Ich verstehe nicht wo denn auf einmal das n herkommt ?? Das ist das erste mal das in dem Buch etwas nicht gut beschrieben ist. Alles heisst doch nummer, und auf einmal kommen die da mit int n...kann mir das jemand erklären bitte ? Hoffe ihr versteht das Problem
mfg
Code:
import java.io.*;
public class StudentenTest {
public static void main(String[] args) {
/** Erzeugen der Studentenobjekte studi1 und studi2 */
Student studi1 = new Student();
Student studi2 = new Student();
/** Zuweisung von Namen und Matrikelnummern an die Studentenobjekte */
studi1.setName("Peter Parker");
studi1.setNummer(eingabeNummer());
studi2.setName("Tiny Toon");
studi2.setNummer(77777);
/** Holen der Namen und Nummern der Studentenobjekte und Speicherung in Variablen */
String studentenName1 = studi1.getName();
int studentenNummer1 = studi1.getNummer();
String studentenName2 = studi2.getName();
int studentenNummer2 = studi2.getNummer();
/** Ausgabe von Name und Matrikelnummer der Studentenobjekte */
System.out.println("\nName des 1. Studenten: " + studentenName1);
System.out.println("Nummer des 1. Studenten: " + studentenNummer1);
System.out.println("\nName des 2. Studenten: " + studentenName2);
System.out.println("Nummer des 2. Studenten: " + studentenNummer2);
}
public static int eingabeNummer() {
BufferedReader read = new BufferedReader (new InputStreamReader(System.in));
String matNr = "";
int matrikelNummer = 0;
System.out.print("\nMatrikelnummer: ");
try
{
matNr = read.readLine();
matrikelNummer = Integer.parseInt(matNr);
}
catch (IOException e)
{
System.out.println("\n* SCHWERER AUSNAHMEFEHLER *");
}
catch (NumberFormatException e2)
{
System.out.print("\nSie muessen eine Zahl eingeben!");
}
return matrikelNummer;
}
}
und die Klasse Student
Code:
public class Student {
/** Der Name des Studenten */
private String name;
/** Die Matrikelnummer des Studenten */
private int nummer;
/** RÜckgabe des Studentenname als String */
public String getName() {
return this.name;
}
/** Namen des Studenten auf einen übergebenen Wert setzen */
public void setName(String name) {
this.name = name;
}
/** Rückgabe der Matrikelnummer des Studenten als Integer */
public int getNummer() {
return this.nummer;
}
/** Matrikelnummer des Studenten auf einen übergebenen Wert setzen */
public void setNummer(int n) {
int alteNummer = nummer;
nummer = n;
if (!validateNummer()) { // Neue Nummer ungültig
System.out.println("Die neue Nummer ist ungültig, Nummer wird zurückgesetzt");
nummer = alteNummer;
}
}
/** Überprüfung der Matrikelnummer auf ihre Gültigkeit */
public boolean validateNummer() {
return
(nummer >= 10000 && nummer <= 99999 && nummer % 2 != 0);
}
}
Ok...was ich nicht ganz verstehe ist folgendes: in der instanzmethode "setNummer" ist eine überpüfung eingebaut, die die übergebene nummer prüfen soll und im falle, das sie ungültig ist, die alte Nummer weiterhin beibehält. Das gabze ist ein Beispiel aus dem Buch, ich habe es aber vorher mal alleine geschrieben, der Übung halber...bei mir sah die Methode so aus
Code:
/** Matrikelnummer des Studenten auf einen übergebenen Wert setzen */
public void setNummer(int nummer) {
int alteNummer = nummer;
this.nummer = nummer;
if (!validateNummer()) { // Neue Nummer ungültig
System.out.println("Die neue Nummer ist ungültig, Nummer wird zurückgesetzt");
nummer = alteNummer;
}
}
So funktioniert die Abfrage nicht, er setzte auch die neue Nummer wenn sie laut der Abfrage ungültig ist. Der Unterschied liegt ja nur darin, das einmal statt
Code:
public void setNummer(int nummer) {
Code:
public void setNummer(int n) {
und das statt
Code:
this.nummer = nummer;
Code:
nummer = n;
Ich verstehe nicht wo denn auf einmal das n herkommt ?? Das ist das erste mal das in dem Buch etwas nicht gut beschrieben ist. Alles heisst doch nummer, und auf einmal kommen die da mit int n...kann mir das jemand erklären bitte ? Hoffe ihr versteht das Problem
mfg