Fehler beim Aufrufen von Instanzvariablen

Status
Nicht offen für weitere Antworten.

Data

Mitglied
Hallo,

meine Subklasse kann die private Instanzvariablen der Superklasse trotz get-Methoden nicht aufrufen. Hab's schon mit einer einzelnen get-Methode probiert, die alle drei Variablen ausgibt, klappt aber auch nicht. Der Compiler meldet ab Zeile 23 der Subklasse "day has private access in time". Irgendwo scheine ich einen ziemlichen Denkfehler drinzuhaben...

Code:
public class Time implements Comparable {
    private int
      hour,          // 0 .. 23
      day,           // 1 .. 31
      month;         // 1 .. 12

    // allgemeiner Konstruktor
    // Falls die Wertebereiche für die Attribute nicht eingehalten werden,
    // wird eine IllegalArgumentException ausgeworfen.
    public Time(int hour, int day, int month) {
      if (hour > 23 || hour < 0 || day > 31 || day < 0 || month > 12 || month < 0)
        throw new IllegalArgumentException("ungültige Eingabe!");
      this.hour = hour;
      this.day = day;
      this.month = month;
    }
 
    // Standardkonstruktor
    // Datum und Uhrzeit werden auf den 01.01., 00:00 Uhr eingestellt
    public Time() {
      hour = 0;
      day = 1;
      month = 1;
    }

    // die Zeit einstellen
    // Falls die Wertebereiche für die Attribute nicht eingehalten werden,
    // wird eine IllegalArgumentException ausgeworfen.
    public void set(int hour, int day, int month) {
     if (hour > 23 || hour < 0 || day > 31 || day < 0 || month > 12 || month < 0)
       throw new IllegalArgumentException("ungültige Eingabe!");
    }

    // liefert eine Zeichenkette, welche die Attributwerte enthält
    public String toString() {
      return "Datum: " + day + "." + month + "." + "Stunde" + hour + ":00";
    }
 
    //get-Methode
    public int getDay() {
      return day;
    }

    public int getMonth() {
      return month;
    }

    public int gethour() {
      return hour;
    }

    // zur Implementierung der Schnittstelle java.lang.Comparable
    // vergleicht das aktuelle Time-Objekt mit dem übergebenen Objekt o
    // liefert einen Wert < 0, wenn das aktuelle Objekt kleiner als t ist
    //                    > 0, wenn das aktuelle Objekt größer als t ist
    //                      0, wenn das aktuelle Objekt gleich t ist
    // Laufzeitfehler, falls o nicht vom Typ Time ist
    public int compareTo(Object o) {
      int month2 = ((Time)o).month;
      int day2 = ((Time)o).day;
      int hour2 = ((Time)o).hour;
      //Fall1
      if (month2 < month)
        return -1;
      //Fall2
      if (month2 > month)  
        return 1;   
      //Fall3
      if (month2 == month && day2 < day)
        return -1;
      //Fall4
      if (month2 == month && day2 > day)
        return 1;
      //Fall5
      if (month2 == month && day2 == day && hour2 < hour)
        return -1;
      //Fall6
      if (month2 == month && day2 == day && hour2 > hour)
        return 1;
      //Fall7
      return 0;
    }

    // vergleicht das aktuelle Time-Objekt mit dem übergebenen Objekt o
    // liefert true, wenn das aktuelle Time-Objekt gleich o ist, sonst false
    // Laufzeitfehler, falls o nicht vom Typ Time ist
    public boolean equals(Object o) {
      if (o == null)
        return false;
      if (this.month == ((Time)o).month && this.day == ((Time)o).day 
                                      && this.hour == ((Time)o).hour)
        return true;
      return true;
    }
}

Subklasse:
Code:
class Event extends Time
{
    private String text;

    // allgemeiner Konstruktor
    public Event(int hour, int day, int month, String text) {
      super(hour, day, month);
      this.text = text;
    }

    // Standardkonstruktor
    public Event() {
      super();
    }

    // einen Termin festlegen
    public void set(int h, int d, int m, String s) {
    }

    // liefert eine Zeichenkette, welche die Attributwerte enthält
    public String toString() {
      return "Datum: " + day + "." + month + "." + "Stunde" + hour + 
                    ":00" + "Text: " + text;
    }


    // zwei Termine sind gleich, wenn sowohl Zeit als auch Text übereinstimmen
    // liefert true, wenn das aktuelle Event-Objekt gleich o ist, sonst false
    // Laufzeitfehler, falls o nicht vom Typ Event ist
    public boolean equals(Object o) {
      if (o == null)
        return false;
      if (this.month == ((Time)o).month && this.day == ((Time)o).day
                         && this.hour == ((Time)o).hour && text.equals((Time)o).text))
        return true;
      return true;
    }

}
 

AlArenal

Top Contributor
Wozu schriebst du dir get-Methoden, wenn du sie dann nicht benutzt?

Ersetze in Event day durch #getDay und den Rest analog dazu und gut iss.
 

Wildcard

Top Contributor
Du hast zwar einen getter, aber du benutzt ihn nicht :D
Code:
      return "Datum: " + getDay() + "." + getMonth() + "." + "Stunde" + getHour +
                    ":00" + "Text: " + getText();
Alternativ kannst du dir auch überlegen ob es sinnvoll ist die entsprechenden Atribute protected zu setzen.

EDIT: 2late
 

Data

Mitglied
Danke! Klassischer Fall von Brett vorm Kopp!

Ein kleines PRoblem bleibt leider noch. Ich komme mit der folgenden Fehlermeldung für Zeile 35 nicht weiter: Der Compiler meldet "boolean cannot be dereferenced && this.getHour() == ((Time)o).getHour() && text.equals((Time)o).text)
1 error"

Was will er mir damit sagen?

Code:
class Event extends Time
{
    private String text;

    // allgemeiner Konstruktor
    public Event(int hour, int day, int month, String text) {
      super(hour, day, month);
      this.text = text;
    }

    // Standardkonstruktor
    public Event() {
      super();
    }

    // einen Termin festlegen
    public void set(int h, int d, int m, String s) {
    }

    // liefert eine Zeichenkette, welche die Attributwerte enthält
    public String toString() {
      return "Datum: " + getDay() + "." + getMonth() + "." + "Stunde" + getHour() + 
                    ":00" + "Text: " + text;
    }


    // zwei Termine sind gleich, wenn sowohl Zeit als auch Text übereinstimmen
    // liefert true, wenn das aktuelle Event-Objekt gleich o ist, sonst false
    // Laufzeitfehler, falls o nicht vom Typ Event ist
    public boolean equals(Object o) {
      if (o == null)
        return false;
      if (this.getMonth() == ((Time)o).getMonth() && this.getDay() == ((Time)o).getDay()
                && this.getHour() == ((Time)o).getHour() && text.equals((Time)o).text)
        return true;
      return true;
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
S Fehler beim Programm Java Basics - Anfänger-Themen 2
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
M Compiler-Fehler Fehler beim Ausführen des Codes Java Basics - Anfänger-Themen 25
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
Kirby.exe Fehler beim Ausgeben Java Basics - Anfänger-Themen 2
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
K Fehler beim Programmieren von TicTacToe Java Basics - Anfänger-Themen 12
L Fehler beim laden eines Icons Java Basics - Anfänger-Themen 3
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
M GUI - Fehler abfangen beim Dividieren Java Basics - Anfänger-Themen 8
E Fehler beim Debuggen einer jsp-Datei Java Basics - Anfänger-Themen 3
J Fehler beim Runden Java Basics - Anfänger-Themen 3
V Klassen Fehler beim compilieren einer Datei in CamelCase Java Basics - Anfänger-Themen 2
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
B Input/Output Fehler beim Übertragen eines ObjectOutputStreams. Java Basics - Anfänger-Themen 0
T Fehler beim ActionListener Java Basics - Anfänger-Themen 2
W Fehler beim verlängern des Arrays Java Basics - Anfänger-Themen 5
S Fehler beim Ausführen Java Basics - Anfänger-Themen 5
S Seriealiserung Fehler beim Landen Java Basics - Anfänger-Themen 1
Matze 12 häufige Fehler beim Programmieren lernen Java Basics - Anfänger-Themen 2
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
N Fehler beim importieren vom package Java Basics - Anfänger-Themen 2
I beim auslesen der Properties gibt es ein Fehler Java Basics - Anfänger-Themen 7
T Fehler beim Schreiben in Dateien! Java Basics - Anfänger-Themen 4
A Erste Schritte Nicht zu findender Fehler beim Auslesen eines Buchstabens Java Basics - Anfänger-Themen 4
X Fehler beim Öffnen von Jar Datei: "kein Hauptmanifestattribut" Java Basics - Anfänger-Themen 5
B Erste Schritte Fehler beim starten Java Basics - Anfänger-Themen 12
A Resize-Fehler (nur) beim waagrecht Verkleinern Java Basics - Anfänger-Themen 5
S brauche hilfe beim fehler finden Java Basics - Anfänger-Themen 2
1 Erste Schritte ständige Fehler beim Ausführen von Hello World Java Basics - Anfänger-Themen 6
S fehler beim datum parsen Java Basics - Anfänger-Themen 6
F Genereller Fehler beim Starten des Javaprogramms Java Basics - Anfänger-Themen 3
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
G Fehler beim Umwandeln eines Strings in int Java Basics - Anfänger-Themen 8
B Object "Method" in TreeSet, Fehler beim Vergleichen/Comparable Java Basics - Anfänger-Themen 9
F HttpURLConnection Fehler beim Quelltext holen Java Basics - Anfänger-Themen 6
S Fehler beim Auslösen des ActionListeners in Verbindung mit einer Queue Java Basics - Anfänger-Themen 5
D Fehler beim Compilen Java Basics - Anfänger-Themen 8
A Fehler beim Umschreiben in Array Java Basics - Anfänger-Themen 6
K Fehler beim Einfügen eines Programm Icons Java Basics - Anfänger-Themen 6
J Compiler-Fehler .jar Datei erstellt aber beim Ausführen Fehler Java Basics - Anfänger-Themen 5
M Fehler beim Übergeben von Daten an JTable Java Basics - Anfänger-Themen 14
T Fehler beim Konvertieren (String --> Float) Java Basics - Anfänger-Themen 5
H TicTacToe Fehler beim Compilieren Java Basics - Anfänger-Themen 7
S mögliche Fehler beim Initialisieren von Variablen Java Basics - Anfänger-Themen 19
N Datentypen Fehler beim Umwandeln in byte Java Basics - Anfänger-Themen 3
StrikeTom Fehler beim Audiodatei abspielen Java Basics - Anfänger-Themen 4
M Fehler beim Ausführen von runable Jar Java Basics - Anfänger-Themen 9
StrikeTom Fehler beim bildanzeigen Java Basics - Anfänger-Themen 10
A jexcelapi fehler beim einrichten Java Basics - Anfänger-Themen 2
M Fehler beim Compilieren Java Basics - Anfänger-Themen 2
S Fehler beim berechnen von MD5 Java Basics - Anfänger-Themen 7
M Fehler beim Compilieren Java Basics - Anfänger-Themen 4
J Fehler beim Ausführen von Programm Java Basics - Anfänger-Themen 3
D Class not found fehler beim ausführen unter konsole : / Java Basics - Anfänger-Themen 2
S Fehler beim Speichern von MP3-Stream Java Basics - Anfänger-Themen 6
R Derby-Datenbank: Fehler beim Zugriff im Embedded Modus Java Basics - Anfänger-Themen 27
G Fehler beim builden javax...... Java Basics - Anfänger-Themen 4
L Fehler beim Aufruf eines Applet Java Basics - Anfänger-Themen 2
hdi Fehler beim Model-Update einer JList (DefaultListModel) Java Basics - Anfänger-Themen 3
C Fehler beim ausgführen von Java App als nicht Admin u. Vista Java Basics - Anfänger-Themen 6
G Fehler beim Ausführen HILFE! Java Basics - Anfänger-Themen 12
H JavaMail: Beim Versenden tritt ein Fehler auf! Java Basics - Anfänger-Themen 4
G Fehler beim ausführen einer JSP Java Basics - Anfänger-Themen 5
K Fehler beim complieren Java Basics - Anfänger-Themen 5
0 Folgender Fehler beim Ausführen eines Java Programms Java Basics - Anfänger-Themen 8
R fehler beim incrementellen schreiben in einen vector Java Basics - Anfänger-Themen 11
O Linux - Fehler beim kompilieren - HILFE Java Basics - Anfänger-Themen 4
T Fehler beim Compilieren Java Basics - Anfänger-Themen 5
G Fehler beim Aufruf eine Javamethode über JSP Java Basics - Anfänger-Themen 8
G Fehler beim erneuten Öffnen von JInternalFrame Java Basics - Anfänger-Themen 7
R Fehler beim Programm Java Basics - Anfänger-Themen 20
G Fehler beim ausführen. Java Basics - Anfänger-Themen 3
W Fehler beim ausführen der Javadateien Java Basics - Anfänger-Themen 3
C Fehler beim build. nur wo? Java Basics - Anfänger-Themen 2
B Fehler beim einbinden eines Packages Java Basics - Anfänger-Themen 6
J Fehler beim Starten der .class Java Basics - Anfänger-Themen 21
V Fehler beim Kompilieren der Unterklasse Java Basics - Anfänger-Themen 2
G Fehler beim kompilieren Java Basics - Anfänger-Themen 18
E Fehler NullPointer beim Ausführen Java Basics - Anfänger-Themen 4
W Fehler beim Compilen Java Basics - Anfänger-Themen 9
D [JCreator] Einrichten - Fehler beim Kompilieren Java Basics - Anfänger-Themen 14
T Chaosprogrammierer hat einen fehler beim casten? Java Basics - Anfänger-Themen 5
M Problem beim Aufruf einer Methode: Wo is der Fehler? Java Basics - Anfänger-Themen 12
D Fehler beim kompilieren einer Java-Datei (javac) Java Basics - Anfänger-Themen 6
F Fehler beim Schreiben wenn Datei schreibgeschützt abfangen Java Basics - Anfänger-Themen 6
I Fehler beim Compilen Java Basics - Anfänger-Themen 10
T Fehler beim Laden eines Applets Java Basics - Anfänger-Themen 16
O Programm-Fehler beim einlesen von RGB werten Java Basics - Anfänger-Themen 5
F Fraktal fehler beim kompalieren Java Basics - Anfänger-Themen 5
M Fehler beim ein- und auslesen einer Textdatei Java Basics - Anfänger-Themen 5
L Fehler beim ausführen! Java Basics - Anfänger-Themen 14
C Fehler beim Starten einer *.jar Datei Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben