Klassen Klassen, Objekte, Konstruktor - einfach erklärt

dane

Mitglied
Hallo,

seit einiger Zeit schaue ich mir die Thematik zu Klassen, Objekten, Konstruktoren, eben alles, was ein bisschen zu OOP gehört, an.

Ich verstehe es allerdings noch immer nicht ganz. Leider finde ich dazu keine einfache, leichte, kurze Erklärung. Kann mir jemand helfen? ;(;(;(
 

flopalko

Bekanntes Mitglied
Eine Klasse gibt dir ein Gerüst für ein Objekt vor, einfaches Beispiel: eine Klasse Auto hat die Attribute int Räder, int Sitze, int PS usw. was du halt alles willst und zB. die Methoden fahreVorwaerts, fahre Rueckwaerts, fahreKurve

Im Konstruktor definierst du dann alles, was beim Anlegen eines Objektes der Klasse Auto zu erledigen ist. Zum Beispiel Eintragen, wie viele Räder, Sitze, PS usw dieses Auto besitzt.

Eine Instanz ist nun ein mittels Konstruktor der Klasse erzeugtes Objekt des Typs Auto. Du hast also in deiner Software ein "reelles" Auto erschaffen.

HTH, lg
 

jgh

Top Contributor
Wenn auch nicht immer passend, finde ich den Vergleich von Schablonen mit Klassen sehr zutreffend.

Klassen sind Schablonen, mit denen du definierst wie ein Objekt aussieht. Das eigentliche Objekt "erschaffst" du erst dann, wenn du mit [c]new[/c] eine Instanz dieses erstellst. Dann wird der Konstruktor dieser Klasse aufgerufen.
 

Fant

Bekanntes Mitglied
Klasse - Bauplan für ein Haus, den irgendwann mal ein Archtiekt gezeichnet hat.
Konstruktor - Bautrupp, der das Haus nach vorgegebenen Regeln aus bereitgestellten Materialien (übergebenen Attributen) aufbaut.
Objekt - ein fertiges Haus. Das kann man überall auf die exakt gleiche Art und Weise immer wieder aufbauen und abreißen.

Hat man mir mal so erklärt, als ich mit Java (und damit auch mit OOP) angefangen habe :)
 

dane

Mitglied
Vielen Dank. Mich würde zudem noch interessieren, wo der Unterschied zwischen einer Klasse und einem Objekt ist. Merci!
 
T

theawak3r

Gast
Ein Objekt ist eine Instanz einer Klasse, die ausschließlich zur Laufzeit exisitert. Klassen hast du ja nun hoffentlich verstanden. Wenn du eine Klasse erstellst, die Autos repräsentieren soll und von diesen Klassen zur Laufzeit mittels
Java:
Auto auto1 = new Auto();
Auto auto2 = new Auto();
Auto auto3 = new Auto();
Instanzen erstellt werden, sind diese Instanzen Objekte...
 
Zuletzt bearbeitet von einem Moderator:

Fant

Bekanntes Mitglied
Vielen Dank. Mich würde zudem noch interessieren, wo der Unterschied zwischen einer Klasse und einem Objekt ist. Merci!

Das wurde doch auch schon gesagt ;)

Nochmal auf mein Beispiel bezogen:
Wir haben eine Klasse Haus. Die Klasst ist dann nur der Bauplan, die Schablone, oder wie du es nennen magst. Ein Objekt vom Typ dieser Klasse ist dann ein nach diesem Plan gebautes Haus, z.B. das rote Haus mit Hausnummer 20 in der Hauptstraße.
 

dane

Mitglied
Danke für die Antworten. Stehe jetzt vor einem Problem. Soll meinen Taschenrechner "objektorientiert" strukturieren, weiß aber beim besten Willen nicht, inwiefern ich das am Besten handhaben kann. Hier mal der Code. Freue mich auf Tipps und Anregungen.

Java:
import java.util.Scanner;

public class Calculator {
	
	public static void main (String[] args)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("Calculator");
		
		double num1 = 0;
		
		while (true)
		{
			if (num1 == 0)
			{
				System.out.print("Zahl eingeben: ");
				num1 = input.nextDouble();
			}
			
			System.out.print("Operator eingeben: ");
			String operator = input.next();
			
			if (!operator.equals("="))
			{
			System.out.print("Zahl eingeben: ");
			}
			
			if (operator.equals("="))
			{
				System.out.println("Ergebnis: "+num1);
			}
			
			else if (operator.equals(operator))
			{
				num1 = calculate(num1, input, operator);
			}
		}
	}
	
	private static double calculate(double num1, Scanner input, String operator)
	{
		double returnvalue = 0;
		double num2 = input.nextDouble();
		
		if (operator.equals("+"))
		{
			returnvalue = num1 + num2;
		}
		
		if (operator.equals("-"))
		{
			returnvalue = num1 - num2;
		}
		
		if (operator.equals("*"))
		{
			returnvalue = num1 * num2;
		}
		
		if (operator.equals("/"))
		{
			returnvalue = num1 / num2;
		}
		return returnvalue;
	}
}
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
Du könntest dir ja ein Interface Operand bauen, welches als einzige Methode eine ausführen-Methode beinhaltet. Dann gibt es die implementieren Klassen Plus, Minus, ... die ebenm diese Methode implementieren. Sinnvollerweise erwartet die Methode zweoi Operatoren, welche du auch in eine Klassse packen kannst.

Java:
interface Operand{
    double doIt(double a, double b);
}

class Plus implements Operand {
    double doIt(double a, double b) {
        return a + b;
    }
}

class Minus implements Operand {
    double doIt(double a, double b) {
        return a - b;
    }
}

class Mal implements Operand {
    double doIt(double a, double b) {
        return a * b;
    }
}

Java:
 

dane

Mitglied
naja, ich habe bereits einen Teil in eine Methode 'calculate' ausgelagert. Ich weiß bloß nicht, wie ich im Bezug auf den Taschenrechner objektorientiert umstrukturieren soll. Das ist mir jetzt irgendwie zu komplex. Ich will meine Kollegen auch gar nicht mehr fragen, weil die schon kurz vor'm explodieren sind, weil das Thema OOP nicht mein Thema ist. :noe:
 

Fant

Bekanntes Mitglied
Vermutlich sollst du einfach nur die Ein- und Ausgabe von der Programmlogik trennen. Viel mehr macht in meinen Augen da wenig Sinn.
 

langhaar!

Bekanntes Mitglied
Du kannst die Berechnungen in eine Klasse auslagern.

Du kannst auch für jede Art der Berechnung eine eigene Klasse machen: Addition, Subtraktion etc.
Das ist allerdings schon relativ abstrakt und für ein kleines Beispiel auch nur bedingt sinnvoll.

In vielen konkreteren Fällen ist es sinnvoll, den Problembereich sprachlich zu beschreiben.
Die dort verwendeten Nomen sind Hinweise auf Objekte, die Verben auf Methoden.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Klassen, Objekte, Konstruktor Java Basics - Anfänger-Themen 5
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
V Objekte/Klassen erstellen - Erklärung anhand Beispiel Java Basics - Anfänger-Themen 4
U Objekte in Array erstellen und Methode in verschiedenen klassen aufrufen Java Basics - Anfänger-Themen 5
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
G Objekte von Klassen die erst zur Laufzeit bekannt sind erstellen Java Basics - Anfänger-Themen 6
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
K Objekte erstellen, wenn der Klassen-Name als String vorliegt 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
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
A Generischen Klassen Java Basics - Anfänger-Themen 8
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
J 2 klassen benutzen Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben