u21 u23
This commit is contained in:
parent
cf145ceeed
commit
89f701bf6d
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="module" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="output" path="bin"/>
|
||||||
|
</classpath>
|
|
@ -0,0 +1 @@
|
||||||
|
/bin/
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>u21</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1,14 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=17
|
||||||
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||||
|
org.eclipse.jdt.core.compiler.release=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.source=17
|
|
@ -0,0 +1,15 @@
|
||||||
|
package de.hsh.vehicles;
|
||||||
|
|
||||||
|
public class AnsaldoFiremaT68 implements RailVehicle {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void operate() {
|
||||||
|
System.out.println("Ansaldo Firema T-68 is operating as a light rail passenger vehicle");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int trackGauge() {
|
||||||
|
return 1435;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package de.hsh.vehicles;
|
||||||
|
|
||||||
|
public class BMWS1000RR implements RoadVehicle {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void operate() {
|
||||||
|
System.out.println("BMW S1000RR is operating as a sport bike");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int numberOfWheels() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package de.hsh.vehicles;
|
||||||
|
|
||||||
|
public class CommanderSWX315 implements RoadRailVehicle {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int trackGauge() {
|
||||||
|
return 1435;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void operate() {
|
||||||
|
System.out.println("Commander SWX 315 is operating as a railcar mover");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int numberOfWheels() {
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package de.hsh.vehicles;
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
for (Vehicle v : new Vehicle[]{ new BMWS1000RR(), new AnsaldoFiremaT68(), new CommanderSWX315() }) {
|
||||||
|
v.operate();
|
||||||
|
}
|
||||||
|
for (RoadVehicle v : new RoadVehicle[]{ new BMWS1000RR(), new CommanderSWX315() }) {
|
||||||
|
System.out.println(v.numberOfWheels());
|
||||||
|
}
|
||||||
|
for (RailVehicle v : new RailVehicle[]{ new AnsaldoFiremaT68(), new CommanderSWX315() }) {
|
||||||
|
System.out.println(v.trackGauge());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
package de.hsh.vehicles;
|
||||||
|
|
||||||
|
public interface RailVehicle extends Vehicle {
|
||||||
|
public int trackGauge();
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
package de.hsh.vehicles;
|
||||||
|
|
||||||
|
public interface RoadRailVehicle extends RailVehicle, RoadVehicle {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
package de.hsh.vehicles;
|
||||||
|
|
||||||
|
public interface RoadVehicle extends Vehicle {
|
||||||
|
public int numberOfWheels();
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
package de.hsh.vehicles;
|
||||||
|
|
||||||
|
public interface Vehicle {
|
||||||
|
public void operate();
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="module" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="output" path="bin"/>
|
||||||
|
</classpath>
|
|
@ -0,0 +1 @@
|
||||||
|
/bin/
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>u23</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1,14 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=17
|
||||||
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||||
|
org.eclipse.jdt.core.compiler.release=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.source=17
|
|
@ -0,0 +1,88 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Klasse für Bücher mit Verlag und Autor
|
||||||
|
* @author p8q-yhw-u1
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Buch extends Medium {
|
||||||
|
|
||||||
|
private String verlag;
|
||||||
|
private String autor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erzeugt Buch Objekt
|
||||||
|
* @param titel darf nicht leer sein
|
||||||
|
* @param erscheinungsjahr darf nicht < 0 sein
|
||||||
|
* @param verlag darf nicht leer sein
|
||||||
|
* @param autor darf nicht leer sein
|
||||||
|
*/
|
||||||
|
public Buch(String titel, int erscheinungsjahr, String verlag, String autor) {
|
||||||
|
super(titel, erscheinungsjahr);
|
||||||
|
this.setVerlag(verlag);
|
||||||
|
this.setAutor(autor);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den Verlag des Buchs
|
||||||
|
* @param verlag darf nicht leer sein
|
||||||
|
*/
|
||||||
|
public void setVerlag(String verlag) {
|
||||||
|
if (verlag == null || verlag.length() == 0) {
|
||||||
|
throw new IllegalArgumentException("Verlag darf nicht leer sein");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.verlag = verlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt den Verlag des Buches zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getVerlag() {
|
||||||
|
return this.verlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den Autor des Buches
|
||||||
|
* @param autor darf nicht leer sein
|
||||||
|
*/
|
||||||
|
public void setAutor(String autor) {
|
||||||
|
if (autor == null || autor.length() == 0) {
|
||||||
|
throw new IllegalArgumentException("Autor darf nicht leer sein");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.autor = autor;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt den autor des Buches zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getAutor() {
|
||||||
|
return this.autor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Leihfrist für Bücher zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int getLeihFrist() {
|
||||||
|
return 28;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt eine String repräsentation des Buches zurück
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format(
|
||||||
|
"%s: %s (%d) %s",
|
||||||
|
this.getAutor(),
|
||||||
|
this.getTitel(),
|
||||||
|
this.getErscheinungsjahr(),
|
||||||
|
this.getVerlag()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,85 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Klasse für CDs mit Künstler und Spielzeit
|
||||||
|
* @author p8q-yhw-u1
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class CD extends Medium {
|
||||||
|
private String kuenstler;
|
||||||
|
private int spielzeit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt ein CD Objekt
|
||||||
|
* @param titel darf nicht leer sein
|
||||||
|
* @param erscheinungsjahr darf nicht < 0 sein
|
||||||
|
* @param kuenstler darf nicht leer sein
|
||||||
|
* @param spielzeit darf nicht < 1 sein
|
||||||
|
*/
|
||||||
|
public CD(String titel, int erscheinungsjahr, String kuenstler, int spielzeit) {
|
||||||
|
super(titel, erscheinungsjahr);
|
||||||
|
this.setKuenstler(kuenstler);
|
||||||
|
this.setGesamtspielzeit(spielzeit);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den Künstler der CD
|
||||||
|
* @param kuenstler darf nicht leer sein
|
||||||
|
*/
|
||||||
|
public void setKuenstler(String kuenstler) {
|
||||||
|
if (kuenstler == null || kuenstler.length() == 0) {
|
||||||
|
throw new IllegalArgumentException("Künstler darf nicht leer sein");
|
||||||
|
}
|
||||||
|
this.kuenstler = kuenstler;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gibt den Künstler der CD zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getKuenstler() {
|
||||||
|
return this.kuenstler;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt die Gesamtspielzeit der CD
|
||||||
|
* @param spielzeit darf nicht < 1 sein
|
||||||
|
*/
|
||||||
|
public void setGesamtspielzeit(int spielzeit) {
|
||||||
|
if (spielzeit < 1) {
|
||||||
|
throw new IllegalArgumentException("Spielzeit darf nicht kleiner als 1 sein");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.spielzeit = spielzeit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Gesamtspielzeit der CD zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public int getGesamtspielzeit() {
|
||||||
|
return this.spielzeit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Leihfrist für CDs zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int getLeihFrist() {
|
||||||
|
return 14;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt eine String repräsentation der CD zurück
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format(
|
||||||
|
"%s: %s (%d) %d Minuten",
|
||||||
|
this.getKuenstler(),
|
||||||
|
this.getTitel(),
|
||||||
|
this.getErscheinungsjahr(),
|
||||||
|
this.getGesamtspielzeit()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
/**
|
||||||
|
* Testet Subklassen von <code>Medium</code> und deren Leihfrist.
|
||||||
|
*/
|
||||||
|
public class MedienMain {
|
||||||
|
/** Hauptroutine */
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Medium[] medien= {
|
||||||
|
new Buch("Building Java Programs - A Back to Basics Approach",
|
||||||
|
2007, "Addison Wesley", "Stuart Reges, Marty Stepp"),
|
||||||
|
new CD("Are you Experienced?", 1967, "Jimi Hendrix", 40),
|
||||||
|
new Zeitschrift("Der Spiegel", 2010, 3)
|
||||||
|
};
|
||||||
|
|
||||||
|
for (Medium m : medien) {
|
||||||
|
System.out.println(m);
|
||||||
|
System.out.println(" Leihfrist: " + m.getLeihFrist());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abstrakte Medium Klasse für Bücher, CDs und Zeitschriften
|
||||||
|
* @author p8q-yhw-u1
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public abstract class Medium {
|
||||||
|
private String titel;
|
||||||
|
private int erscheinungsjahr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor eines Mediums
|
||||||
|
* @param titel darf nicht leer sein
|
||||||
|
* @param erscheinungsjahr darf nicht < 0 sein
|
||||||
|
*/
|
||||||
|
public Medium(String titel, int erscheinungsjahr) {
|
||||||
|
this.setTitel(titel);
|
||||||
|
this.setErscheinungsjahr(erscheinungsjahr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt das Erscheinungsjahr eines Mediums
|
||||||
|
* @param erscheinungsjahr darf nicht < 0 sein
|
||||||
|
*/
|
||||||
|
public void setErscheinungsjahr(int erscheinungsjahr) {
|
||||||
|
if (erscheinungsjahr < 0) {
|
||||||
|
throw new IllegalArgumentException("Erscheinungsjahr muss positiv sein");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt das Erscheinungsjahr des Mediums zurücck
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public int getErscheinungsjahr() {
|
||||||
|
return this.erscheinungsjahr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den Titel des Mediums
|
||||||
|
* @param titel darf nicht leer sein
|
||||||
|
*/
|
||||||
|
public void setTitel(String titel) {
|
||||||
|
if (titel == null || titel.length() == 0) {
|
||||||
|
throw new IllegalArgumentException("Titel darf nicht leer sein");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.titel = titel;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt den Titel des Mediums zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getTitel() {
|
||||||
|
return this.titel;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Leihfrist des Mediums zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public abstract int getLeihFrist();
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Klasse für Zeitschriften mit Nummer
|
||||||
|
* @author p8q-yhw-u1
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Zeitschrift extends Medium {
|
||||||
|
private int nummer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt ein Zeitschrift Objekt
|
||||||
|
* @param titel darf nicht leer sein
|
||||||
|
* @param erscheinungsjahr darf nicht < 0 sein
|
||||||
|
* @param nummer darf nicht < 1 sein
|
||||||
|
*/
|
||||||
|
public Zeitschrift(String titel, int erscheinungsjahr, int nummer) {
|
||||||
|
super(titel, erscheinungsjahr);
|
||||||
|
this.setNummer(nummer);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt die Nummer der Zeitschrift
|
||||||
|
* @param nummer darf nicht < 1 sein
|
||||||
|
*/
|
||||||
|
public void setNummer(int nummer) {
|
||||||
|
if (nummer < 1) {
|
||||||
|
throw new IllegalArgumentException("Nummer darf nicht kleiner als 1 sein");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.nummer = nummer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Nummer der Zeitschrift zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public int getNummer() {
|
||||||
|
return this.nummer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Leihfrist für Zeitschriften zurück
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int getLeihFrist() {
|
||||||
|
return 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt eine String repräsentation des Buches zurück
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format(
|
||||||
|
"%s (%d/%d)",
|
||||||
|
this.getTitel(),
|
||||||
|
this.getNummer(),
|
||||||
|
this.getErscheinungsjahr()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue