Java Übung & Lösung: Variablen anlegen und Zugriff im Java Programm
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.
- Lege dazu eine Klasse Variablenzugriff an.
- Deklariere eine Instanzvariable, namens „zaehlerInstanz“.
Der Wertebereich dieser Variablen soll eine ganze Zahl sein.
- Deklariere eine zweite Variable.
Diese soll allerdings eine Klassenvariable sein.
Nenne diese „zaehlerKlasse“.
Der Datentyp soll ebenfalls dem einer ganzen Zahl entsprechen.
- Im parameterlosen Konstruktor der Klasse „Variablenzugriff“ sollen beide Variablen um eins erhöht werden.
- Außerdem sollen in der Klasse drei Methoden implementiert werden.
- Die Instanzmethode „zaehleInstanz“ soll den Wert der Instanzvariable zurückgeben.
- Die zweite Methode ist eine statische Methode, namens „zaehleKlasse“.
Diese gibt dann den Wert der Klassenvariable zurück.
- Die dritte Methode ist die main-Methode.
Innerhalb der main-Methode werden zwei Objekte der Klasse erzeugt.
Nenne diese Objekte „zaehlerEins“ und „zaehlerZwei“.
An diesen Objekten kannst du dann die Instanzmethode „zaehleInstanz“ aufrufen.
- Die main-Methode führt außerdem die zweite Methode „zaehleKlasse“ aus.
- Lass dir die Rückgabewerte der Methoden auf der Konsole anzeigen.
- Welchen Rückgabewert hat die Instanzvariable für das erste Objekt?
- Welchen Rückgabewert hat die Instanzvariable für das zweite Objekt?
- Welchen Rückgabewerte hat die Klassenvariable nachdem beide Objekte erzeugt wurden?
So sieht die Lösung zu dieser Java Übung aus.
Als Erstes legst du die Klasse an.
Achte beim Klassennamen auf die Namenskonvention. (VariablenZugriff)
Innerhalb der Klasse legst du dann die beiden Variablen und den parameterlosen Konstruktor an.
Und so sieht der Code aus.
public class VariablenZugriff {
int zaehlerInstanz; //Objektvariable vom Datentyp Integer
static int zaehlerKlasse; // Klassenvariable vom Datentyp Integer
public VariablenZugriff(){ //parameterloser Konstruktor
zaehlerInstanz=zaehlerInstanz+1; //Instanzvariable wird um eins erhöht
zaehlerKlasse=zaehlerKlasse+1; //Klassenvariable wird um eins erhöht
}
}
Als nächstes kannst du die Instanzmethode „zaehleInstanz“ und „zaehleKlasse“ implementieren.
public class VariablenZugriff {
int zaehlerInstanz; //Objektvariable vom Datentyp Integer
static int zaehlerKlasse; // Klassenvariable vom Datentyp Integer
int zaehleInstanz(){ //Objektmethode mit Rückgabetyp Integer
return zaehlerInstanz; //Rückgabe der Objektvariable
}
static int zaehleKlasse(){ //Klassenmethode Rückgabetyp Integer
return zaehlerKlasse; //Rückgabe der Klassenvariable
}
public VariablenZugriff(){//parameterloser Konstruktor
zaehlerInstanz=zaehlerInstanz+1;//Instanzvariable wird um eins erhöht
zaehlerKlasse=zaehlerKlasse+1;//statische Variable wird um eins erhöht
}
}
Im nächsten Schritt implementierst du noch die main-Methode.
Dann erzeugst du beide Objekte.
Innerhalb der Klammern der System.out.println()-Anweisung findet der jeweilige Methodenaufruf statt.
public class VariablenZugriff {
int zaehlerInstanz; //Instanzvariable vom Datentypen Integer
static int zaehlerKlasse; // statische Variable vom Datentyp Integer
int zaehleInstanz(){ //Objektmethode mit Rückgabetyp Integer
return zaehlerInstanz; //Rückgabe der Objektvariable
}
static int zaehleKlasse(){ //Klassenmethode Rückgabetyp Integer
return zaehlerKlasse; //Rückgabe der Klassenvariable
}
public VariablenZugriff(){//parameterloser Konstruktor
zaehlerInstanz=zaehlerInstanz+1;//Instanzvariable wird um eins erhöht
zaehlerKlasse=zaehlerKlasse+1;//statische Variable wird um eins erhöht
}
public static void main(String[] args) {
VariablenZugriff zaehlerEins = new VariablenZugriff();//Objekt zaehlerEins wird erzeugt
VariablenZugriff zaehlerZwei = new VariablenZugriff();//Objekt zaehlerZwei wird angelegt
System.out.println(zaehlerEins.zaehleInstanz());//Konsolenausgabe für Objekt zaehlerEins
System.out.println(zaehlerZwei.zaehleInstanz());//Konsolenausgabe für Objekt zaehlerZwei
}
}
Jetzt kannst du die ersten beiden Fragen zur Aufgabe beantworten.
Die Instanzvariablen für die Objekte „zaehlerEins“ und „zaehlerZwei“ ist jeweils Eins.
Kommen wir zur statischen Variable.
public class VariablenZugriff {
int zaehlerInstanz; //Instanzvariable vom Datentypen Integer
static int zaehlerKlasse; // statische Variable vom Datentyp Integer
int zaehleInstanz(){ //Objektmethode mit Rückgabetyp Integer
return zaehlerInstanz; //Rückgabe der Objektvariable
}
static int zaehleKlasse(){ //Klassenmethode Rückgabetyp Integer
return zaehlerKlasse; //Rückgabe der Klassenvariable
}
public VariablenZugriff(){//parameterloser Konstruktor
zaehlerInstanz=zaehlerInstanz+1;//Instanzvariable wird um eins erhöht
zaehlerKlasse=zaehlerKlasse+1;//statische Variable wird um eins erhöht
}
public static void main(String[] args) {
VariablenZugriff zaehlerEins = new VariablenZugriff();//Objekt zaehlerEins wird erzeugt
VariablenZugriff zaehlerZwei = new VariablenZugriff();//Objekt zaehlerZwei wird angelegt
System.out.println(zaehlerEins.zaehleInstanz());//Konsolenausgabe für Objekt zaehlerEins
System.out.println(zaehlerZwei.zaehleInstanz());//Konsolenausgabe für Objekt zaehlerZwei
System.out.println(zaehleKlasse());//Konsolenausgabe der statischen Variablen
}
}
Die statische Variable hat den Wert zwei.
Worin besteht der Unterschied zwischen den Variablen?
Du hast innerhalb der main Methode zwei Objekte angelegt.
Du hast somit zweimal den parameterlosen Konstruktor aufgerufen.
Im Konstruktor wurde somit zweimal der Wert der Instanzvariable um eins erhöht.
Doch der Wert war für beide Instanzen jeweils eins?
Warum?
Jedes Objekt hat seine eigene Instanzvariable.
Das bedeutet, dass die Variable „zaehlerInstanz“ für das Objekt „zaehlerEins“ eine ganz andere ist, als für „zaehlerZwei“.
Du kannst somit für jedes Objekt die Instanzvariable unterschiedlich belegen.
Jede Instanzvariable kann je nach Objekt einen unterschiedlichen Wert zugewiesen bekommen.
Somit ist es möglich zum Beispiel Menschobjekte mit unterschiedlichen Größen, Gewichten usw. anzulegen.
Bei den Klassenvariablen funktioniert dies nicht.
Du hast gesehen, dass wir diese Variable im Konstruktor erhöht haben.
Und diese Variable beträgt zwei.
Falls du jetzt noch mehr Objekte anlegst, wird der Konstruktor öfter aufgerufen.
Dadurch könnte der Wert der Klassenvariable auf drei, vier usw. steigen.
Somit wird klar, dass Klassenvariablen nicht objektspezifisch sind.
Klassenvariablen stehen allen Objekten zur Verfügung.
Die vielseitigen Möglichkeiten für den Einsatz von Klassenvariablen habe ich in einem Beitrag beschrieben.
Falls du jetzt Lust hast mehr über Variablen zu erfahren, dann besuche die Übersichtsseite zu den Java-Variablen.
Ähnliche Beiträge
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 Programmierung, Java Variablen
Stell dir vor: Du hast erfolgreich dein erstes Programm für die Personalabteilung aufgesetzt. Du hast deine ersten 1000 Datensätze schön sauber angelegt. Und nun kommt dein Kollege und überschreibt die Vornamen der ersten 100 Mitarbeitern. Na schöne Sch…. Wie kann das passieren? Wie kann man das verhindern? Du brauchst eigentlich […]
Schlagwörter: Java Instanzen, Java Klasse, Java Übungen
In dieser Java Übung, wirst du ein Objekt erstellen.
Schlagwörter: Java Programmierung, Java Variablen
Lass uns über die Lebensdauer einer lokalen Variablen sprechen. Warum ausgerechnet die Lebensdauer? Alle Java Variablen, unterscheiden sich in folgenden Punkten: wo diese deklariert werden können, wie du diese aufrufen kannst, welchen Bereich diese abdecken, und Ihre Lebensdauer Und eine lokale Java Variable hat eine relativ kurze Lebensdauer. Schauen wir […]
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 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 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 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 Instanzen, Java Klasse, Java Programmierung, Java Variablen
Ja, ich fange sämtliche Artikel so an. Und du weißt es mittlerweile. Aber die Java Klassen stellen Baupläne für die Objekte dar, welche du erschaffen willst. Und in so einem Bauplan oder einer Gebrauchsanweisung brauchst du zwingend bestimmte Eigenschaften. Ich habe dir ja im letzten Artikel gezeigt, wie du eine […]
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 Ü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 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 Ü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 Ü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 Arrays, Java Übungen
Die ist die zweite Java Übung zu Java Arrays.
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 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 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 Ü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 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 Ü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 lernst du, wie du in Java Arrays anlegst.
Schlagwörter: Java Übungen
In dieser Java Übung geht es noch einmal um das switch case statement.
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 Instanzen, Java Klasse, Java Programmierung, Java Variablen
Bei der Java Programmierung unterscheidet man drei Arten von Variablen. Als erste Gruppe sind die lokalen Variablen zu nennen. Auf diese gehe ich in einem separaten Artikel ein. Mich interessieren die zwei anderen Variablentypen. Zum einen existieren Klassenvariablen. Und dann sind da noch die Instanzvariablen. Wo liegt der Unterschied zwischen […]
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.
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 Programmierung, Java Variablen
Ich liebe Mathe. In der Biographie „Der Mann, der die Zahlen liebte“, stellt Paul Hoffmann das Mathematikgenie Paul Erdös vor. Erdös war eines der größten Genies des 20 Jahrhunderts. Er arbeitete mit zahlreichen Wissenschaftlern zusammen und verfasste durchschnittlich mehr Publikationen im Jahr, als andere Mathematiker im ganzen Leben. Da Erdös […]
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: 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 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 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.
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 Ü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 […]