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