0 Daumen
2,1k 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
 
Beste Antwort
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 !!!

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community