0% fanden dieses Dokument nützlich (0 Abstimmungen)
41 Ansichten4 Seiten

Import Java

Das Dokument beschreibt eine Java-Implementierung einer Fahrzeug-Hierarchie mit einer abstrakten Klasse 'Fahrzeug' und spezifischen Klassen für Elektroautos, Verbrenner und Fahrräder. Jede Fahrzeugklasse hat eigene Attribute und implementiert die abstrakte Methode 'statusAnzeigen', um den aktuellen Status anzuzeigen. In der Testklasse 'FahrzeugTest' werden verschiedene Fahrzeugobjekte erstellt, deren Status angezeigt und einige Aktionen wie Starten und Beschleunigen simuliert.

Hochgeladen von

takamura87m
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als DOCX, PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
41 Ansichten4 Seiten

Import Java

Das Dokument beschreibt eine Java-Implementierung einer Fahrzeug-Hierarchie mit einer abstrakten Klasse 'Fahrzeug' und spezifischen Klassen für Elektroautos, Verbrenner und Fahrräder. Jede Fahrzeugklasse hat eigene Attribute und implementiert die abstrakte Methode 'statusAnzeigen', um den aktuellen Status anzuzeigen. In der Testklasse 'FahrzeugTest' werden verschiedene Fahrzeugobjekte erstellt, deren Status angezeigt und einige Aktionen wie Starten und Beschleunigen simuliert.

Hochgeladen von

takamura87m
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als DOCX, PDF, TXT herunterladen oder online auf Scribd lesen

import java.util.

ArrayList;

// Abstrakte Klasse Fahrzeug mit allgemeinen Attributen und Methoden


abstract class Fahrzeug {
protected int geschwindigkeit; // Geschwindigkeit in km/h
protected boolean gestartet; // Status, ob das Fahrzeug gestartet ist

public Fahrzeug() {
this.geschwindigkeit = 0;
this.gestartet = false;
}

// Methode, um das Fahrzeug zu starten


public void starten() {
if (!gestartet) {
gestartet = true;
System.out.println(getClass().getSimpleName() + " wurde
gestartet.");
} else {
System.out.println(getClass().getSimpleName() + " läuft
bereits.");
}
}

// Methode, um das Fahrzeug auszuschalten


public void ausschalten() {
if (gestartet && geschwindigkeit == 0) {
gestartet = false;
System.out.println(getClass().getSimpleName() + " wurde
ausgeschaltet.");
} else {
System.out.println(getClass().getSimpleName() + " kann nicht
ausgeschaltet werden, während es in Bewegung ist.");
}
}

// Methode, um das Fahrzeug zu beschleunigen


public void beschleunigen() {
if (gestartet) {
geschwindigkeit++;
System.out.println(getClass().getSimpleName() + " beschleunigt.
Geschwindigkeit: " + geschwindigkeit + " km/h");
} else {
System.out.println(getClass().getSimpleName() + " muss zuerst
gestartet werden.");
}
}

// Methode, um das Fahrzeug zu bremsen


public void bremsen() {
if (geschwindigkeit > 0) {
geschwindigkeit--;
System.out.println(getClass().getSimpleName() + " bremst.
Geschwindigkeit: " + geschwindigkeit + " km/h");
} else {
System.out.println(getClass().getSimpleName() + " steht
bereits.");
}
}

// Methode, um das Fahrzeug zum Stillstand zu bringen


public void anhalten() {
geschwindigkeit = 0;
System.out.println(getClass().getSimpleName() + " wurde zum
Stillstand gebracht.");
}

// Abstrakte Methode, die in den abgeleiteten Klassen überschrieben


werden muss
public abstract void statusAnzeigen();
}

// Klasse EAuto mit spezifischen Attributen


class EAuto extends Fahrzeug {
private int batteriekapazitaet; // in kWh
private int ladezeit; // in Stunden
private int maximaleReichweite; // in km

public EAuto(int batteriekapazitaet, int ladezeit, int


maximaleReichweite) {
super();
this.batteriekapazitaet = batteriekapazitaet;
this.ladezeit = ladezeit;
this.maximaleReichweite = maximaleReichweite;
}

@Override
public void statusAnzeigen() {
System.out.println("EAuto - Batteriekapazität: " +
batteriekapazitaet + " kWh, Ladezeit: " + ladezeit + " Stunden, Reichweite:
" + maximaleReichweite + " km, Geschwindigkeit: " + geschwindigkeit + "
km/h, Gestartet: " + gestartet);
}
}

// Klasse Verbrenner mit spezifischen Attributen


class Verbrenner extends Fahrzeug {
private String kraftstofftyp; // z.B. Benzin, Diesel
private int tankgroesse; // in Litern
private int kraftstoffverbrauch; // in L/100km

public Verbrenner(String kraftstofftyp, int tankgroesse, int


kraftstoffverbrauch) {
super();
this.kraftstofftyp = kraftstofftyp;
this.tankgroesse = tankgroesse;
this.kraftstoffverbrauch = kraftstoffverbrauch;
}

@Override
public void statusAnzeigen() {
System.out.println("Verbrenner - Kraftstofftyp: " + kraftstofftyp +
", Tankgröße: " + tankgroesse + " L, Verbrauch: " + kraftstoffverbrauch + "
L/100km, Geschwindigkeit: " + geschwindigkeit + " km/h, Gestartet: " +
gestartet);
}
}

// Klasse Fahrrad mit spezifischen Attributen


class Fahrrad extends Fahrzeug {
private int gaenge; // Anzahl der Gänge
private String radtyp; // z.B. Mountainbike, Rennrad
private int groesseZoll; // Radgröße in Zoll

public Fahrrad(int gaenge, String radtyp, int groesseZoll) {


super();
this.gaenge = gaenge;
this.radtyp = radtyp;
this.groesseZoll = groesseZoll;
}

@Override
public void statusAnzeigen() {
System.out.println("Fahrrad - Gänge: " + gaenge + ", Radtyp: " +
radtyp + ", Größe: " + groesseZoll + " Zoll, Geschwindigkeit: " +
geschwindigkeit + " km/h, Gestartet: " + gestartet);
}
}

// Testklasse mit der main()-Methode


public class FahrzeugTest {

public static void main(String[] args) {


// ArrayList zum Speichern von verschiedenen Fahrzeugen
ArrayList<Fahrzeug> fahrzeuge = new ArrayList<>();

// Erstellen von Fahrzeugobjekten


fahrzeuge.add(new EAuto(75, 8, 400)); // E-Auto
fahrzeuge.add(new EAuto(90, 6, 500)); // E-Auto
fahrzeuge.add(new Verbrenner("Benzin", 60, 8)); // Verbrenner
fahrzeuge.add(new Verbrenner("Diesel", 70, 6)); // Verbrenner
fahrzeuge.add(new Fahrrad(18, "Mountainbike", 27)); // Fahrrad
fahrzeuge.add(new Fahrrad(21, "Rennrad", 28)); // Fahrrad

// Statusanzeige für alle Fahrzeuge


for (Fahrzeug fahrzeug : fahrzeuge) {
fahrzeug.statusAnzeigen();
}

// Simulation einiger Aktionen


fahrzeuge.get(0).starten(); // EAuto starten
fahrzeuge.get(0).beschleunigen(); // EAuto beschleunigen
fahrzeuge.get(0).bremsen(); // EAuto bremsen
fahrzeuge.get(0).anhalten(); // EAuto anhalten
fahrzeuge.get(0).ausschalten(); // EAuto ausschalten

// Statusanzeige nach Aktionen


for (Fahrzeug fahrzeug : fahrzeuge) {
fahrzeug.statusAnzeigen();
}
}
}

Erklärung des Programms:

Schritt 1: Klassenstruktur und Attribute

1. Oberklasse Fahrzeug:
o Diese Klasse enthält allgemeine Attribute wie geschwindigkeit und
gestartet (Status, ob das Fahrzeug gestartet ist).
o Es gibt Methoden zum Starten, Ausschalten, Beschleunigen, Bremsen und
Anhalten des Fahrzeugs.
o Die Methode statusAnzeigen() ist abstrakt und wird in den spezifischen
Fahrzeugklassen implementiert.
2. Klasse EAuto:
o Diese Klasse erbt von Fahrzeug und fügt spezifische Attribute für ein
Elektroauto hinzu: batteriekapazitaet, ladezeit und
maximaleReichweite.
o Die Methode statusAnzeigen() gibt den aktuellen Status des E-Autos aus.
3. Klasse Verbrenner:
o Diese Klasse erbt ebenfalls von Fahrzeug und hat spezifische Attribute:
kraftstofftyp, tankgroesse und kraftstoffverbrauch.
o Die Methode statusAnzeigen() gibt den aktuellen Status des Verbrenners
aus.
4. Klasse Fahrrad:
o Diese Klasse erbt von Fahrzeug und hat spezifische Attribute für ein Fahrrad:
gaenge, radtyp und groesseZoll.
o Die Methode statusAnzeigen() gibt den aktuellen Status des Fahrrads aus.

Schritt 2: Methoden

 Alle Fahrzeuge haben Methoden zum Starten, Ausschalten, Beschleunigen, Bremsen


und Anhalten.
 Diese Methoden sind in der Klasse Fahrzeug implementiert und werden von allen
spezifischen Fahrzeugklassen geerbt.
 Der Status jedes Fahrzeugs wird durch die Methode statusAnzeigen() angezeigt,
die in jeder abgeleiteten Klasse implementiert wird.

Schritt 3: Klassenverwendung

 In der Testklasse FahrzeugTest wird eine ArrayList<Fahrzeug> erstellt, die


verschiedene Fahrzeuge speichert (E-Autos, Verbrenner, Fahrräder).
 Die Methode statusAnzeigen() wird für jedes Fahrzeug aufgerufen, um den Status
auszugeben.
 Zusätzlich werden einige Aktionen wie Starten, Beschleunigen, Bremsen und
Anhalten auf einem E-Auto simuliert, und der Status wird danach erneut angezeigt.

Beispielausführung:
yaml

Das könnte Ihnen auch gefallen