• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

OOP-Aufgabe

J

jono

Top Contributor
Hallo !
Ich habe nur eine "kleine" Frage bis jetzt zu dieser Aufgabe, werde sie dennoch einfach mal komplett posten:
Java:
/*
      * Setzen Sie alle Attribute auf private und nutzen Sie zum Zugriff automatisch generierte Getter- und Setter-Methoden.
      *
      * Aufgabe 1) Erstellen sie 3 Klassen Klausur, Spickzettel und Coronazettel mit dem Attribut hatCorona (bool).
      *
      * Aufgabe 2) Erstellen sie eine abstrakte Klasse Papier, die an die 3 Klassen aus a) vererbt wird mit den Attributen Höhe (double), Breite (double) und Inhalt (LinkedList<String>) und
      * den Methoden void schreiben(String zeile, int index) und void radieren(int index). Sorgen Sie dafür, dass die Methoden nur in den Kind-Klassen sichtbar sind.
      *
      * Aufgabe 3) Schreiben Sie einen Konstruktor für Papier und Coronazettel, mit dem alle Attribute initialisiert werden können. Sorgen Sie dafür, dass der default-Konstruktor hier auch noch erreichbar ist!
    Erzeugen Sie zum Test einen Coronazettel ohne Initialisierung der Attribute und einen Coronazettel, bei dem der boolean hatCorona auf false gesetzt wird. Die anderen Attribute dürfen beliebig gewählt werden.
      *
      * Aufgabe 4) Erstellen sie ein Interface Faltbar mit der Methodensignatur für eine void Methode falten(int anzahl) das von der Klasse Coronazettel und Spickzettel
      * implementiert wird.
      *
      * Aufgabe 5) Implementieren sie die Methode schreiben der Klasse Papier folgendermaßen:
      * Die Methode soll den String zeile in der Liste Inhalt an der Stelle index speichern. Der Index darf nicht größer sein als die Aktuelle Anzahl an Zeilen+1.
      *
      * Aufgabe 6) Implementieren sie die Methode radieren der Klasse Papier folgendermaßen:
      * Die Methode soll den String an der stelle index in der Liste Inhalt löschen. Index darf nicht größer sein als die länge der Liste.
      *
      * Aufgabe 7) Implementieren sie die Methode falten in den Klassen Coronazettel und Spickzettel folgendermaßen:
      * Die Methode faltet so oft wie der Parameter anzahl vorgibt. Dabei wird abwechselnd Höhe und Breite um die hälfte verringert.
      * Coronazettel dürfen nur 2 mal gefaltet werden sonst werden sie nicht angenommen.
      *
      * Aufgabe 8) Implementieren sie einen enum Papierart mit den Elementen LINIERT und KARIERT. Klausuren bekommen jetzt noch das Attribut papierart vom Typ PAPIERART. Passen sie den Konstruktor an.
      *
      * Aufgabe 9) Instanziieren sie einen Spickzettel und versuchen sie ihn zu falten.
    */
Das ist die bisherige Coronazettelklasse:
Java:
import java.util.LinkedList;

public class Coronazettel extends Papier {
   
    private boolean hatCorona;
   
    public Coronazettel(boolean hatCorona, double hoehe, double breite, LinkedList<String> lL) {
        super(hoehe, breite, lL);
        this.hatCorona = hatCorona;
    }
}
Unter "Aufgabe 3" steht ja: "Erzeugen Sie zum Test einen Coronazettel ohne Initialisierung der Attribute und einen Coronazettel, bei dem der boolean hatCorona auf false gesetzt wird. Die anderen Attribute dürfen beliebig gewählt werden."
Ich verstehe jetzt einfach nur nicht, wie ich das "erzeugen" soll...
 
temi

temi

Top Contributor
Ein kleiner Verbesserungsvorschlag in Form einer Gegenfrage:

Warum nennst du den vierten Parameter von Coronazettel eigentlich "lL"? Die vorherigen hast du ja auch nach ihrer jeweiligen Funktion benannt und nicht "boolean", "double1" und "double2", bzw "b", "d1" und "d2".
 
J

jono

Top Contributor
Warum nennst du den vierten Parameter von Coronazettel eigentlich "lL"? Die vorherigen hast du ja auch nach ihrer jeweiligen Funktion benannt und nicht "boolean", "double1" und "double2", bzw "b", "d1" und "d2".
Den boolean und die zwei double wurden in ihrem Namen vorgegeben und bei LinkedList war freie Wahl, aber du hast recht, den Namen hätte ich sinnvoller geben können
 
J

jono

Top Contributor
Die Klasse sieht in der Lösung so aus:
Java:
import java.util.LinkedList;

public class Coronazettel extends Papier implements Faltbar {

    private boolean hatCorona;

    public Coronazettel(double hoehe, double breite, LinkedList<String> inhalt, boolean hatCorona) {
        super(hoehe, breite, inhalt);
        this.setHatCorona(hatCorona);

    }

    public boolean isHatCorona() {
        return hatCorona;
    }

    public void setHatCorona(boolean hatCorona) {
        this.hatCorona = hatCorona;
    }

    @Override
    public void falten(int anzahl) {
        if (anzahl > 2) {
            return;
        }
        for (int i = 1; i <= anzahl; i++) {
            if (i % 2 == 0) {
                this.setHoehe(this.getHoehe() / 2);
            } else {
                this.setBreite(this.getBreite() / 2);
            }
        }
    }

}
Der dritte Punkt fällt mir generell schwieriger.
Coronazettel zettel = new Coronazettel();
1. Wo wird der Code implementiert, in der Lösung z.B. kommt das nirgends vor, gibt es eine Klasse, die evtl. noch relevant wäre für "3"?
Das Objekt was @temi hier erzeugt hat ohne Initialisierung der Attribute wird jetzt in welcher Klasse erzeugt?
Bzw. wo wird jetzt das andere Objekt erzeugt, bei dem
Java:
 boolean hatCorona
auf false gesetzt wird und die anderen Attribute frei wählbar sind?
2. Wie sorge ich dafür, dass der default-Konstruktor erreichbar bleibt? Der ist doch sowieso in jeder Klasse erhalten oder...?
3. Weshalb wird in der Klasse aus diesem Beitrag jetzt hier
Java:
 this.setHatCorona(hatCorona);
implementiert?
 
mihe7

mihe7

Top Contributor
1. Wo wird der Code implementiert, in der Lösung z.B. kommt das nirgends vor, gibt es eine Klasse, die evtl. noch relevant wäre für "3"?
Das Objekt was @temi hier erzeugt hat ohne Initialisierung der Attribute wird jetzt in welcher Klasse erzeugt?
Wenn in der Klasse explizit Konstruktoren angegeben sind, musst Du einen davon verwenden.
Wie sorge ich dafür, dass der default-Konstruktor erreichbar bleibt? Der ist doch sowieso in jeder Klasse erhalten oder...?
Nein, der default-Konstruktor existiert implizit nur dann, wenn kein Konstruktor in der Klasse explizit definiert wurde. Wenn Du den Konstruktor neben anderen in der Klasse haben willst, musst Du ihn Dir schreiben.

Weshalb wird in der Klasse aus diesem Beitrag jetzt hier
Java:
this.setHatCorona(hatCorona);
implementiert?
Keine Ahnung, beim Überfliegen der Aufgabenstellung ist mir jetzt nichts aufgefallen, wofür Du die Methode bräuchtest.
 
temi

temi

Top Contributor
Wo wird der Code implementiert, in der Lösung z.B. kommt das nirgends vor, gibt es eine Klasse, die evtl. noch relevant wäre für "3"?

Erzeugen Sie zum Test einen Coronazettel ohne Initialisierung der Attribute und einen Coronazettel, bei dem der boolean hatCorona auf false gesetzt wird.

Da dort "zum Test" steht, nehme ich an in der main() oder halt da, wo deine Tests implementiert werden.
 
J

jono

Top Contributor
@temi In der 1. Zeile steht zwar, dass automatisch Getter und Setter generiert werden sollen, aber das sieht dann anders aus und dafür gibt es dann doch die set Methode die ja auch vorhanden ist ?
 
temi

temi

Top Contributor
@temi In der 1. Zeile steht zwar, dass automatisch Getter und Setter generiert werden sollen, aber das sieht dann anders aus und dafür gibt es dann doch die set Methode die ja auch vorhanden ist ?
setHatCorona() sieht für mich 100%ig wie ein Setter aus und genau diese Methode wird auch aufgerufen.

Wie sollte denn deiner Meinung nach ein Setter aussehen, egal ob automatisch oder manuell generiert?
 
kneitzel

kneitzel

Top Contributor
Das sind Getter und Setter. Ich frage mich nur, warum sethatCorona(boolean hatCorona) im Konstruktor steht?
Dann schau erst einmal genau hin - da steht this.setHatCorona(hatCorona); und das ist ein Aufruf des Setters.

Dem Konstruktor wird der Parameter übergeben und der dient dazu, diesen Wert zu setzen. Und der Setter ist nun einmal eine Möglichkeit, den Wert zu setzen.
 
J

jono

Top Contributor
Dem Konstruktor wird der Parameter übergeben und der dient dazu, diesen Wert zu setzen. Und der Setter ist nun einmal eine Möglichkeit, den Wert zu setzen.
Ich habe dich leider nicht ganz verstanden. Dem Konstruktor übergebene Parameter dienen ja erstmal dazu ein Objekt erzeugen zu können. Was genau meinst du mit "Wert setzen", kannst du evtl. da genauer etwas zu sagen vlt. ein Bsp.
 
mihe7

mihe7

Top Contributor
Dem Konstruktor übergebene Parameter dienen ja erstmal dazu ein Objekt erzeugen zu können. Was genau meinst du mit "Wert setzen", kannst du evtl. da genauer etwas zu sagen vlt. ein Bsp.
Mit der Übergabe alleine passiert ja noch nichts.
Java:
class A {
   public A(int wert) {
   }
}
Wenn Du jetzt ein Objekt A erzeugst, kannst Du als Wert angeben, was Du willst: der Wert wird einfach ignoriert.

In der Regel verwendet man den übergebenen Wert, um die Attribute des Objekts zu initialisieren:
Java:
class A {
   private int meinWert;

   public A(int wert) {
       meinWert = wert; // initialisiert meinWert mit wert
   }
}
 
temi

temi

Top Contributor
Dem Konstruktor übergebene Parameter dienen ja erstmal dazu ein Objekt erzeugen zu können. Was genau meinst du mit "Wert setzen", kannst du evtl. da genauer etwas zu sagen vlt. ein Bsp.
Du hast doch schon ein Beispiel. Hier etwas vereinfacht und um eine zweite Möglichkeit ergänzt.
Java:
public class Coronazettel {

    private boolean hatCorona;

    // Konstruktor übernimmt einen Parameter
    public Coronazettel(boolean hatCorona) {
        // 1. Möglichkeit: Aufruf des Setters und Weitergabe des Parameters an den Setter
        this.setHatCorona(hatCorona);
        
        // 2. Möglichkeit: Parameter direkt an Instanzvariable zuweisen
        this.hatCorona = hatCorona;
    }

    // Setter übernimmt einen Parameter
    public void setHatCorona(boolean hatCorona) {
        // und weist diesen der Instanzvariable zu
        this.hatCorona = hatCorona;
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
R Eclipse Aufgabe Java Basics - Anfänger-Themen 4
Helix19 Informatik Grundkurs (Haus-)Aufgabe Java Basics - Anfänger-Themen 5
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
TimoN11 Java spezielle Suchprobleme - Aufgabe Java Basics - Anfänger-Themen 5
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 17
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Rechnungen-Aufgabe Java Basics - Anfänger-Themen 17
C Biene-Aufgabe Java Basics - Anfänger-Themen 2
K Algorithmen und Datenstrukturen Programmier Aufgabe Java Basics - Anfänger-Themen 10
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Aufgabe Flussdiagramm, kann jemand checken? Java Basics - Anfänger-Themen 8
B Methoden Ausgeben Aufgabe Java Basics - Anfänger-Themen 15
M Lösung Aufgabe - Java Programmiren lernen für Dummies Java Basics - Anfänger-Themen 11
J Rekursion Klausur Aufgabe Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
F Aufgabe: Abstand von einem Punkt zu einem anderen Punkt Java Basics - Anfänger-Themen 10
T Aufgabe zum Verschlüsselungsalgorithmus Java Basics - Anfänger-Themen 11
J Erste Schritte Aufgabe Java Basics - Anfänger-Themen 24
T Methoden BinaryTree transformieren Aufgabe Java Basics - Anfänger-Themen 36
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
S Sortieralgorithmus - Aufgabe mit Lösungsidee Java Basics - Anfänger-Themen 20
A Aufgabe: Gleitkommazahlen Java Basics - Anfänger-Themen 3
A Java-Programmierungs Aufgabe Java Basics - Anfänger-Themen 2
U Aufgabe zu Kontrollstrukturen Java Basics - Anfänger-Themen 8
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
J Aufgabe als Feuertaufe Java Basics - Anfänger-Themen 8
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
H aufgabe 4 Java Basics - Anfänger-Themen 297
M Hilfe bei Projektorientierungs-Aufgabe !! Java Basics - Anfänger-Themen 3
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
H java aufgabe Java Basics - Anfänger-Themen 7
E Mathematische Aufgabe: Antwort entspricht nicht der Lösung Java Basics - Anfänger-Themen 5
H was verlangt die aufgabe ? Java Basics - Anfänger-Themen 10
H java aufgabe Java Basics - Anfänger-Themen 68
H java aufgabe Java Basics - Anfänger-Themen 25
H aufgabe java luhn algorithmus Java Basics - Anfänger-Themen 10
R Java Aufgabe (Teilbarkeit) Java Basics - Anfänger-Themen 7
H java aufgabe Java Basics - Anfänger-Themen 44
H java aufgabe Java Basics - Anfänger-Themen 7
H java string aufgabe Java Basics - Anfänger-Themen 10
H array aufgabe Java Basics - Anfänger-Themen 13
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
H aufgabe Java Basics - Anfänger-Themen 9
H lösung aufgabe Java Basics - Anfänger-Themen 12
S Hilfe für Aufgabe Java Basics - Anfänger-Themen 4
H java online aufgabe Java Basics - Anfänger-Themen 4
H Array aufgabe Java Basics - Anfänger-Themen 7
H oop aufgabe probe kalusur Java Basics - Anfänger-Themen 11
H oop aufgabe Java Basics - Anfänger-Themen 19
H JAVA AUFGABE Java Basics - Anfänger-Themen 7
W Thread Aufgabe - Vorgehensweise Java Basics - Anfänger-Themen 8
J Problem bei Aufgabe "Geldstückelung" Java Basics - Anfänger-Themen 5
P Problem bei Java-Aufgabe Java Basics - Anfänger-Themen 12
B Verständnis Frage zu der Aufgabe Java Basics - Anfänger-Themen 30
L Klassen Geldrückgabe - Aufgabe Programmieren Java Basics - Anfänger-Themen 23
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
V Hilfe Aufgabe Zahlen Java Basics - Anfänger-Themen 9
W Problem bei JUnit Test Aufgabe Java Basics - Anfänger-Themen 15
O Hilfe bei Aufgabe Java Basics - Anfänger-Themen 3
F Collection Aufgabe mit LinkedList Java Basics - Anfänger-Themen 3
F Problem mit der Aufgabe(Array) Java Basics - Anfänger-Themen 21
C Problem mit der Aufgabe Java Basics - Anfänger-Themen 3
J Brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 3
B For Schleife Aufgabe Java Basics - Anfänger-Themen 13
J Bradley Kjell java Aufgabe Java Basics - Anfänger-Themen 3
A Frage zur Aufgabe Uhrzeit einstellen mit Objekten Java Basics - Anfänger-Themen 18
S Verständnisproblem Aufgabe Java Basics - Anfänger-Themen 9
kokojamboo92 Problem bei Aufgabe Java Basics - Anfänger-Themen 9
H Aufgabe so richtig gelöst? Java Basics - Anfänger-Themen 14
C Terminkalender Aufgabe Java Basics - Anfänger-Themen 7
L Aufgabe Java Basics - Anfänger-Themen 2
M Aufgabe: Eine Klasse und viele Untermethoden Java Basics - Anfänger-Themen 30
D Erste Schritte ArrayList Aufgabe Java Basics - Anfänger-Themen 68
F Aufgabe Rekursion Binärer Baum Java Basics - Anfänger-Themen 15
M Ausgabe einer kleinen Aufgabe Java Basics - Anfänger-Themen 2
D Primzahl Aufgabe Java Basics - Anfänger-Themen 5
Z Threads Executor Framework - Aufgabe auf n Threads aufteilen Java Basics - Anfänger-Themen 10
M Collection Aufgabe Java Basics - Anfänger-Themen 22
T Spezielle Aufgabe zu Schleifen Java Basics - Anfänger-Themen 3
N Java Aufgabe Java Basics - Anfänger-Themen 3
F Tarifrechner Aufgabe Java Basics - Anfänger-Themen 13
V Verstehe die Lösung einer Aufgabe von Grunkurs-Java nicht. Java Basics - Anfänger-Themen 11
J Aufgabe(Threads) richtig verstanden/implementiert Java Basics - Anfänger-Themen 27
H Aufgabe zu Zahlenmengen Java Basics - Anfänger-Themen 3
H Aufgabe zu Teilfolgen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben