Auf Attribut einer anderen Klasse zugreifen

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();
    }
}
 
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();
    }
 
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.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben