Auf Attribut einer anderen Klasse zugreifen

Diskutiere Auf Attribut einer anderen Klasse zugreifen im Java Basics - Anfänger-Themen Bereich.
X

xImJugo

Hallo ihr Lieben,
ich hab nen eigentlich einfaches, aber doch dummes Problem. Ich hab 2 Klassen (Costumer und Booking). In der Costumer klasse befindet sich das Attribut Costumernumber, aber dieses brauch ich in der Booking klasse in der toString methode, aber wie kann ich daraufzugreifen ?

Java:
package uebungsblattVier;

import uebungsblattVier.Costumer;

public class Booking {
    private int billNumber;
    private static int firstBillNumber = 0;
    private int busNumber;

    public int getBillNumber() {
        return billNumber;
    }

    public int getBusNumber() {
        return busNumber;
    }

    public void createBillNumber() {
        billNumber = ++firstBillNumber;
    }

    public String toString() {
        return String.format("%s;%03d;%s", [B]costumerNumber[/B], busNumber, billNumber);  [B]// Wie komme ich an die CostumerNumber?[/B]
    }

    public Booking(int busnumber, String prename, String postname) {
        this.busNumber = busnumber;
        Costumer costumer = new Costumer(prename, postname);
        createBillNumber();
    }
}
 
L

lennero

Du hast zwei Möglichkeiten (vielleicht auch mehr, mir fällt aber nix anderes ein):

1. Customer Instanzvariable in der Booking Klasse.
2. Customer an Booking Konstruktor übergeben und mit customer.getCustomerNumber() an die Nummer gelangen.

Das hier sieht auch komisch aus

Java:
public Booking(int busnumber, String prename, String postname) {
        this.busNumber = busnumber;
        Costumer costumer = new Costumer(prename, postname);
        createBillNumber();
    }
Wenn ich nicht falsch liege, ist das customer Objekt hier Sinnlos. Du machst nichts damit. Nachdem dein Booking Objekt erstellt wurde, verlierst du die Referenz auf das im Booking Konstruktor erstellte Customer Objekt.

So müsste es gehen

Java:
private Costumer costumer;

public Booking(int busnumber, String prename, String postname) {
        this.busNumber = busnumber;
        costumer = new Costumer(prename, postname);
        createBillNumber();
    }
 
K

Keeperofnature

Wenn ich deine frage richtig verstanden habe musst du folgendes ändern
toString() zu toString(Customer c)
Und was bei steht zu
c.customerNumber oder c.getCustomerNumber()
Je nachdem wie deine Customerklasse aussieht. Bevorzugt hast du in Customer die Methode, die ich in der zweiten Variante aufrufe.
 
Thema: 

Auf Attribut einer anderen Klasse zugreifen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben