Erste Schritte Auf Attribut einer anderen Klasse zugreifen.

itsmejo

itsmejo

Mitglied
Wie kann ich in einer Methode der einen Klasse auf ein Attribut einer anderen Klasse zugreifen und dieses ggf. überschreiben?
 
Beste Antwort
D
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...
H

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

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;
}
}
 
D

DrPils

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
 
itsmejo

itsmejo

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
Wie würde das dann aussehen?
 
D

DrPils

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

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:
D

DrPils

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

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

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

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
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
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
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
DorFey Schrittweises abändern des GUI während for-Schleife / pausieren einer for-Schleife Java Basics - Anfänger-Themen 2
R Implementieren einer iterativen und rekursiven Klassenmethode. Java Basics - Anfänger-Themen 1
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
J Übergeben einer Objektreferenz Java Basics - Anfänger-Themen 6
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
P Veränderungen einer ObservableList Java Basics - Anfänger-Themen 10
O BiPredicate in einer forEach Methode Java Basics - Anfänger-Themen 10
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
V Variablen statische Variable einer Objektvariable zuordnen Java Basics - Anfänger-Themen 3
M Letztes Element einer ArrayList Java Basics - Anfänger-Themen 12
L Wie greife ich in der Subklasse auf die Parameter einer Methode der Superklasse zu ? Java Basics - Anfänger-Themen 15
ms_cikar Den Wert einer Hex. value bestimmten. Java Basics - Anfänger-Themen 8
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 21
E Rückwärtsmultiplikation einer invertierten matrix Java Basics - Anfänger-Themen 2
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
S Erzeugen einer eindeutigen ID Java Basics - Anfänger-Themen 2
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
B Objektverwaltung mit ArrayList in einer seperaten Klasse Java Basics - Anfänger-Themen 24
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
L Variable von einer Methode zu einer anderen Methode inkl. einer "Zwischenmethode" Java Basics - Anfänger-Themen 1
B Hilfe bei einer rekursiven Methode Java Basics - Anfänger-Themen 3
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
V_Fynn03 Beliebiges Element in einer Liste löschen (Java)(Lineare Datenstrukturen) Java Basics - Anfänger-Themen 9
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
A Java . punkt neben einer Zahl. Java Basics - Anfänger-Themen 1
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Mit einer LinkedList vorwärts und rückwärts iterieren Java Basics - Anfänger-Themen 6
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
M Getter einer PriorityQueue Java Basics - Anfänger-Themen 1
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
M Implementierung einer getNextId Methode Java Basics - Anfänger-Themen 5
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Anzeige

Neue Themen


Oben