Zum Inhalt springen

Problem beim Java - Aufgabe


Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich habe folgende Fragestellung in dem Fach Programmieren bekommen und kann diese leider nicht beantworten. Könnt ihr mir vielleicht weiterhelfen? Das hier ist die Fragestellung:

Die Klasse Testklasse arbeitet mit den beiden Klassen Student und FalscheMatrikel-nummerException. Sie wird in der vorliegenden Form nicht erfolgreich kompiliert.

Zur korrekten Kompilierung gibt es zwei Varianten. Eine Variante benötigt eine Änderung in der Klasse Testklasse, die andere Variante benötigt eine Änderung der Klasse Fal-scheMatrikelnummerException.

Bitte geben Sie beide (einzelnen) Änderungsmöglichkeiten mit Begründung an.


public class Testklasse{

public void methode(int nummer) {

student s;

try {

s =  new Student(nummer);

}

		catch (FalscheMatrikelnummerException fme) {

System.out.println(fme);

throw fme;

}

}

}                                                       


public class FalscheMatrikelnummerException extends Exception {

	public String toString() {

	return “Matrikelnummer nicht korrekt!â€;

}

}                                                                                 


public class Student {

	private int matrikelnummer;

	public Student (int matrikelnummer);


throw FalscheMatrikelnummerException {

	if (matrikelnummer > 0) {

	this.matrikelnummer = matrikelnummer;

}

else {

	throw new FalscheMatrikelnummerException();

}

}

}       

Es wäre nett, wenn mir jemand helfen könnte. Es kann sein, dass ich vielleicht ein Rechtschreibfehler reingebaut habe, aber ich hoffe, dass es vom Verständnis her klar ist. :(

Viele Grüße

D.Christ

Geschrieben

So... anscheinend ist dort wohl irgendwie der Wurm drin. Ich werde morgen meinen Lehrer nochmal fragen. Wahrscheinlich habe ich es falsch abgeschrieben.

ABer nochmal zu einer funktionierenden Aufgabe. Aus welchem Grund, wird das Programm in der Reihenfolge aufgeführt? Ich habe das mal in die Kommentare geschrieben. Das Static initializer als erstes ausgeführt werden, verstehe ich ja noch, aber warum dann zuerst 2. ?? Ich brauche eine gute Begründung. :)


public class Aufgabe04 {

  {

  System.out.format("1");   //2 . ...

  }


  static {

  System.out.format(",");  //1 . static initializer wird bei erzeugung als erstes ausgeführt

  }


  public Aufgabe04() {

    System.out.format("0");  // 3. 

  }


  public static void main (String [] args) {


     System.out.format("test")    ;

     Aufgabe04 I = new Aufgabe04();

  }

}

Viele Grüße

Geschrieben

was ja auch logisch ist.

beim ersten aufruf der ersten statischen Methode (in diesem Fall die "main") werden vorher die statischen Variablen initialisiert bzw die statischen Konstruktoren aufgerufen. Im Beispiel also

static {

  System.out.format(",");  //1 . static initializer wird bei erzeugung als erstes ausgeführt

  }
Dann wird der eigentliche Aufruf ausgeführt
public static void main (String [] args) {


     System.out.format("test")    ;

     Aufgabe04 I = new Aufgabe04();

  }
und dann die ganzen Aufrufe aus der Methode selbst, also
{

  System.out.format("1");   //2 . ...

  } 

und
  public Aufgabe04() {

    System.out.format("0");  // 3. 

  }

Anders würde es aussehen, wenn die main-Methode zum Beispiel in einer anderen Klasse wäre. Beim Aufruf der Main wird dann noch nicht auf die Klasse "Aufgabe04" zugegriffen und damit auch nicht auf deren statische Member

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...