Attribute

.maik.

Bekanntes Mitglied
Abend.
Ich lerne gerade den Umgang mit Attributen und nun stellen sich mir zwei Fragen.
Erstens wenn ich Attribute mit Variablen gleichsetzen möchte, kommt es dann auf die Reihenfolge an ?

Außerdem wollte ich mit einem Attribut (double) in einer Methode rechnen, also mit 0.5 multiplizieren. Ich konnte dort aber nicht schreiben zAttribut * 0.5 , sondern musst über eine Anfrage das Attribut ausgeben. Wieso kann man nicht sofort damit rechnen?

Danke
 
Maik was hälst du davon, wenn du ein Buch liest und ein wenig try and error?

Die von dir angeprochenen Themen sind mit ein wenig Eigenintiiative selbst zu bewältigen.

Und damit meine ich alle Themen in diesem Forum von dir.

Ohne Code können wir Fragen zum Code nicht beantworten.

Gib ein Beispiel für die "Reihenfolge"
 
Zuletzt bearbeitet von einem Moderator:
ich habe mir ein buch gekauft. das mit der reihenfolge hat sich auch schon erledigt. nur meine zweite noch nicht. ich kann sie ja noch einmal stellen.

ich habe ein attribut
Java:
 privat int zGeschwindigkeit
, mit dem ich jetzt etwas rechnen möchte.
Java:
   private void setzeGeschwindigkeit(double pGeschwindigkeit)
    {
        zGeschwindigkeit = pGeschwindigkeit;
    }
    
    private void bremse()
    {
        this.setzeGeschwindigkeit(this.geschwindigkeit() * 0.999);
    }
    
    private double geschwindigkeit()
    {
        return zGeschwindigkeit;
    }
Nun war meine Frage ob man sich nicht Dienst hätte sparen können und es so schreiben würde.
Java:
   private void setzeGeschwindigkeit(double pGeschwindigkeit)
    {
        zGeschwindigkeit = pGeschwindigkeit;
    }
    private void bremse()
    {
        this.setzeGeschwindigkeit(zGeschwindigkeit * 0.999);
    }

Und das geht bei mir irgendwie nicht. Kann man nicht einfach so mit Attributen rechnen.
Danke
 
Wenn zGeschwindigkeit ein Attribut derselben Klasse ist, mit der du bremse() aufrufst, dann sollte das eigentlich gehen… ???:L Zeig vielleicht mal den ganzen Code inclusive Fehlermeldung vom Compiler.

Übrigens ergibt ein als private markierter Getter (wie hier geschwindigkeit()) nicht besonders viel Sinn. Getter sind nämlich dazu da, damit man sie auch von woanders aus aufrufen kann, die sollten also public sein.
 
Man solle obwohl man sich in der selben Klasse befindet über entsprechende getter auf die memberzugreifen.

Vor allem, weil die womöglich mehr machen als nur ein return (e.g. Nullsave sind)

es muss private und nicht privat heißen ansonsten sehe ich kein Fehler.

=> Stacktrace?
 
Java:
   this.setzeGeschwindigkeit(this.geschwindigkeit() * 0.999);

ich schätze hier liegt mind. 1 Fehler 🙂

ein Integer ist ein Ganzzahliger wert, wenn du was *0,999 rechnest wirstu eig sogut wie NIE einen ganzzahligen wert bekommen. Du könntest statt einen int einfach double nehmen , dann sollte das gehn.

beispiel :

100 * 0,999 = 99,9 -> Nicht ganzzahlig -> integer nur ganze zahlen -> error
 

Zurück
Oben