Erste Schritte Auf Attribut einer anderen Klasse zugreifen.

itsmejo

Mitglied
Wie kann ich in einer Methode der einen Klasse auf ein Attribut einer anderen Klasse zugreifen und dieses ggf. überschreiben?
 
Beste Antwort
Du müsstest in der Roller Klasse Getter und Setter anlegen
In etwa so:

Java:
public class Roller {
    
    private int kilometerstand;
    private double tankinhalt;
    private double verbrauchProKm = 0.01;

    public Roller(int kilometerstand, double tankinhalt,
                  double verbrauchProKm) {
        this.kilometerstand = kilometerstand;
        this.tankinhalt = tankinhalt;
        this.verbrauchProKm = verbrauchProKm;
    }

    public int getKilometerstand() {
        return kilometerstand;
    }

    public void setKilometerstand(int kilometerstand) {
        this.kilometerstand = kilometerstand;
    }

    public double getTankinhalt() {
        return tankinhalt;
    }

    public void setTankinhalt(double...

httpdigest

Top Contributor
Java:
public class EineKlasse {
  public void methode() {
    AndereKlasse instanz = new AndereKlasse();
    instanz.attribut = 4;
    // ...
  }
}

public class AndereKlasse {
  public int attribut;
}
Bitte stelle die Frage konkreter. Es ist nicht ganz klar, was du genau machen möchtest, bzw. wie dein Anwendungsfall genau aussieht.
 

itsmejo

Mitglied
Java:
public class EineKlasse {
  public void methode() {
    AndereKlasse instanz = new AndereKlasse();
    instanz.attribut = 4;
    // ...
  }
}

public class AndereKlasse {
  public int attribut;
}
Bitte stelle die Frage konkreter. Es ist nicht ganz klar, was du genau machen möchtest, bzw. wie dein Anwendungsfall genau aussieht.
public class Besitzer
{
private Roller meinRoller;

public void fahreDeinenRoller(int pStrecke)
{
if(tankinhalt >= pStrecke * verbrauchProKm)
{
kilometerstand = kilometerstand + pStrecke;
tankinhalt = tankinhalt - pStrecke * verbrauchProKm;
}
else
{
System.out.println("Der Tankinhalt ist zu niedrig. Du musst erst tanken.");
}
}
}

public class Roller
{
private int kilometerstand;
private double tankinhalt;
private double verbrauchProKm = 0.01;

public Roller(double pTankgroesse, int pKmStand, double pTankinhalt)
{
tankgroesse = pTankgroesse;
kilometerstand = pKmStand;
tankinhalt = pTankinhalt;
}
}
 

DrPils

Bekanntes Mitglied
Wenn du auf Attribute eines Objekts zugreifen willst brauchst du immer eine Instanz, also entweder über Instanz Methoden in der eigene Klasse oder du übergibst eine Referenz in der Methode einer anderen Klasse.
Da du die Attribute normalerweise als private deklarierst brauchst du normalerweise auch getter und setter
 

DrPils

Bekanntes Mitglied
Wie würde das dann aussehen?
Java:
class A {
    
    private int number;

    public void setNumber(int number) {
        this.number = number;
    }
    public int getNumber() {
        return number;
    }
}

class B {

    public static void main(String[] args) {
        A a = new A();
        System.out.println(a.getNumber());//0
        a.setNumber(3);
        System.out.println(a.getNumber());//3
    }

}
 

itsmejo

Mitglied
Wenn du sagst was du mit deinem Roller vor hast und den Code in Code Tags packst, kann dir das vielleicht jemand beantworten
Java:
public class Besitzer
{
private Roller meinRoller;

public void fahreDeinenRoller(int pStrecke)
{
if(tankinhalt >= pStrecke * verbrauchProKm)
{
kilometerstand = kilometerstand + pStrecke;
tankinhalt = tankinhalt - pStrecke * verbrauchProKm;
}
else
{
System.out.println("Der Tankinhalt ist zu niedrig. Du musst erst tanken.");
}
}
}

public class Roller
{
private int kilometerstand;
private double tankinhalt;
private double verbrauchProKm = 0.01;

public Roller(double pTankgroesse, int pKmStand, double pTankinhalt)
{
tankgroesse = pTankgroesse;
kilometerstand = pKmStand;
tankinhalt = pTankinhalt;
}
}

Der Besitzer soll halt den Kilometerstand des Rollers auslesen und ggf. überschreiben und den Tankinhalt und den Verbrauch pro Km des Rollers auslesen können. Was muss ich dafür an meinem Code verändern? (Das ist nur ein Teil des Codes. Beim Rest habe ich kein oder das gleiche Problem.)
 
Zuletzt bearbeitet:

DrPils

Bekanntes Mitglied
Du müsstest in der Roller Klasse Getter und Setter anlegen
In etwa so:

Java:
public class Roller {
    
    private int kilometerstand;
    private double tankinhalt;
    private double verbrauchProKm = 0.01;

    public Roller(int kilometerstand, double tankinhalt,
                  double verbrauchProKm) {
        this.kilometerstand = kilometerstand;
        this.tankinhalt = tankinhalt;
        this.verbrauchProKm = verbrauchProKm;
    }

    public int getKilometerstand() {
        return kilometerstand;
    }

    public void setKilometerstand(int kilometerstand) {
        this.kilometerstand = kilometerstand;
    }

    public double getTankinhalt() {
        return tankinhalt;
    }

    public void setTankinhalt(double tankinhalt) {
        this.tankinhalt = tankinhalt;
    }

    public double getVerbrauchProKm() {
        return verbrauchProKm;
    }
}

Mit diesen kannst du jetzt in deiner Besitzer Klasse mittels deiner meinRoller Instanz Variable auf die Attribute zugreifen bzw diese ändern:

Java:
public class Besitzer {
    private Roller meinRoller;

    public void fahreDeinenRoller(int pStrecke) {
        if (meinRoller.getKilometerstand() >= pStrecke *
                meinRoller.getVerbrauchProKm()) {
            int kilometerstand = meinRoller.getKilometerstand() + pStrecke;
            meinRoller.setKilometerstand(kilometerstand);
            double tankinhalt =
                    meinRoller.getTankinhalt() -
                            pStrecke * meinRoller.getVerbrauchProKm();
            meinRoller.setTankinhalt(tankinhalt);
        } else {
            System.out.println(
                    "Der Tankinhalt ist zu niedrig. Du musst erst tanken.");
        }
    }
}

Ob das jetzt alles sinn macht weiß ich nicht, ich habe deinen Code einfach umgesetzt. Versuch den Code mal in ruhe nachzuvollziehen.
 
Beste Antwort

mrBrown

Super-Moderator
Mitarbeiter
BTW: Besser als einfach stumpfe Getter/Setter sind meinst sinnvolle Methoden.
Zum Beispiel könnte man auch dem Roller eine fahre(Kilometer)-Methode spendieren. Der „Fahrer“ muss dann nicht mehr wissen, das ganze berechnet wird, und die Methode im Roller sieht deutlich schöner aus als die bisherige Methode :)

Edit: Oder um das mal anders zu motivieren: wenn du Roller fährst, guckst du dann in den Tank, planst wie viele Kilometer Du fährst, und rechnest das zusammen und zapfst das dann aus dem Tank ab?
Oder fährst du halt einfach und der Tank ist danach einfach leerer?
 

itsmejo

Mitglied
Du müsstest in der Roller Klasse Getter und Setter anlegen
In etwa so:

Java:
public class Roller {
   
    private int kilometerstand;
    private double tankinhalt;
    private double verbrauchProKm = 0.01;

    public Roller(int kilometerstand, double tankinhalt,
                  double verbrauchProKm) {
        this.kilometerstand = kilometerstand;
        this.tankinhalt = tankinhalt;
        this.verbrauchProKm = verbrauchProKm;
    }

    public int getKilometerstand() {
        return kilometerstand;
    }

    public void setKilometerstand(int kilometerstand) {
        this.kilometerstand = kilometerstand;
    }

    public double getTankinhalt() {
        return tankinhalt;
    }

    public void setTankinhalt(double tankinhalt) {
        this.tankinhalt = tankinhalt;
    }

    public double getVerbrauchProKm() {
        return verbrauchProKm;
    }
}

Mit diesen kannst du jetzt in deiner Besitzer Klasse mittels deiner meinRoller Instanz Variable auf die Attribute zugreifen bzw diese ändern:

Java:
public class Besitzer {
    private Roller meinRoller;

    public void fahreDeinenRoller(int pStrecke) {
        if (meinRoller.getKilometerstand() >= pStrecke *
                meinRoller.getVerbrauchProKm()) {
            int kilometerstand = meinRoller.getKilometerstand() + pStrecke;
            meinRoller.setKilometerstand(kilometerstand);
            double tankinhalt =
                    meinRoller.getTankinhalt() -
                            pStrecke * meinRoller.getVerbrauchProKm();
            meinRoller.setTankinhalt(tankinhalt);
        } else {
            System.out.println(
                    "Der Tankinhalt ist zu niedrig. Du musst erst tanken.");
        }
    }
}

Ob das jetzt alles sinn macht weiß ich nicht, ich habe deinen Code einfach umgesetzt. Versuch den Code mal in ruhe nachzuvollziehen.

Vielen Dank!!!
 

itsmejo

Mitglied
Danke für den Tipp!
BTW: Besser als einfach stumpfe Getter/Setter sind meinst sinnvolle Methoden.
Zum Beispiel könnte man auch dem Roller eine fahre(Kilometer)-Methode spendieren. Der „Fahrer“ muss dann nicht mehr wissen, das ganze berechnet wird, und die Methode im Roller sieht deutlich schöner aus als die bisherige Methode :)

Edit: Oder um das mal anders zu motivieren: wenn du Roller fährst, guckst du dann in den Tank, planst wie viele Kilometer Du fährst, und rechnest das zusammen und zapfst das dann aus dem Tank ab?
Oder fährst du halt einfach und der Tank ist danach einfach leerer?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Auf Attribut einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 2
N Attribut einer anderen Klasse übertragen/verwenden Java Basics - Anfänger-Themen 5
A Kann man ein Attribut aus einer anderen Klasse nutzen? Java Basics - Anfänger-Themen 3
L Methoden In einer Klasse ein Attribut aus einer anderen Klasse setzen Java Basics - Anfänger-Themen 8
? Zugriff auf Attribut einer anderen Klasse Java Basics - Anfänger-Themen 2
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
T Inhalt aus TextField in Attribut einer Instanz schreiben Java Basics - Anfänger-Themen 5
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
B Attribut vom Typ einer Klasse? Java Basics - Anfänger-Themen 3
S Zugriff auf Attribut einer unbekannten Klasse erhalten Java Basics - Anfänger-Themen 6
I Von einer Methode eines Objektes auf Attribut eines Objektes anderer Klasse zugreifen Java Basics - Anfänger-Themen 4
M probleme mit array (als attribut einer klasse) Java Basics - Anfänger-Themen 2
J Attribut vom Objekt einer eigenen Klasse setzen Java Basics - Anfänger-Themen 6
megachucky wie bekomm ich ein private attribut aus einer andren klasse? Java Basics - Anfänger-Themen 18
J Wie greife ich vonEvent-Handler auf Attribut einer Klasse zu Java Basics - Anfänger-Themen 5
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
berserkerdq2 Wie lege ich ein Attribut comparator an? Java Basics - Anfänger-Themen 13
M Wie kann ich festlegen, dass ein Attribut maximal den Wert 0 erreicht, also nicht in den negativen Bereich fällt? Java Basics - Anfänger-Themen 4
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
C Setter-Methode mit final-Attribut Java Basics - Anfänger-Themen 9
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
C Zugriff auf Attribut von Oberklasse Java Basics - Anfänger-Themen 8
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
X Attribut initialisieren Java Basics - Anfänger-Themen 1
Z Attribut ändern ohne Kontrollstruktur Java Basics - Anfänger-Themen 2
S NIO lesbares und beschreibbares Attribut setzen Java Basics - Anfänger-Themen 1
H Objekt als Attribut speichern Java Basics - Anfänger-Themen 11
N Fehler bei string Attribut! Java Basics - Anfänger-Themen 18
D Klassen Warum wird das Attribut nicht ausgegeben? Java Basics - Anfänger-Themen 8
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
N Methoden Attribut Abfrage eines anderen Objektes Java Basics - Anfänger-Themen 36
A Private Attribut aus fremder Klasse lesen ? Java Basics - Anfänger-Themen 19
J Objekt mit Attribut "ansprechen" Java Basics - Anfänger-Themen 7
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
V Attribut aus aus jedem ArrayListen index auf Bildschirm ausgeben Java Basics - Anfänger-Themen 9
W Attribut Werte eines Objekts mit gettern ausgeben Java Basics - Anfänger-Themen 5
C Probleme bei einem Stringvergleich - Attribut "value" unterscheidet sich Java Basics - Anfänger-Themen 9
B Klassenübergreifendes Objekt Attribut Java Basics - Anfänger-Themen 7
P Ausnahme, wenn Attribut nicht definiert Java Basics - Anfänger-Themen 4
V Auf Objektreferenz über Attribut zugreifen Java Basics - Anfänger-Themen 10
M Objekt mit Liste als Attribut seralisieren? Java Basics - Anfänger-Themen 5
S Ein Attribut/Instanz eines bestehendes Objektes mit SETTER Methode ändern Java Basics - Anfänger-Themen 3
R Variablen final String Variable als Attribut veränderbar? Java Basics - Anfänger-Themen 21
V Methoden Zeilen nach bestimmtem Attribut sortieren Java Basics - Anfänger-Themen 4
Blindxantos Datentypen Uhrzeit in einem Attribut speichern Java Basics - Anfänger-Themen 3
H DOM Attribut als ID kennzeichnen Java Basics - Anfänger-Themen 12
M JLabel attribut wert zuweisen Java Basics - Anfänger-Themen 2
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
C Liste mit Attribut Abstract vererben Java Basics - Anfänger-Themen 11
Ollek Collections ArrayList Object - Attribut von dem Object vergleichen Java Basics - Anfänger-Themen 7
M .toString(); // Ausgabe: Attribut von Vaterklasse Java Basics - Anfänger-Themen 12
K OOP Datenkapselung mittels private - length Attribut bei Array Java Basics - Anfänger-Themen 3
K Attribut als Referenz auf Objekt Java Basics - Anfänger-Themen 8
J Variable vs Attribut Java Basics - Anfänger-Themen 4
S Klasse als Attribut implementieren Java Basics - Anfänger-Themen 2
W Maven2 <packaging>jar</packaging> über Attribut auf WAR ändern Java Basics - Anfänger-Themen 5
X Attribut in n Objekten suchen Java Basics - Anfänger-Themen 8
G Objekte mit dem Attribut title mit Comparator sortieren Java Basics - Anfänger-Themen 5
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
D Zugriff auf attribut anderer Klasse privat/public? Java Basics - Anfänger-Themen 9
R Suchen nach Attribut Java Basics - Anfänger-Themen 5
S Attribut beim erzuegen eines Objektes automatisch erhöhen Java Basics - Anfänger-Themen 6
W Attribut nur in Unterklasse ändern Java Basics - Anfänger-Themen 10
J Attribut casten Java Basics - Anfänger-Themen 3
I Mehrere Klasseninstanzen ueber Attribut sortieren? Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
B Kommunikation mit Seriellen Schnittstellen + Integration einer lib Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Radius von einer ellipse bestimmen Java Basics - Anfänger-Themen 7
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
M Zufallszahl generieren mit einer linken und rechten Grenze Java Basics - Anfänger-Themen 3
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
S Textausgabe in einer For-Schleife Java Basics - Anfänger-Themen 12
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben