OOP

Kann jemand rüberschauen und gucken, ob ich alles richtig gelöst habe. Hab kein BlueJ auf dem PC, deshalb kann ich es nicht selber testen.
Lg

a) Die Klasse Jagdhund benötigt keine Getter- und Setter-Methoden, wenn das Attribut "groesse" in der Superklasse Hund bereits mit einem Getter- und Setter-Methoden-Paar ausgestattet ist. In diesem Fall erbt die Unterklasse Jagdhund die Methoden von der Superklasse und kann auf sie zugreifen.

b) Das Klassendiagramm für die Klassen Hund und Jagdhund könnte wie folgt aussehen:

Code:
+-----------------+              +----------------+
|      Hund       |              |    Jagdhund    |
+-----------------+              +----------------+
| - groesse: int   |              |                |
+-----------------+              +----------------+
| + bellen(): void |              | + fass(): void |
| + getGroesse(): int|            |                |
| + setGroesse(g: int): void |    |                |
+-----------------+              +----------------+

c) Hier ist der Code für die beiden Klassen in BlueJ:

Code:
public class Hund {
    private int groesse;

    public Hund(int groesse) {
        this.groesse = groesse;
    }

    public void bellen() {
        System.out.println("Wuff Wuff");
    }

    public int getGroesse() {
        return groesse;
    }

    public void setGroesse(int groesse) {
        this.groesse = groesse;
    }
}

public class Jagdhund extends Hund {
    public Jagdhund(int groesse) {
        super(groesse);
    }

    public void fass() {
        System.out.println("Ich habe das Hühnchen geschnappt.");
    }

    public void fass(String ziel) {
        System.out.println("Ich habe das " + ziel + " geschnappt.");
    }
}

d) Hier ist der Code für die Startklasse, die Objekte der beiden Klassen instanziiert und die Methoden aufruft:

```
public class Startklasse {
public static void main(String[] args) {
Hund hund = new Hund(50);
Jagdhund jagdhund = new Jagdhund(60);

System.out.println("Hund Groesse: " + hund.getGroesse());
hund.bellen();

System.out.println("Jagdhund Groesse: " + jagdhund.get
 

Anhänge

  • 6DDC7949-B7BB-475A-AA16-A91577A4C8A1.jpeg
    6DDC7949-B7BB-475A-AA16-A91577A4C8A1.jpeg
    436,3 KB · Aufrufe: 0

KonradN

Super-Moderator
Mitarbeiter
Hab kein BlueJ auf dem PC, deshalb kann ich es nicht selber testen.
Du kannst es Dir natürlich jederzeit installieren. BlueJ ist frei verfügbar:
BlueJ

zu a) Ja, das ist richtig.

zu b) Da fehlt natürlich noch die Beziehung zwischen den beiden Klassen. Die Vererbung wird durch ein Pfeil dargestellt.

zu c)
  • die Konstruktoren sind nicht vorgegeben. Daher könnte man hier auch mit den Default Konstruktoren arbeiten
  • Die Methode fass(String) ist schon drin, aber kommt natürlich erst mit e)

zu d) Der Code ist natürlich abgeschnitten, aber sonst sieht es erst einmal gut aus.
 
Du kannst es Dir natürlich jederzeit installieren. BlueJ ist frei verfügbar:
BlueJ

zu a) Ja, das ist richtig.

zu b) Da fehlt natürlich noch die Beziehung zwischen den beiden Klassen. Die Vererbung wird durch ein Pfeil dargestellt.

zu c)
  • die Konstruktoren sind nicht vorgegeben. Daher könnte man hier auch mit den Default Konstruktoren arbeiten
  • Die Methode fass(String) ist schon drin, aber kommt natürlich erst mit e)

zu d) Der Code ist natürlich abgeschnitten, aber sonst sieht es erst einmal gut aus.
vielen Dank! kann man BlueJ auf jeden beliebigen Laptop runterladen?
 

White_Fox

Top Contributor
Ansonsten kann er auch Netbeans oder Eclipse verwenden, ich wüßte nicht warum man unbedingt auf BlueJ angewiesen sein sollte.

Edit:
Die Fragestellung finde ich großartig. Klare Fragen, Eigeninitiative,...ich wünschte, jeder der eine Frage hat würde sie auch so stellen.
 

Neue Themen


Oben