Skip to main content

So kannst du in den Java Klassen Attribute anlegen

Die bisherigen Java Klassen in unserem Einführungsbeispiel besitzen noch keine Attribute.
Das ändern wir und legen diese jetzt an.

In diesem Beitrag erfährst du:

  • Warum Variablen in deinen Klassen eine entscheidende Rolle spielen.
  • Was es bedeutet eine Variable zu deklarieren.
  • Wo du Attribute in den Java Klassen anlegen darfst und wo nicht.
  • Wie du durch die angelegten Eigenschaften, Schablonen für x-beliebig viele Objekte erstellst.


Warum ist dieser Beitrag so wichtig?
Bedenke…..

Heute sind es Attribute in den einzelnen Java Klassen-
Morgen sind es Eigenschaften der daraus erstellten Objekte.

So eine Java Klasse ist immer eine Gebrauchsanweisung für ein Objekt, welches kreiert werden soll.
Wirf einmal einen Blick auf das Java Adventure.

Java Klassen Adventure

Und dann wirf einen Blick auf die Klassen, welches dieses Adventure bereits hat.
Java Klassen des Java Adventures

Welche Variablen könnten die einzelnen Klassen besitzen?
Oder genauer gefragt:
Wenn aus der Heldenklasse irgendwann Objekte erstellt werden- welche Eigenschaften sollten diese Helden haben?

Und mit Eigenschaften meine ich nicht Charaktereigenschaften.
Denke dabei mehr in die Richtung: „Unterscheidungskriterien.“

Die Helden könnten vielleicht so aussehen:

Java-Adventure-Friedhof

Also wodurch unterscheiden sich Helden?
Na klar – es sind Eigenschaften wie:

  • Name
  • Geschlecht
  • Größe
  • Kraft
  • Augenfarbe
  • ….usw.

Und diese Eigenschaften bzw. Unterscheidungskriterien legt man in der entsprechen Klasse fest.

Nochmal:
Denke daran, dass Java Klassen – Baupläne für Objekte sind.

Also könnte doch ein Bauplan für die Heldenklasse in etwa so aussehen:

Java Klassen Bauplan der Heldenklasse

Später werden dann die einzelnen Objekte aus diesem Bauplan erzeugt.
Und dann bekommt jedes Objekt seinen individuellen Wert für jedes einzelne Attribut zugewiesen.
Java Klassen Attribute Bauplan

Mit den Attributen legst du die Ausrichtung für die Java Klassen fest.

Diese Attribute haben viele Namen:

  • Attribute
  • Instanzvariablen
  • Felder
  • Instanzfelder
  • Objektvariablen

Diese Variablen legst du einmal im Bauplan an.
Du weist diesen Attributen aber noch keinen Wert zu.
Schließlich handelt es sich lediglich um einen Bauplan und noch nicht um ein fertiges Objekt.

Erst wenn das Objekt erstellt wird, bekommt jedes einen individuellen Wert.

Stell dir den ganzen Ablauf wie in einem Spiel vor.
Da findest du auch so einen Bauplan oder Schablone.
Am Anfang des Spieles wirst du gefragt:
Männlich oder Weiblich?

Java Klassen Geschlecht wählen

Danach folgt der Name, die Auswahl einer Waffe usw.
Java Klassen Eigenschaften Namen festlegen

Am Ende des Vorganges hast du einen ganz individuellen Helden.
Falls du eine zweite Figur erschaffst, kann diese andere Attribute haben.

Die Grundeigenschaften, wie Geschlecht, Name und Waffe – wurden einmal im Bauplan angelegt.
Und dies ermöglicht dir dann ganz viele individuelle Helden zu bauen.

Und immer wenn du neue Eigenschaften für ein Objekt brauchst.
Zum Beispiel das Gewicht.
Dann legst du diese in der entsprechenden Java Klasse an.
Und alle Objekte können diese neue Eigenschaft nutzen.

Java Klassen Felder anlegen

Somit bietet dir die Objektorientierung einen entscheidenden Vorteil.
Du musst den Code nicht für alle Helden ändern.
Stattdessen änderst du nur den Bauplan (die Klasse).
Und dadurch verändern sich alle Helden.

Und dieses Prinzip kannst du für sämtliche Software nutzen.

Vielleicht in einer Kfz-Zulassung.
Die Attribute könnten sein:

  • Farbe
  • Marke
  • Herstellungsdatum

Java Klassen Bauplan Autos

Aus diesem Bauplan heraus, lassen sich dann individuelle Autos anlegen.

Oder in einer Krankenhausverwaltung:

  • Patientennummer
  • Patientenname
  • Krankheit

Java Klassen Bauplan Krankenhaus

Auch hier gibt es einen Bauplan mit drei Attributen.
Aus diesem Plan heraus lassen sich sämtliche Patienten erstellen.

Diese ganze Objektorientierung lehnt sich somit sehr stark an unser reales Leben an.

So kannst du Attribute in Java Klassen deklarieren.

Das Anlegen der Felder nennt man in der Java Programmierung – deklarieren.
Das spätere Zuweisen der einzelnen Eigenschaftswerte nennt man – initialisieren.

Beim Deklarieren von Variablen stellen sich folgende drei Fragen:

  • Welche Variablen sollen deklariert werden?
  • Wo werden diese deklariert?
  • Wie werden diese deklariert?

Beginnen wir bei Frage eins.
In der Heldenklasse, kannst du nun unzählige Instanzvariablen anbieten.
Für den Anfang reichen drei. 🙂
Und das sind die Instanzvariablen der Heldenklasse:

  • der Name
  • das Alter
  • die Größe

Du kannst nachher noch selbst eigene Instanzvariablen in dieser Klasse deklarieren.
Und zwar nach genau dem gleichen Prinzip, welches ich dir jetzt zeige.

Kümmern wir uns um die Frage:
Wo werden diese deklariert?

Die Variablen bzw. Attribute legst du auf Klassenebene an.

Das bedeutet:
Falls du eine main-Methode oder eine andere Methode in der Klasse anbietest.
Dann darf die Instanzvariable nicht im Rumpf dieser Methode angelegt werden.
Denn so würde die Variable zur Methode gehören.

Die Variable gehört zum Bauplan und somit zur Klasse.
Deshalb musst du Instanzvariablen immer:

  1. außerhalb von Methoden
  2. Innerhalb des Klassenrumpfes anlegen bzw. deklarieren

Java Klassen Attribute anlegen

Das Wo und das Was ist geklärt.

Bleibt die letzte Frage:
Wie werden Attribute deklariert?
Für den Namen des Helden machst du das so:


public class Held {
	String heldName;

}
  • Der Name ist ein Textwert.
  • Du wirst als Namen niemals eine Zahl vergeben.
  • Deshalb musst du den Namen in einem Datentypen speichern, welcher mit Textwerten umgehen kann.
  • Und dieser Datentyp, ist der Datentyp String.
  • Für den Namen der Variablen habe ich „heldName“ gewählt.

Worauf solltest du beim Namen der Instanzfelder achten?

  • Du kannst jeden x-beliebigen Namen wählen.
  • Der Name muss aber zusammengeschrieben sein.
    Du kannst also nicht zwei Wörter als Namen zuweisen.
    „Der Name“ oder „Held Name“ funktioniert nicht
  • Falls du dennoch zwei Wörter wählst, schreibst du diese zusammen.
    Den Namen der Variablen solltest du immer klein beginnen und den zweiten Namen dann groß schreiben.

Welche Rolle spielt der Name der Instanzvariablen?
Zum Zeitpunkt als die Variable „heldName“ deklariert wurde, geschieht folgendes:

  • Es wird ein Speicherplatz in Größe bzw. Volumen eines String-Datentypen reserviert.
  • Wenn der Wert dann später zugewiesen wird, kann auf diese Reservierung zurückgegriffen werden.
  • Diese Reservierung wird unter dem Namen der Variablen speicherintern geführt und verwaltet.

Zu diesem Zeitpunkt könntest du x-beliebig viele Helden anlegen.
Und jedem Helden könntest du einen individuellen Namen zuweisen.

Java Klassen Helden

Aber wir wollten noch mehr.
Und zwar sollte jeder Held noch ein Alter zugewiesen bekommen.

Also legen wir auch das Alter an.


public class Held {
	String heldName;
	int heldAlter;

}
  • Das Alter wird ein ganzzahliger Wert sein.
  • Und für ganze Zahlen nutzt du den Datentyp Integer oder int.
  • Auch hier kannst du jeden willkürlichen Namen für die Instanzvariable wählen.
  • In meinem Fall heißt diese „heldAlter“.

Falls du die Variable „das Alter des Helden“ nennen möchtest, geht das auch.

  • Schreibe den Variablennamen zusammen.
  • Schreibe diesen zu Beginn klein.
  • Und achte auf die Groß-und Kleinschreibung zwischen den Wörtern.
  • Die Variable hieße demnach: „dasAlterDesHelden“.

Die letzte Variable ist die Größe:


public class Held {
	String heldName;
	int heldAlter;
	double heldGroesse;

}
  • In diesem Fall habe ich eine Variable vom Datentyp double gewählt.
  • Diesen Datentyp nutzt du um Kommazahlen zu speichern.
  • Denn ich möchte gern die Größe in Metern angeben.
  • Und dafür sind Kommazahlen nunmal notwendig.

Somit wäre der Bauplan fertig.

Es fällt dir sicherlich auf, dass zwar die Variablen angelegt sind.
Aber nicht eine Variable einen konkreten Wert hat.

Die Zuweisung des Wertes kann jetzt erfolgen.
Aber eigentlich trennt man das Deklarieren von der Wertzuweisung.

Warum trennt man die Felderinitialisierung von der- deklarierung?

Ich sagte:
Deklarieren heißt Variable anlegen.
Initialisieren heißt Wert zuweisen.

Beides in einem Vorgang ist möglich.


public class Held {
	String heldName="Herbert";
	int heldAlter;
	double heldGroesse;

}

Aber man verändert den Bauplan.

Wenn du in der Heldenklasse beispielsweise dem „heldNamen“ den Wert Herbert zuweist.
Und dann Objekte aus der Heldenklasse anlegt.

Java Klassen Attribute deklarieren und initialisieren

Dann haben alle Objekte beim Erstellen den Namen Herbert.
Und das wäre blöd.
Denn du willst das Programm und somit die Klasse so flexibel wie möglich halten.

Und deshalb:

  1. Lege zuerst Instanzvariablen an.
  2. Erschaffe dann das Objekt
  3. Und zum Schluss weist du den Instanzvariablen den Wert zu.

Die Objekterstellung werden wir im nächsten Beitrag des Einführungsprojektes betrachten.

Zusammenfassung:

  • Die ganze Objektorientierungsgeschichte richtet sich am realen Leben aus.
  • Dabei spielen die Eigenschaften bzw. Unterscheidungskriterien eines Objektes eine entscheidende Rolle.
  • Durch das Anlegen von Feldern werden deine Java Klassen zu einer Art Schablone oder Bauplan für Objekte.
  • Du kannst durch diese Attribute x-beliebig viele Objekte vom selben Typ erschaffen und diese mit individuellen Werten ausstatten – wie im wirklichen Leben.
  • Das Anlegen eines Attributes erfolgt immer auf der Hierarchieebene der jeweiligen Klasse.
  • Der ganze Ablauf erfolgt immer nach dem gleichen Muster: Zuerst der Datentyp, dann der Name.

Ähnliche Beiträge

Nutze das Java Switch Case Statement für komplexe Verzweigungen

Java Switch case

Java switch case statement – was ist das? Wozu brauchst du das? Lass mich anders beginnen… 🙂 In einen meiner früheren Beiträge habe ich schon einmal über bedingte Anweisungen oder Zuweisungen geschrieben. Diese if und else Konstrukte funktionieren eigentlich ganz gut. Aber was ist, wenn du mehrere Parameter abfangen möchtest. Okay ein Beispiel…

Nutze das Keyword this für deine Java Konstruktoren

Java konstruktoren this

Es ist gemein. Wahrscheinlich hast den Beitrag zu den lokalen Variablen gelesen. Vielleicht hast du auch den Artikeln zum Anlegen und Überladen von Java Konstruktoren gelesen. Und wenn du die beschriebene Inhalte selbst ausprobiert hast…… Dann hast du dir wahrscheinlich sehr viele lokale Variablennamen für die Parameterliste ausdenken müssen.

Warum Java Kommentare immer ein Mittel der Kommunikation sind

Java Kommentare Kommunikation

Kennst Du die Bücherreihe „Miteinander reden“ von Schulz von Thun? Falls Du an der Uni warst oder bist, gehört dieses Buch zur Standardlektüre im Fach Schlüsselkompetenz. Denn ein Java Entwickler, welcher im Team arbeitet, muss klar und deutlich kommunizieren können. Und klar und deutlich heißt nicht, dass die Aussprache Deiner Worte verständlich sein soll. Nein […]

So verwendest du die Java Codeblöcke zur Automatisierung

Java Codeblöcke

In diesem Beitrag geht es um den Einsatz von Java Codeblöcken oder Initialisierungsblöcken. Viele Wege führen nach Rom. Oder Alle Wege führen nach Rom. Heißt es in einem alten Sprichwort. Und so ähnlich ist es bei der Java Programmierung. In diesem Beitrag möchte ich dir einen weiteren Weg vorstellen, wie du Variablen eines Java Objektes […]

Drei Möglichkeiten um Java Objekte zu zerstören

Java Objekte zerstören

Java Objekte leben genau solange, wie eine Referenzvariable auf sie zeigt. Wenn dieser Zeiger nicht mehr existiert, wird dieses Objekt aufgeben. Und wenn dieses Objekt erst einmal aufgegeben wurde, dann kommt der Garbage Collector und entsorgt dieses. Aber wie kannst du nun am Sinnvollsten Objekte aufgeben? Lass es uns herausfinden.

Die vier verschiedenen Zahlensysteme in der Java Programmierung

Java Zahlensysteme

Java Zahlensysteme – Was soll das? In sämtlichen Programmiersprachen werden Zahlen in Variablen abgespeichert. Wenn du dir die einzelnen primitiven Datentypen in Java einmal anschaust – wirst du feststellen – dass die Masse der Datentypen Zahlen annehmen und speichern können. Zahlen und die Mathematik dahinter spielen in der Programmierung eine sehr große Rolle. Ganz am […]

So erstellst du deine ersten Java Klassen mit Eclipse

Java Klassen sind Baupläne für Java Objekte. Und da Java eine objektorientierte Programmiersprache ist, sind Java Klassen somit ein elementarer Bestandteil. In diesem Beitrag möchte ich dir zeigen, wie du eine Java Klasse in Eclipse erstellen kannst. Ich möchte dir außerdem zeigen, was physikalisch in deinem Projekt passiert. Ganz zum Schluss zeige ich dir noch, […]

So verwendest du Inkrement und Dekrement Operatoren in deinen Java Programmen

Java Operatoren

In diesem Beitrag geht es um Java Operatoren. Ich möchte dir gern zwei neue Operatoren vorstellen. Diese nennen sich Inkrement und Dekrement. Ja was heißt das? Inkrementieren bedeutet eine schrittweise Erhöhung einer Zahl. Und dementsprechend bedeutet Dekrementieren: Die schrittweise Verminderung einer Zahl. Wozu brauchst du das? Stell dir vor. Du bekommst eine Liste mit Namen […]

Nutze die richtigen Methoden zum Java Lernen

Java lernen Methoden

Ich lernte die Java Programmierung auf die klassische Art. Ich kaufte mir das erste Buch und los ging es. „Jetzt wirst du Java lernen“ – sagte ich zu mir. Ich war relativ schnell ziemlich frustriert, denn irgendwie fehlten mir ein paar Zusammenhänge. Kennst du das? Du hast ein Wissensfetzen und noch einen. Aber das Wichtigste. […]

So kannst du Java Arrays mit for Schleife füllen und auslesen

Java Arrays For Schleife

Wir haben in einem anderen Beitrag bereits über Java Arrays gesprochen. So ein Array speichert Zahlen, Texte oder Objekte in eine Art Liste. Und dann kannst du ganz bequem über den Index das Array füllen und die bereits enthaltenen Werte abrufen. Ganz bequem? So, wie ich dich aus dem letzten Beitrag entlassen habe, war das […]