Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

Nein, kann ich leider nicht sagen

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

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

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.