Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- getter und setter (http://www.informatikerboard.de/board/thread.php?threadid=2111)
Geschrieben von Erstsemester am 26.01.2015 um 09:33:
getter und setter
Meine Frage:
Hey Leute :-)
Könntet ihr mir bitte das mit den getter und setter - Methoden kurz erklären? Sprich, wenn ich eine Methode habe die private ist.
Meine Ideen:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
|
package getterundsetter;
public class getterundsetter
{
public static void main (String[]args)
{
Multiplikation neu = new Multiplikation();
neu.drucken(5);
}
}
class Multiplikation
{
int Zahl = 5;
private void drucken(int zahl)
{
System.out.println("Test für private-Modifier");
}
void setZahl (int zahl)
{
this.Zahl = zahl;
}
public int getZahl ()
{
return Zahl;
}
}
|
|
Hier findet er leider die Methode drucken nicht :-(
Geschrieben von Karlito am 26.01.2015 um 10:01:
Hallo Erstsemester,
getter und setter dienen der
Datenkapselung. Die Datenkapselung gewährleistet, dass ein Objekt nicht von außen unkontrolliert manipuliert werden kann. Im Normalfall werden alle Felder als private oder protected gekennzeichnet und sind danach nur noch über getter und setter manipulierbar. Dies wird im Normalfall mit allen Feldern gemacht, egal ob nötig oder nicht.
Weiterhin wird die Sichtbarkeit private dazu verwendet, Methoden, welche Interna des Objektes verwalten nach außen zu verbergen. Bei protected ist es so, dass man einem Programmierer, welcher von der Klasse erbt, die Möglichkeit geben will, auf die protected-Member zuzugreifen bzw. diese zu überschreiben.
Die Methode drucken ist als private gekennzeichnet. Daduch ist sie von außen nicht erreichbar. Der Zugriff aus einer anderen Klasse muss also fehlschlagen.
Gruß,
Karlito
Geschrieben von Erstsemester am 26.01.2015 um 10:04:
Vielen Dank für deine Antwort.
Was müsste ich jetzt in meinem Programm ändern, damit ich von außen auf die Methode zugreifen kann?
Geschrieben von Karlito am 26.01.2015 um 10:27:
Na einfach die drucken-Methode public machen.
Gruß,
Karlito
Geschrieben von Erstsemester am 26.01.2015 um 14:51:
Achso, sorry, ich hätte sagen müssen, dass gerade die drucken-Methode private sein soll :-). Deshalb auch die getter und setter-Methoden um darauf zugreifen zu können :-)
Geschrieben von eulerscheZahl am 26.01.2015 um 15:22:
Dann brauchst du einen eine public Methode, die drucken aufruft, etwa so:
| code: |
1:
2:
3:
|
public void tuDrucken() {
drucken(this.Zahl);
} |
|
Nebenbei:
Es ist in Java üblich, Klassennamen groß zu schreiben (
Getterundsetter) und Variablen klein (
zahl).
Geschrieben von Erstsemester am 26.01.2015 um 18:53:
Danke Euch beiden
Forensoftware: Burning Board, entwickelt von WoltLab GmbH