Erste Schritte Probleme mit Attributs-Kopieren-Methode

SandeS

Neues Mitglied
Guten Abend,

ich lerne grad frisch Java, aber hänge gerade an einer Übungsaufgabe und verstehe nicht,wieso mein Lösungsansatz so nicht funktioniert.
__
Aufgabe:
Nachdem ich eine Klasse Email erzeugt habe und dort Konstruktoren für email-Objekte, welche das String Attribut names "text" haben sollen, und Methoden zum Ausgeben und Setzen der werte erzeugt habe, muss ich nun eine Methode erzeugen, die den Text von einer MailA auf den Text einer MailB kopiert.

Die Methode soll auf mailB angewendet werden und den Parameter mailA haben angewendet wird.
Das habe ich bisher:
Java:
publicclass Emails {
    //das ist das Textfeld der Mail
    private String text;

    //Default-Text der Mails
    Emails() {
        text = "Kein Text enthalten.";
    }

    //Wenn text übergeben wird, überschreibt der Konstruktor den Default-Text des erschaffenen Objektes mit dem text
    Emails(String text) {
        this.text = text;
    }

    //damit kann man den text nachträglich verändern
    private void setText(String text) {
        this.text = text;
    }

    //damit kann man den Text ausgeben lassen
    String getText() {
        returntext;
    }

    //das ist der Sorgenkandidat: Ich möchte hier ne Methode beschreiben, die - wie gefordert die mailA als parameter hat und wenn man sie auf eine Email anwendet (sagen wir auf mailB) soll sie deren text auf den text der quelle (hier text der mailA) ändern. Was hängt hier?
    void kopieren (Emails quelle){
        setText(String quelle.text);
    }

    public static void main(String[] args) {
        //Tests um zu gucken ob man neue Emails anlegen kann (erfolgreich)
        Emails mailA = new Emails("Wie geht es dir?");
        Emails mailB = new Emails("Läuft");
        //Test,um zu gucken ob die Methode getText funktioniert(erfolgreich)
        System.out.print(mailA.getText());
        //Test für kopieren-Methode: Funktioniert nicht, da "cannot be resolved for a variable"
        mailB.kopieren(briefA.text);
    }
}
Wäre super, wenn ihr mir Anregungen geben könntet!
Gut möglich,dass ich ziemlich Basic-Sachen noch nicht drauf habe, bin blutiger Anfänger, also nicht an Kritik scheuen bitte, aber nicht vernichtend sein :D
Viele Grüße
 
Zuletzt bearbeitet von einem Moderator:

Maggot

Bekanntes Mitglied
Hallo. Bitte verwende für deinen Code im Forum die [C O D E] tags. Natürlich ohne leerzeichen.

Nun zu deinen Problem:

Musst du nicht mailB.kopieren(mailA.getText()); aufrufen?

Und in der Methode kopieren(String newText) dann einfach deinem text Element das newText zuweißen.
 

strußi

Top Contributor
wie wäre es wenn du einfach mailB.setText( mailA.getText()); aufrufst?

oder wenn du die kopiermethode aufrufen willst/musst
sollte die Methode kopieren so aussehren
Code:
void kopieren( Emails email){
  this.text =email.getText();
}

Tipp: Ich habe eigentlich nur Klassennamen im Singular, aber das ist zweitrangig.
 

SandeS

Neues Mitglied
Danke für die Antworten!
@strußi: ja, ich ich könnte das aufrufen, aber die Aufgabe sagt, ich muß eine Methode bauen :/

Zum Verständnis deines Methoden-Vorschlags:
Du übergibst ein Mail-Objekt der Klasse emails und dann soll der Text des Objektes, auf den die Methode angewandt wird (ist das dann das "this."?) überschrieben werden mit dem Text aus der getter Methode, die wiederum auf das übergebene Objekt angewandt ist?

Mit der Verwendung von "this." bin ich mir noch unsicher... beziehe ich mich dabei auf das Attribut von dem Objekt auf das ich die Methode anwende?
Danke euch!
 

strußi

Top Contributor
also this. ist der zugriff auf die Objektvariable.
du kannst es auch nur über methodenaufrufe machen
Java:
void kopieren( Emails email){
setText( email.getText());
}
das ist dann der ultimative code ^^
 

Neue Themen


Oben