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

Einen unbenannten Block in einer Java Klasse habe ich zwar in der Praxis noch nie gesehen, aber Deine kommentierte Reihenfolge ist falsch.

Wenn ich die Klasse ausführe, dann erhalte ich folgendes Ergebnis:

,test10

Peter

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...