Objekte/Klassen erstellen - Erklärung anhand Beispiel

Vokabulator

Mitglied
Hallo!

Ich hab gerade mein erstes Java-Buch gelesen und haben nun eiene Frage zu den Klassen und Objekten. Eine Aufgabe in dem Buch lautet:

1. Definieren Sie eine Klasse Mitarbeiter. Ein Mitarbeiter besitzt
eine eindeutige Nummer (id) und einen Namen (name). Die ID des
Mitarbeiters soll durch die Klasse selbst fortlaufend nummeriert
werden. Der erste Mitarbeiter hat also die ID 1, der zweite Mitarbeiter
die ID 2 usw. Fügen Sie der Klasse sinnvolle get- und set-
Methoden hinzu und definieren Sie zudem eine toString()-Methode,
die die ID und den Mitarbeiternamen als String zurückliefert.

Die Lösung lautet:

Java:
public class Mitarbeiter {
private static int MAX_ID = 1;
private int id;
private String name;
public Mitarbeiter(String name) {
id = MAX_ID++;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return id + ", " + name;
}
}

Das würde ich nun gerne entschlüsseln.
Java:
public class Mitarbeiter
-> definiert die Klasse mitarbeiter als public, d.h. die Zugriffsrechte sind eben public

Java:
private static int MAX_ID = 1;
-> legt ein privates statisches Objekt (eine Variable) fest und gibt ihr den Wert 1 - ist das richtig so? Die Variable ist das Objekt?

Java:
private int id;
private String name;
-> Hier ebenso, zwei Objekte (Variablen) werden festgelegt?


Java:
public Mitarbeiter(String name) {
id = MAX_ID++;
this.name = name;
}
-> Ist ein Konstruktor? Hier verstehe ich noch nicht, was das im Einzelnen bedeutet. Wird mit this.name auf diese (this) Klasse zugegriffen und die Methode name angewandt?

Und den Rest verstehe ich auch nicht so genau. Das sind doch alles Funktionen, oder? Wo sind da die Objekte und Attribute?

Vielen Dank für etwaige Erklärungen!!
 
G

gst

Gast
Du solltest das Buch zur Abwechslung einfach mal lesen. Das sind nämlich alles Fragen, die dort garantiert erläutert werden.
 

E99

Aktives Mitglied
Das denke ich auch... Es sei denn, das ganze Ding besteht nur aus Aufgaben, was ich mir kaum vorstellen kann!?
 

Fab1

Top Contributor
Hallo,

Du verwechselt hier einiges. Ich werde mal versuchen dir das hoffentlich verständlich zu erklären:

Java:
private static int MAX_ID = 1;

Du hast hier kein Objekt. int ist ein primitiver Datentyp. Außerdem gibt es Java Konventionen welche besagen, dass Konstanten im "higher case" (Großbuchstaben) geschrieben werden. Eine Konstante ist ein immer gleichbleibender Wert, dieser sollte somit auch als final deklariert werden. (siehe auch: Java ist auch eine Insel – 6.5 Konstanten und Aufzählungen )

Java:
private int id;
private String name;
Hier das gleiche int ist ein primitiver Datentyp. String hingegen ist eine Klasse. Somit erzeugst du hier ein Objekt. Ein Objekt wird ja immer mit
Code:
new
erzeugt. Um dies bei String zu verkürzen wird diese Methode in der Regel weggelassen. Somit sind, soweit ich weiß, die beiden unten stehenden Codeteile identisch.

Java:
String test = "Hallo";
und
Java:
String test = new String("Hallo")

Intern behandelt Java die beiden Codeteile gleich.

Java:
public Mitarbeiter(String name) {
id = MAX_ID++;
this.name = name;
}


Das hier ist der Konstruktor der Klasse Mitarbeiter. Dieser erwartet einen Parameter ein String Objekt (name), welcher den Namen des Mitarbeiters repräsentieren soll.

Jetzt muss man unterscheiden es gibt Instanzvariablen und lokale Variablen. Instanzvariablen sind in der kompletten Klasse gültig und lokale Variablen nur in deren Gültigkeitsbereich. mit
Code:
this
wird die Instanzvariable angesprochen. Denn in diesem Fall gibt es eine Instanzvariable und eine lokale Variable welche den Namen "name" tragen. Und damit der Compiler weiß mit welcher du arbeiten willst, braucht er die Information.
 

Crian

Top Contributor
Somit sind, soweit ich weiß, die beiden unten stehenden Codeteile identisch.

Java:
String test = "Hallo";
und
Java:
String test = new String("Hallo")

Intern behandelt Java die beiden Codeteile gleich.

Nicht ganz. Bei der unteren Variante wird immer ein neuer String angelegt, bei der oberen bedient sich Java ggf. aus dem String-Pool.

Das bedeutet, bei

Java:
String test1 = "Hallo";
String test2 = "Hallo";

könnte
Code:
test1 == test2
wahr ergeben, muss aber nicht. Bei

Java:
String test1 = new String("Hallo");
String test2 = new String("Hallo");

muss
Code:
test1 == test2
falsch ergeben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Objekte in Array erstellen und Methode in verschiedenen klassen aufrufen Java Basics - Anfänger-Themen 5
G Objekte von Klassen die erst zur Laufzeit bekannt sind erstellen Java Basics - Anfänger-Themen 6
K Objekte erstellen, wenn der Klassen-Name als String vorliegt Java Basics - Anfänger-Themen 4
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
G Klassen und Objekte Java Basics - Anfänger-Themen 2
M Klassen und Objekte Java Basics - Anfänger-Themen 2
J Objekte und Abstrakte Klassen Java Basics - Anfänger-Themen 2
Orkanson Objekte und Klassen Java Basics - Anfänger-Themen 8
S Objekte mit gleichem Namen in unterschiedlichen Klassen Java Basics - Anfänger-Themen 3
Z OOP Objekte einer Klasse weiteren Klassen zur Verfügung stellen Java Basics - Anfänger-Themen 17
D Methoden Wie können Klassen auf Klassenfremde Objekte zugreifen? Java Basics - Anfänger-Themen 7
C Klassen/Objekte Verständnis Java Basics - Anfänger-Themen 8
Z Wie Objekte anderer Klassen ansprechen? Java Basics - Anfänger-Themen 2
K JUnit: Objekte von eigenen Klassen vergleichen...geht nicht Java Basics - Anfänger-Themen 5
T Klassen Referenzen auf Klassen / Objekte Java Basics - Anfänger-Themen 5
K Methoden Uhr als Übungsaufgabe Klassen/Objekte Java Basics - Anfänger-Themen 3
A OOP Klassen und Objekte - Diagramme Java Basics - Anfänger-Themen 2
K Best Practice In Klassen auf andere Objekte mit variablen Namen zugreifen Java Basics - Anfänger-Themen 6
A Objekte aus 2 Klassen mit compareTo() vergleichen Java Basics - Anfänger-Themen 7
D Klassen Klassen, Objekte, Konstruktor - einfach erklärt Java Basics - Anfänger-Themen 12
S Vererbung Objekte in verwandten Klassen (Kovarianz, Polymorphie) Java Basics - Anfänger-Themen 4
B Objekte aus einer anderen Klasse(in der sich weitere Klassen befinden) erzeugen Java Basics - Anfänger-Themen 24
B Klassen und Objekte Java Basics - Anfänger-Themen 10
J Objekte und Klassen Java Basics - Anfänger-Themen 8
I Objekte an andere Klassen/Methoden übergeben? Java Basics - Anfänger-Themen 5
L Vererbung - Wie Objekte verschiedener Klassen unterscheiden Java Basics - Anfänger-Themen 3
T Klassen, Objekte, Methoden Java Basics - Anfänger-Themen 9
X Klassen & Objekte Java Basics - Anfänger-Themen 6
J Verständniss Frage zu Klassen, Objekte und Methoden Java Basics - Anfänger-Themen 8
J Objekte und Klassen? Java Basics - Anfänger-Themen 12
B Uni (Klassen und Objekte) verwenden Java Basics - Anfänger-Themen 2
D Objekte und Klassen Java Basics - Anfänger-Themen 15
muchodrinko Auf Objekte anderer Klassen zugreifen? Java Basics - Anfänger-Themen 16
T Klassen und Objekte externer Aufruf. Java Basics - Anfänger-Themen 8
M Klassen und Objekte => richtiges Verständnis? Java Basics - Anfänger-Themen 6
A Objekte von abstrakten Klassen? Java Basics - Anfänger-Themen 6
K Objekte/Klassen erweitern ~ Javascript Prototyp Java Basics - Anfänger-Themen 5
M Objekte zwischen Klassen "handeln" Java Basics - Anfänger-Themen 4
M Klassen und Objekte (kopieren) Java Basics - Anfänger-Themen 7
L Zusammenhang Methoden, Klassen, Objekte, static - sun doku Java Basics - Anfänger-Themen 4
K Programm in Klassen/Objekte zerlegen - wie? Java Basics - Anfänger-Themen 3
G Was sind Klassen, Objekte und Methoden? Java Basics - Anfänger-Themen 3
N Zugriff auf Objekte von fremden Klassen aus? Java Basics - Anfänger-Themen 4
M Klassen, Objekte, Konstruktor Java Basics - Anfänger-Themen 5
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
J Objekte Java Basics - Anfänger-Themen 22
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
T 3D Objekte verarbeiten Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
E Objekte löschen Java Basics - Anfänger-Themen 9
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
G Übergeordnete Objekte abrufen Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
G Methoden Informationen aus zwei Objekte bekommen? Java Basics - Anfänger-Themen 6
P Globale Objekte Java Basics - Anfänger-Themen 2
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
D Interaktion zweier Objekte Java Basics - Anfänger-Themen 5
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
A (Objekte Java Basics - Anfänger-Themen 6
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
G Java Objekte auf Duplikate testen Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Objekte miteinander vergleichen Java Basics - Anfänger-Themen 18
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
G Objekte in Methoden? Java Basics - Anfänger-Themen 13
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben