Java Übung & Lösung zur Datenkapselung: Programmzugriff durch Methoden kontrollieren
Schlagwörter: Java Methoden, Java Übungen


Ein wesentlicher Bestandteil im Konzept der objektorientierten Programmierung ist die Datenkapselung.
Und um Datenkapselung soll es in dieser Java Übung gehen.
Stell Dir vor, du hast ein Computerprogramm entwickelt.
Dieses Computerprogramm verlangt vom Nutzer gewisse Eingaben.
Der User soll Daten wie Name, Alter, Geburtsjahr usw. eingeben.
Und diese Daten sollen bevor sie im System übernommen werden, geprüft werden.
Und dies machen wir jetzt.
Erstelle eine Klasse namens „NutzerEingaben“.
Lege in dieser Klasse eine Instanzvariable für das Geburtsjahr des Nutzers an.
Lege eine zweite Klasse für den Programmstart an.
Die Programmstart-Klasse darf nicht direkt auf die Instanzvariablen zugreifen.
Stattdessen bietest du den Zugriff auf das Geburtsjahr indirekt über getter und setter Methoden an.
Beim Methodenaufruf wird dieses Geburtsjahr überprüft.
Das Geburtsjahr darf zwischen 1900 und 2016 sein.
Ansonsten kommt es zur Fehlermeldung.
Du fängst somit Falscheingaben ab.
Also los geht’s
Viel Spass bei dieser Java Übung.
Die Lösung zur Java Übung erfolgt in drei Schritten
Beginne mit der Klasse „NutzerEingaben“.
So sieht diese aus.
public class NutzerEingaben {
private int geburtsJahr; //Außerhalb der Klasse nicht verfügbar
}
Die Instanzvariable erhält den Access Modifier private.
Dadurch verwehrst du den Zugriff von außen.
Jetzt noch die Programmstart-Klasse
public class ProgrammStartNutzerEingaben {
public static void main(String[] args) {
NutzerEingaben nutzer = new NutzerEingaben();
nutzer.geburtsJahr; //das funktioniert nicht
}
}
Du siehst, dass du eine Fehlermeldung bekommst, wenn du auf die Instanzvariable zugreifen möchtest.
Deshalb musst du den Zugriff jetzt indirekt über Methoden anbieten.
Schritt 2: Biete einen indirekten Zugriff über getter und setter Methoden an
Mit der sogenannten set-Methode weist du den Wert der Instanzvariable zu.
Und mit der getter Methode bekommst du den Wert zurückgeliefert.
public class NutzerEingaben {
private int geburtsJahr; //Außerhalb der Klasse nicht verfügbar
public int getGeburtsJahr() {
return geburtsJahr; //Rückgabe der Instanzvariablen
}
public void setGeburtsJahr(int geburtsJahr) {
this.geburtsJahr = geburtsJahr; //Zuweisung der Instanzvariablen
}
}
Zu diesem Zeitpunkt hast du vom ganzen Konstrukt noch keinen Nutzen.
Klar, du kannst jetzt nicht mehr ohne weiteres auf das Geburtsjahr zugreifen.
Stattdessen kannst du über den setter einen Wert festlegen.
Na und – was bringt es?
Indem du die Werteingabe überprüfen lässt, kannst du falsche Nutzereingaben abfangen.
Schritt 3 Füge eine bedingte Zuweisung in die Methode ein
public class NutzerEingaben {
private int geburtsJahr; //Außerhalb der Klasse nicht verfügbar
public int getGeburtsJahr() {
return geburtsJahr; //Rückgabe der Instanzvariablen
}
public void setGeburtsJahr(int geburtsJahr) {
if (geburtsJahr>=1900 && geburtsJahr <=2016){
this.geburtsJahr = geburtsJahr; //Zuweisung der Instanzvariablen
}
else {
System.out.println("Bitte überprüfe deine Eingabe!");
}
}
}
Was ist passiert?
Im Setter wurde eine bedingte Zuweisung implementiert.
Wenn die Benutzereingabe unter einem Wert von 1900 und über 2016 ist, erfolgt eine Fehlermeldung.
Wenn aber das Geburtsjahr zwischen 1900 und 2016 ist, dann wird dieser Wert der Instanzvariablen zugewiesen.
So kannst du zukünftige Falscheingaben sofort abfangen.
Cool oder?
Jetzt kannst du den vorübergehenden Code einmal testen.
Erzeuge innerhalb der main Methode ein Objekt.
Und dann führe die setter Methode einmal am Objekt aus.
Durch die System.println-Anweisung kannst du dir den Rückgabewert der getter-Methode anzeigen lassen.
Und dies wäre der Code:
public class ProgrammStartNutzerEingaben {
public static void main(String[] args) {
NutzerEingaben nutzer = new NutzerEingaben(); //neues Objekt wird angelegt
nutzer.setGeburtsJahr(1899); //Zugriff auf Instanzvariable über den setter
System.out.println(nutzer.getGeburtsJahr()); //Rückgabewert des getters wird angezeigt
}
}
Wenn du dieses Beispiel mit der Zahl 1899 nachvollziehst…..
Erhältst du die Fehlermeldung auf der Konsole
Und du erhältst 0 als Rückgabewert der Instanzvariablen.
Warum null?
Null ist der default Wert einer Integervariablen.
Dies bedeutet, dass der Instanzvariablen kein Wert zugewiesen wurde.
Und genau das wollten wir.
Übergib der Methode jetzt einmal eine Zahl zwischen 1900 und 2016.
Und … was passiert?
Der Wert wurde der Instanzvariablen zugewiesen.
Alles in Ordnung.
Ähnliche Beiträge
Schlagwörter: Java Operatoren, Java Übungen
In dieser Java Übung geht es darum, die letzte Ziffer einer Zahl zu finden. Was meine ich damit? Die letzte Stelle der Zahl 278 ist acht. Die letzte Stelle der Zahl 5432 ist zwei.
Schlagwörter: Java Instanzen, Java Klasse, Java Übungen
In dieser Java Übung, wirst du ein Objekt erstellen.
Schlagwörter: Java Übungen
In dieser Java Übung möchte ich, dass du eine Methode schreibst, welche zwei Zahlen entgegennimmt. Und zwar soll die erste Zahl das Jahr sein. Die zweite Zahl soll eine Monatsangabe (1-12) repräsentieren. Was soll die Methode dann machen? Die Methode soll dir die Anzahl der Tage des jeweiligen Monats zurückgeben. […]
Schlagwörter: Java Methoden, Java Programmierung
Was du vereinbarst, das bekommst du zurück. Ach wäre es schön, wenn alles im Leben so funktionieren würde. Aber zum Glück funktioniert dieses Prinzip bei deinen Java Methoden. Denn du kannst den Rückgabetypen im Methodenkopf vereinbaren. Doch bevor ich dir zeige, wie du den Rückgabetypen anlegen kannst…. Lass mich dir […]
Schlagwörter: Java Programmierung, Java Übungen
Alles beginnt mit „Hello World“. Sämtliche Java Bücher beginnen mit diesem ersten Beispiel. Auch die Java Übungen sollen mit diesem ersten Programm starten. Definiere eine Klasse „Hello World“. Implementiere die Main Methode. Die Main Methode soll bei Programmaufruf die Bildschirmanzeige „Hallo Welt“ zurückgeben. Die Lösung zur Java Übung „Hallo Welt“ […]
Schlagwörter: Java Methoden, Java Übungen
In dieser Java Übung geht es um die Wertübergabe in Java Methoden. Schau dir bitte diesen Java Code einmal an und überlege dir, welche Bildschirmausgabe erzeugt wird. Welchen Wert hat die Klassenvariable x?
Schlagwörter: Java Übungen
In dieser Java Übung möchte ich mit dir ein Programm erstellen, welches ein Mathematik-Test oder eine Mathe-Olympiade simuliert. Du kennst das vielleicht noch aus der Schule. Matheolympiade- Da wurden aus allen vier Grundrechenarten, Aufgaben formuliert. Die Schüler mussten diese Aufgaben lösen. Die Lehrer kontrollierten die Lösungen. Und der Schüler, welcher […]
Schlagwörter: Java Übungen
In dieser Java Übung möchte ich mit dir Zahlen runden. Ich bitte dich deshalb: Erstelle eine Klasse „RundenUebung“. Lege dann eine statische Methode rundeZahl() an. Diese erwartet zwei Parameter. Parameter 1 ist die Kommazahl, welche gerundet werden soll. Als zweiten Parameter wird eine ganze Zahl übergeben, welche die Nachkommastelle – […]
Schlagwörter: Java Methoden, Java Übungen
In dieser Java Übung möchte ich mit dir zusammen den Flächeninhalt eines Rechteckes berechnen. Zur Erinnerung der Flächeninhalt wird berechnet, indem du die Länge mit der Breite multiplizierst.
Schlagwörter: Fakultät, Java Übungen
In dieser Java Übung geht es um die Fakultät aufeinander folgender Zahlen. Für alle, bei denen der Mathe-Unterricht genauso lange her ist, wie bei mir: Die Fakultät ist das Produkt aufeinander folgender natürlicher Zahlen. Zum Beispiel: Die Fakultät von 2 ist: 1*2=2 Die Fakultät von 5 ist: 1*2*3*4*5=120 So – […]
Schlagwörter: Java Methoden, Java Programmierung
Im Mittelalter war es üblich, dass Könige oder Adlige Briefe durch ein Siegel verschlossen. Das Siegel hatte die Aufgabe den Inhalt des Briefes vor dem gewaltsamen Öffnen zu schützen. Außerdem hatte das Siegel die Aufgabe einen Eigentumsnachweis sicher zu stellen. Und jeder, welcher das Siegel des Königs sah, wusste: „Das […]
Schlagwörter: Java Instanzen, Java Klasse, Java Methoden, Java Programmierung
In einen der letzten Beiträge habe ich dir gezeigt, wie du eine Klasse anlegen kannst. Ich habe die Klasse „Mensch“ oder „Human“ angelegt und wir haben die erste Instanzvariable implementiert. Dein Code sollte jetzt so aussehen: public class Human { int size=156;//size in centimeter } In diesem Beitrag werde ich […]
Schlagwörter: Java Übungen
In dieser Java Übung möchte ich, dass du den größten gemeinsamen Teiler zwei Zahlen ermittelst. Ich möchte, dass du das Ganze mit einer while-Schleife umsetzt. Und wie? Du legst eine neue Klasse „GGT“ (größter gemeinsamer Teiler) an. In diese Klasse implementierst du eine Klassenmethode „berechneGGT“. Diese erwartet zwei Argumente vom […]
Schlagwörter: Java Arrays, Java Übungen
Die ist die zweite Java Übung zu Java Arrays.
Schlagwörter: Java Arrays, Java Übungen
In dieser Java Übung lernst du, wie du in Java Arrays anlegst.
Schlagwörter: Java Methoden, Java Speicherverwaltung
Java Methoden werden beim Aufruf gestapelt. Und jedes Element auf dem Stapel nimmt Speicherplatz weg. Und manchmal ist es so, dass der Stapel richtig hoch wird und dann…. Ja was passiert eigentlich dann? Betrachten wir einmal ein Computerspiel. Irgendeines. In diesem Computerspiel gibt es Vögel, welche abgeschossen werden sollen. Was […]
Schlagwörter: Java Methoden, Java Programmierung
Du hast die ersten Java Methoden erstellt. Doch wie greifst du jetzt auf diese zu? Wie kannst du diese Methoden in einer anderen Klassen aufrufen? Welcher Unterschied, hinsichtlich des Methodenaufrufes, besteht eigentlich zwischen deinen Java Methoden? Diese Fragen möchte ich gern in diesem Beitrag beantworten. Möglichkeiten, um Methoden in Java […]
Schlagwörter: Java Methoden, Java Übungen
In dieser Java Übung möchte ich den Inhalt der letzten Lektionen wiederholen. Ich möchte den Unterschied zwischen Klassen- und Instanzmethoden und zwischen Variablen demonstrieren.
Schlagwörter: Java Methoden
Java Methoden hauchen deinem Java Programm Leben ein. Ohne eine Methode würde deine Java Klasse ein starres Konstrukt sein. Deine Objekte hätten Eigenschaften. Aber sie könnten nichts machen. Und das wäre eine trostlose Welt. Java Methoden sorgen also dafür, dass Objekte interagieren. Methoden bestehen aus bestimmten Bausteinen. Und diese Bausteine […]
Schlagwörter: Java Methoden, Java Programmierung
Du kennst das noch. Kopfrechnen und zwar auf Zeit. So etwas ist das Standardprogramm in den Schulklassen 1 bis 5. Irgendwann, in Klasse 6 oder 7, kommt der Taschenrechner ins Spiel und Kopfrechnen ist aus dem Schulalltag gestrichen. Schade eigentlich. Dabei kann man diese Disziplin auch wunderbar in kleinen Spielen […]
Schlagwörter: Java Instanzen, Java Methoden, Java Programmierung
Du ahnst es. Im letzten Artikel hast du von mir erfahren, wie du ein Java Objekt erstellst und wie du dann auf die Instanzvariablen des Objektes zugreifen kannst. So kannst Instanzmethoden für deine Java Objekte nutzen Bei den Instanzmethoden funktioniert es auch so. Du erschaffst beliebig viele Java Objekte und […]
Schlagwörter: Java Übungen
In dieser Java Übung geht es um Zahlen. Um genau zu sein…. Es geht um gerade und ungerade Zahlen. Zur Erinnerung. Gerade Zahlen sind Zahlen, welche durch zwei teilbar sind. Ungerade Zahlen sind alle Zahlen, welche nicht glatt durch zwei teilbar sind. Ich möchte, dass du eine Klasse „GeradeZahlen“ anlegst. […]
Schlagwörter: Java Methoden, Java Programmierung
Auf zum ersten Java Programm. Vielleicht fragst du dich jetzt gerade: Na, was haben wir denn bisher gemacht? War das etwa kein Java Programm? Wir haben bisher nur eine Klasse „Human“ für ein zuküntfiges Mensch-Objekt erstellt. Diesem Objekt haben wir eine Instanzvariable, namens size (Größe) zugeordnet. Und wir haben eine […]
Schlagwörter: Java Methoden, Java Polymorphie, Java Vererbung
In Deutschland entstehen jeden Tag tolle Geschichten. So wie diese hier…. Die größte Turmuhr der Welt, die Makkah Clock, steht in Saudi – Arabien. Und zwar direkt in Mekka. Hier ein paar Eckdaten zur Uhr: Höhe des Turmes 601 m. Das Ziffernblatt der Turmuhr hat einen Durchmesser von 43 Meter […]
Schlagwörter: Java Datentyp, Java Schleifen, Java Übungen
In dieser Java Übung werden wir uns die Zeichen des Character Datentypen näher anschauen. Die einzelnen Zeichen sollen auf der Konsole ausgegeben werden. Und wie? Das ganze sollst du mit einer For Schleife machen. Erstelle deshalb eine Klasse „CharZeichen“. In dieser Klasse implementierst du dann eine Klassenmethode, namens „gibZeichen“. Und […]
Schlagwörter: Java Übungen
In dieser Java Übung geht es noch einmal um das switch case statement.
Schlagwörter: Java Methoden, Java Programmierung
Ich lege gleich los…. Schau dir diesen Code einmal an. Welche Zahl wird wohl auf der Bildschirmanzeige zurückgegeben? public class MethodenWertUebergabe { static int verdoppele (int i){ i=i*2; return i; } public static void main(String[] args) { int i = 2; verdoppele(i); System.out.println(i); } }
Schlagwörter: Java Instanzen, Java Übungen
In dieser Java Übung geht es um Mahnungen. Ja, Mahnungen zu Rechnungen.
Schlagwörter: Java Schleifen, Java Übungen
In dieser Java Übung geht es um Schleifen. Und zwar möchte ich, dass du eine virtuelle Geldruckmaschine erstellst. Was meine ich damit? Du gibst in der Konsole einen x-beliebigen Betrag ein und das Programm gibt dir virtuelle Geldscheine zurück. Ein Beispiel: Du gibst die Zahl 400 ein. Dann liefert dir […]
Schlagwörter: Java Keyword, Java Methoden, Java Programmierung
Jetzt machen wir Nägel mit Köpfen. Dieses Sprichwort stammt aus den Anfängen des Industriezeitalters. Denn früher wurden Nägel nicht industriell, sondern per Hand gefertigt. Und da kam es schon einmal vor, dass versehentlich Nägel ohne Kopf produziert wurden. Was blieb ist das Sprichwort „Nägel mit Köpfen“ Und dieses steht sinngemäß […]
Schlagwörter: Java Instanzen, Java Übungen
In dieser Java Übung geht es um Objekte und es geht um Referenzvariablen. Es geht um den Zugriff auf Java Objekte durch mehr als eine Referenzvariable. Erstelle dazu eine Java Klasse, namens „ReferenzTest“. Dieser Klasse führt drei Instanzvariablen a, b und c, vom Datentyp Integer.
Schlagwörter: Java Strings, Java Übungen
In dieser Java Übung möchte ich, dass du ein Programm erstellst, welches ein eingegebenes Passwort kontrolliert.
Schlagwörter: Java Übungen
In dieser Java Übung sollst du mit Hilfe des switch case Statements die Eintrittspreise für ein Rockkonzert bestimmen lassen.
Schlagwörter: Java Übungen
In dieser Java Übung geht es vor allem um Bildschirmeingaben. Du wirst lernen, wie du Konsoleneingaben einliest und diese in Methoden einfließen lassen kannst.
Schlagwörter: Java Arrays, Java Übungen
In dieser Java Übung soll ein Würfelspiel simuliert werden. Lege eine Klasse namens, Würfelspiel an. Diese Klasse enthält eine statische Methode, namens würfeln(). Diese Methode erwartet einen Parameter vom Datentyp Integer, namens „anzahlWuerfe“. Diese Variable/Parameter repräsentiert die Anzahl der Würfe. Nachdem der Methode die Anzahl der Würfe übergeben wurde, soll […]
Schlagwörter: Java Instanzen, Java Methoden, Java Übungen
In dieser Java Übung möchte ich dir zeigen, dass du auch in Klassenmethoden auf Objekte und deren Instanzvariablen zugreifen kannst. Schau dir dazu einmal diesen Java Code an. public class Umwandlung { private int x; public int getX() { // getter Methode return x; } public void setX(int x) { […]
Schlagwörter: Java Arrays, Java Übungen
Diese umfangreiche Java Übung ist eine weitere Übung zu Java Arrays. Ich habe dafür schon ein kleines Beispiel vorbereitet. Gegeben ist ein Array, welches Integer Werte speichert.
Schlagwörter: Java Schleifen, Java Übungen
In dieser Java Übung geht es darum, dass du mittels Schleifen, Zahlen umkehrst. Was meine ich damit? Die Zahl 71 umgekehrt, ergibt die Zahl 17. Und genau so ein kleines Java Programm sollst du jetzt schreiben.
Schlagwörter: Java Methoden, Java Programmierung
Und wenn sie nicht gestorben sind, dann ….. So oder so ähnlich enden viele Kindermärchen. Oder wenn ich Millionär wäre, dann würde ich nicht mehr arbeiten. Was haben die beiden Ausdrücke gemeinsam?
Schlagwörter: Java Übungen
In dieser Java Übung geht es darum ein kleines Java-Spiel zu erstellen. Und zwar Zahlen raten. Was kannst du dir darunter vorstellen? Du gibst einen bestimmten Wertebereich an. Zum Beispiel 0 bis 100. Und das Java Programm erstellt eine Zufallszahl in diesem Bereich. Dann fordert dich das Programm auf, die […]
Schlagwörter: Java Keyword, Java Methoden, Java Programmierung
In diesem Artikel möchte ich dir zeigen, wie du Instanzvariablen innerhalb der Java Klasse schützt. Und den Zugriff nur noch indirekt über getter und setter Methoden anbietest. Warum braucht man getter und setter Methoden im Java Programm Stell dir vor. Du hast ein Programm zur Lagerverwaltung geschrieben. Dieses Programm dient […]
Schlagwörter: Java Übungen, Java Variablen
In dieser Java Übung soll der Unterschied zwischen Instanz- und Klassenvariablen demonstriert werden. Außerdem werde ich dir den Zugriff über Methoden zeigen.
Schlagwörter: Java Klasse, Java Methoden, Java Strings
In einen der letzten Beiträge haben wir darüber gesprochen, dass Java Strings – Objekte sind. Dass Strings in allen Programmen äußerst häufig vorkommen Und dass sich deshalb Referenzvariablen String-Objekte im String Pool teilen. Das Konzept hinter dem String-Pool ist die Teilung der Ressourcen. Und das bedeutet: Weniger Objekte – mehr […]
Schlagwörter: Java Schleifen, Java Übungen
In dieser Java Übung möchte ich, dass du eine Methode zum Zählen von Kommastellen schreibst. Lege dazu eine Klasse „KommaZahl“ an. Diese Klasse enthält die statische Methode „zaehleKommaStellen“, welche eine Kommazahl als übergebenen Parameter erwartet.