OOP Objekt Methode

Aufgabe: Die Objekt-Operation addieren() erhält als Argument ein DemoKlasse-Objekt obj; sie liefert ein neues DemoKlasse-Objekt zurück, dessen Attributwert die Summe der Attributwerte des aktuellen Objekts und des Objekts obj ist. Das aktuelle Objekt und das Argument obj dürfen nicht verändert werden.

Also: Demoklasse Test(5)
Test.addieren(5); ->Demoklasse obj(5)?
Demoklasse Neu = 10

Ich weiß nicht wie ich das in meinem Code machen kann.

Java:
  DemoKlasse addieren(DemoKlasse obj){
    int neu;
    neu = obj+wert;
    this.wert = obj;
    DemoKlasse Neu = new DemoKlasse(neu);
  }
 
mit dem Getter
wenn du den Wert hast
kannst du dir von deinem Aktuellen Objekt (this) den Wert auch holen
addierst die beiden und erzeugst ein NEUES Objekt mit dem addierten Wert
das dann per return zurückgeben
 
mit dem Getter
wenn du den Wert hast
kannst du dir von deinem Aktuellen Objekt (this) den Wert auch holen
addierst die beiden und erzeugst ein NEUES Objekt mit dem addierten Wert
das dann per return zurückgeben
Da fehlt noch was.
Wie kann ich ein Objekt return(en)?
return Neu?
Java:
  DemoKlasse addieren(DemoKlasse obj){
    int neu;
    obj.getWert();
    this.wert = obj;
    neu = wert + obj.getWert();    
    DemoKlasse Neu = new DemoKlasse(neu);
  }
Wenn du mir den Code verbesserst und ich sehe, wie du das gemacht hast, verstehe ich das sofort.
Ich weiß momentan einfach nicht wie man mit Argumenttypen vom Typ Objekt arbeitet :confused:
 
Wenn du mir den Code verbesserst und ich sehe, wie du das gemacht hast, verstehe ich das sofort.
das glaube ich nicht, weil du dir Grundlagen einfach nicht kannst

Java:
  DemoKlasse addieren(DemoKlasse obj){
    int objWert = obj.getWert();
    int thisWert = this.wert; //braucht man eig nicht
    neu = objWert + thisWert;   
    DemoKlasse objNeu = new DemoKlasse(neu);
    return objNeu
  }
 
das glaube ich nicht, weil du dir Grundlagen einfach nicht kannst

Java:
  DemoKlasse addieren(DemoKlasse obj){
    int objWert = obj.getWert();
    int thisWert = this.wert; //braucht man eig nicht
    neu = objWert + thisWert;  
    DemoKlasse objNeu = new DemoKlasse(neu);
    return objNeu
  }
Danke. Ich probier mal damit klar zu klarzukommen.
 
Und ich würde doch stark dazu raten, dass man sich einmal die Bedeutung der Zugriffsklassen im Detail ansieht!

Natürlich hat eine Klasse Zugriff auf die private Elemente der Klasse und somit kann innerhalb der Klasse DemoKlasse auf alle private Instanzvariablen der Klasse zugegriffen werden. Bitte beachten: Es wird hier nicht über Instanzen gesprochen! Es spielt also keine Rolle, ob die Elemente statisch, in "this" oder in einer anderen Instanz sind.

Somit ist dies natürlich möglich:
Java:
public class DemoKlasse {
  private int wert;

  public DemoKlasse(final int wert) { this.wert = wert; }

  public DemoKlasse addieren(final DemoKlasse obj) {
    return new DemoKlasse(wert + obj.wert);
  }
}
Getter können natürlich verwendet werden aber müssen nicht verwendet werden. Das Verständnis ist z.B. wichtig, wenn es um den Zugriff auf einen rein internen Status, der nicht durch Getter nach außen gegeben wird.

Und diese Zugriffsklassen sind etwas, das man einfach einmal lernen muss. Webseiten dazu gibt es zur Genüge, z.B. https://www.dpunkt.de/java/Die_Sprache_Java/Objektorientierte_Programmierung_mit_Java/39.html
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben