Wie behebe ich diesen Fehler im Java Editor?

5 Antworten

Setze das Feld zeichenFenster in Haus entweder auf protected:

protected JFrame zeichenFenster;

damit es von HausMitGarage geerbt wird oder nutze den Parameter pZeichenFenster in den Zeilen 11 und 12. Der erste Lösungsweg wäre zu bevorzugen.

Christopher0609 
Fragesteller
 29.03.2022, 15:40

Ich habe noch ein anderes Problem. Vielleicht kannst du mir dabei auch noch einmal helfen:

HausMitGarage.java:11:14: error: constructor Rechteck in class Rechteck cannot be applied to given types;

garage = new Rechteck (zeichenFenster,xPos+groesse*2,yPos-groesse*3,groesse*1,Color.gray);

Was ist da jetzt genau die Ursache und die Lösung?

LG

0
regex9  29.03.2022, 15:43
@Christopher0609

Vergleiche mal den Konstruktor in deiner Rechteck-Klasse mit diesem Aufruf. Die Argumentenliste wird auf die Parameter nicht passen. Es könnte bspw. ein Argument fehlen oder nicht den erwartetem Typ entsprechen.

1

zeichenFenster ist privat und somit auch in der Tochterklasse nicht erreichbar. Musst du protected machen.

Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit mit Java.
Christopher0609 
Fragesteller
 29.03.2022, 15:15

Danke für die Antwort.

Und wie funktioniert das ?

0
Yoshi32  29.03.2022, 15:16
@Christopher0609

Na da wird doch private int zeichenFenster; oder sowas in die Richtung stehen. Und statt private schreibst du halt protected.

1
Von Experte Yoshi32 bestätigt
Wie behebe ich diesen Fehler im Java Editor?

Du willst "zeichenFenster" nutzen, welches Teil der vererbenden Klasse "Haus" ist. Die Variable ist jedoch private und kann somit nicht von HausMitGarage verwendet werden.

Du musst die Sichtbarkeit der Variable anpassen, z.B. protected, oder das ganze anders Strukturieren

https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

Bild zum Beitrag

 - (Computer, Schule, Technik)

Vermutlich versucht eine Methode "zeichenFenster" auf eine private Variable oder Methode von "Haus" zuzugreifen.
Edit: zeichenFenster ist die private variable. Die musst du also public stellen, oder protected, wenn Haus und HausMitGarage im selben Package liegen.

Woher ich das weiß:Berufserfahrung – Java-Entwickler von Batch- und Webanwendungen

Ganz banal würde ich darauf tippen, dass du einen Tippfehler hast.

Es muss "pZeichenFenster" heissen und nicht "zeichenFenster"