Methoden In einer Klasse ein Attribut aus einer anderen Klasse setzen

lukasS

Mitglied
Hallo,

ich bin ein absoluter Anfänger was programmieren bzw. java Programmieren angeht und bräuchte deshalb dringend eure Hilfe. Ich denke die Aufgabe ist eigentlich ganz einfach und wahrscheinlich eine Grundlage bei der Java-programmierung.
Ich habe folgenden Aufgabe:

Ich habe eine Klasse "Schule" mit zwei private attributen.
Nun habe ich eine andere Klasse "Profile". In der Klasse Profile soll ich eine Möglichkeit zum Setzen der Schule hinzufügen.

Ich schreibe mal meinen java code:

public class School {

/** name of the school */
private String name;

/** address of the school */
private String address;


public School(String name, String address) {
this.name = name;
this.address = address;
}

/**
* Gibt den Namen der Schule zurück.
* @return den Namen der Schule.
*/

public String getName() {
return name;
}

/**
* Gibt die Adresse der Schule zurück.
* @return die Adresse.
*/

public String getAddress() {
return address;
}



SO NUN die Klasse Profile:

public class Profile {

/** the person to which this profile belongs */
private Person owner;

/** current status of this profile's owner */
private Message status;

public School setSchool(String name, String address){
this.name = name;
this.address = address;

}

}


WAS MACHE ICH NUN FALSCH?
Ich wäre euch sehr dankbar wenn ihr mir weiterhelfen könntet.

gruß lukas
 
Fals du ein Java-Tutorial oder Buch durcharbeitest guck dir mal SETTER/GETTER an. Getter nutzt du ja schon, Setter nicht.

Deine Getter:

Java:
public String getName() {
return name;
}

ergänze um die Setter:

Java:
public void setName(String name) {
this.name = name;
}
 
Java:
this.name = name;
this.address = address;
Du hast in der Klasse Profile halt keine Attribut name und address. Vermutlich solltest du ein Attribut vom Type School einführen in der Klasse Profile. Im setter erzeugst du dann ein neues School Objekt und weißt es der Variablen zu.
Warum hat dein setter eigentlich nen Rückgabewert?
 
ich versteh irgendwie nicht was du meinst.

also wenn ich in der Klasse Profile einfach noch ein Attribut Schule einführen soll hiese es ja dann so....

public School school;

so wie kann ich nun den setter machen? Kannst du vll den code schreiben?
 
Java:
public void setSchool(String name, String address) {
  this.school = new School(name, address);
}
 
Java:
public void setSchool(String name, String address) {
  this.school = new School(name, address);
}

Wieso muss man hier new School schreiben und nicht nur

this.school = school
 
Wenn du
Code:
this.school = school;
schreiben willst, dann muss es ja irgendwo school geben. Das hast du aber in deinem Setter nicht. Es werden ja nur 2 Strings übergeben.

Du kannst den Setter aber auch abändern:
Java:
public void setSchool(School school) {
  this.school = school;
}
 
ah jetzt versteh ich es. Ich hatte ganz am Anfang meine setter Methode auch so nur hatte ich nicht in der Klasse Profile mein Attribut School school stehen gehabt.

Vielen Dank. Du hast mir sehr weitergeholfen
 
Noch eine kurze Frage:

Wenn ich in meiner Klasse Schule 3 Attribute stehen habe

und in meiner Klasse Profile die setter methode so wie du es geschrieben hast lautet:
Java:
public void setSchool(String name, String address) {
  this.school = new School(name, address);
}

wie kann ich das dritte Attribut in die settermethode noch hinzufügen ohne dabei diesen Aufbau zu verändern:

Java:
public void setSchool(String name, String address)
this.school = new School(name, address);

zu verändern??
 

Zurück
Oben