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

Die sechs Bestandteile von Java Methoden

Java Methoden Bestandteile

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 bestimmen, was die Methode darf […]

Java lernen durch ständiges Testen – Nutze die Testumgebung von Eclipse

Java Programmierung lernen

Probieren geht über studieren Wenn du wirklich Java Programmierung lernen möchtest, dann solltest du Java nicht aus einem Buch lernen. Du solltest auch nicht strikt von dieser oder anderen Webseiten lernen. Etwas wirklich zu lernen, setzt die Bereitschaft voraus, etwas zu probieren. Denn nur durch eigenes Probieren gelangst du zum Wesentlichen. Durch Probieren wirst du […]

So kannst du in Java Und Verknüpfung anlegen und auswerten

Java Und

In Java stehen dir eine Menge Operatoren zur Verfügung. Einer dieser Operatoren ist der Und-Operator. Dies ist ein logischer Operator, da dieser sogenannte Wahrheitswerte mit einander verknüpft. Also…. Was erwartet dich in diesem Beitrag? Zuerst möchte ich dir die Aussagenlogik hinter dem Und-Operator zeigen. Also wann sind Aussagen wahr und wann sind diese falsch. Dann […]

So kannst du Java Konstanten bei der Programmierung nutzen

Java Konstanten – was kann man sich darunter vorstellen? Du kennst Konstanten in der Mathematik. Die Kreiszahl Pi ist so eine konstante Zahl. Diese Zahl ändert sich niemals. Sie beträgt immer rund 3,141592. In der Physik gelten die Lichtgeschwindigkeit, der Erdradius oder der absolute Nullpunkt als konstant. Selbst die Geschwindigkeit mit der sich die Erde […]

So kannst du gelöschte Java Projekte oder Dateien in Eclipse wieder herstellen

Wahrscheinlich passiert es jedem einmal, dass man versehentlich Dateien löscht. Und dann? Die Wut ist riesig, weil man ja alles nochmal schreiben muss. In Eclipse hast du die Möglichkeit sämtliche Dateien wieder herzustellen. In diesem Beitrag möchte ich dir demonstrieren, wie du gelöschte Java Klassen, Dateien, Projekte oder Packages wieder herstellen kannst.

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 […]

Lassen wir Java rechnen – Die Rechenoperationen für Variablen

Java rechnen

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 sich mit sehr vielen Theoremen […]

Ohne Abstraktion ergibt Java Polymorphie wenig Sinn

Java Polymorphie Abstraktionsprinzip

Kennst du den Film Matrix? Denn kennst du vielleicht auch die Botschaft, welche der Protagonist am Anfang des Filmes erhält. „Folge dem weißen Kaninchen.“ Und so ähnlich ist es jetzt auch in diesem Beitrag. „Wir dringen immer tiefer in den Kaninchenbau ein.“ 🙂 Ganz so wie im Film wird es nicht. Aber bevor wir mit […]

Der Java Datentyp boolean im Interview

Java boolean

Nein, ich bin nicht verrückt. Aber… Neulich traf ich zufällig den Java Datentyp boolean. 🙂 Er erklärte sich bereit, mir ein Interview zu geben. In diesem Interview geht es um die Werte, welcher dieser Wertetyp annehmen kann. Und in diesem Zusammenhang geht es auch um Logik. Also lassen wir uns doch die Logik vom direkten […]

Java Übung 25 – Simuliere eine Gelddruckmaschine

Java Übung Gelddruckmaschine

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 das Programm 2 x 200 […]

Das Java Leben ist einfacher mit For-Schleife

Java For Schleife Aufbau

In einem anderen Artikeln habe ich bereits über Schleifen in Java gesprochen. In diesem Artikel möchte ich dir eine ganz besondere Schleife vorstellen. Warum ist diese so toll? Sie hat einen integrierten Schleifenzähler. Die Schleife zählt also bei jedem Durchlauf automatisch mit. Aber dazu gleich mehr…. Lass uns einmal so eine For Schleife anlegen.