0 Daumen
3,3k Aufrufe

Klasse X und Klasse Y sind gegeben. Klasse Y möchte auf die Attribute und Methoden von Klasse X zugreifen.

Klasse X steht zum Beispiel folgendes:

String x;
int a;

Wenn da kein public steht, wie soll denn ein erstelltes Objekt in der Klasse Y darauf zugreifen?

Avatar von

1 Antwort

+1 Daumen
Wenn da kein public steht, wie soll denn ein erstelltes Objekt in der Klasse Y darauf zugreifen?

Über sogenannte Akzessor-Methoden (Getter und Setter). Es hat schon seinen Sinn, dass man auf private Objektvariablen/Attribute nicht zugreifen kann.

Gegeben sei Die Klasse Human:

public class Human  {

private String name;

private int age;

public Human(final String name, final int age){
this.name = name;
this.age = age;
}

@Override
public String toString(){
return name + " (" + age + ")";
}
}

Um auf die Objektvariablen name und age zugreifen zu können, werden Getter (man holt sich eine Variable) und Setter (man modifiziert eine Objektvariable) benötigt. Diese sehen wie folgt aus:

 // Getter
public int getAge(){
return age;
}

// Getter
public String getName(){
return name;
}

// Setter
public void setName(String name){
this.name = name;
}

Avatar von

Wenn man eine zweite Klasse hätte und dort folgenden Konstruktor:

Human x=new Human();

Würde das hier funktionieren: x.age=10;

? Oder braucht man diese Getter/Setter..?

? Oder braucht man diese Getter/Setter..?

Wenn age private ist, brauchst Du Getter/Setter. Wenn age final ist, brauchst Du keinen Setter.

Ah okay :) Aber wenn vor age nichts steht? Das heißt private dann oder?

Das heißt private dann oder?

Nein, protected.

Vielen Dank für deine Hilfe !!!

Made by a lovely Community