Hallo,
es geht um folgende Aufgabe,bei der ich eure Hilfe benötige:
a) Schreiben Sie eine Klasse Buch. Die Klasse Buch enthält die privaten
Attribute autor, titel und genre vom Datentyp String sowie das private Attribut
lfdNr (laufende Nummer) vom Datentyp Integer.
b) Schreiben Sie für jedes der Attribute eine get-Methode. Die Klasse Buch
enthält keine set-Methoden.
c) Überschreiben Sie den Standardkonstruktor der Klasse Buch. Der „neue“
Konstruktor bekommt die Attribute der Klasse als Parameter übergeben. Die
Initialisierung der Attribute erfolgt innerhalb des Konstruktors.
d) Schreiben Sie eine Klasse BuchApp. Erzeugen Sie in dieser Klasse ein
Array, das Speicherplatz für drei Objekte vom Typ Buch bereitstellt.
e) Verwenden Sie eine for-Schleife, um die Werte für die Attribute der
einzelnen Objekte einzulesen, die Objekte zu erzeugen und dem Array
zuzuordnen. Beachten Sie eine eventuelle Anpassung der Datentypen!
Benutzen sie zur Erzeugung der Objekte den Konstruktor aus c).
f) Verwenden Sie eine weitere for-Schleife, um die Werte der drei Objekte
auszugeben.
Das Programm habe ich soweit schon geschrieben, bloß gibt der mir nichts aus, weil ich auch in der Klasse main nichts stehen habe.
package buch;
public class Buch {
private String autor, titel, genre;
private int lfdNr;
Hallo,
es geht um folgende Aufgabe,bei der ich eure Hilfe benötige:
a) Schreiben Sie eine Klasse Buch. Die Klasse Buch enthält
die privaten
Attribute autor, titel und genre vom Datentyp String sowie das
private Attribut
lfdNr (laufende Nummer) vom Datentyp Integer.
b) Schreiben Sie für jedes der Attribute eine get-Methode. Die
Klasse Buch
enthält keine set-Methoden.
c) Überschreiben Sie den Standardkonstruktor der Klasse Buch.
Der „neue“
Konstruktor bekommt die Attribute der Klasse als Parameter
übergeben. Die
Initialisierung der Attribute erfolgt innerhalb des
Konstruktors.
d) Schreiben Sie eine Klasse BuchApp. Erzeugen Sie in dieser
Klasse ein
Array, das Speicherplatz für drei Objekte vom Typ Buch
bereitstellt.
e) Verwenden Sie eine for-Schleife, um die Werte für die
Attribute der
einzelnen Objekte einzulesen, die Objekte zu erzeugen und dem
Array
zuzuordnen. Beachten Sie eine eventuelle Anpassung der
Datentypen!
Benutzen sie zur Erzeugung der Objekte den Konstruktor aus c).
f) Verwenden Sie eine weitere for-Schleife, um die Werte der
drei Objekte
auszugeben.
Das Programm habe ich soweit schon geschrieben, bloß gibt der
mir nichts aus, weil ich auch in der Klasse main nichts stehen
habe.
package buch;
public class Buch {
private String autor, titel, genre;
private int lfdNr;
Es gibt keine main Klasse, nur eine Methode. Und die wird von deiner IDE wahrscheinlich als kleine Tipperleichterung in eine Klasse eingefügt, wenn Du die entsprechende Einstellung vorgenommen hast.
Ich lasse mir z.B. keine main-Methoden generieren, weil ich die nur 1x brauche und dann lieber per Hand schreibe, wenn ich die Anwendungslogik fertig hab.
java.lang.NoClassDefFoundError: buch/Main
Caused by: java.lang.ClassNotFoundException: buch.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: buch.Main. Program will exit.
Exception in thread „main“ Java Result: 1
Ah, ok. Jetzt hab ich die Codeschnippsel zusammengebastelt. Du hast tatsächlich eine KlasseMain angelegt und darin eine Methode leere Methode main gehabt.
Was willst Du denn eigentlich mit deiner main erreichen? Soll das die Ausgabe der drei Objekte werden? Und musst du diese Ausgabe zwingend in einer neuen Klasse anlegen oder kannst du die main direkt in der Klasse BuchApp erstellen?
Ich hab jetzt das Projekt neu erstellt ohne eine mail Klasse zu erzeugen und jetzt hats endlich geklappt
wie könnte ich denn erreichen 3 verschiedene Bücher ausgeben zu können?
wie könnte ich denn erreichen 3 verschiedene Bücher ausgeben
zu können?
ok, ich tipp das jetzt einfach mal ohne Syntaxcheck:
public static void main(String... args) {
// TODO einlesen der Werte von STDIN
Buch[] regal = new Buch[] {
new Buch(a1,b1,c1,d1),
Buch(a2,b2,c2,d2),
Buch(a3,b3,c3,d3)};
for(Buch b : regal) {
System.out.println(b);
}
}
Dabei gehe ich davon aus, dass deine Klasse Buch die Methode toString() entsprechend überschrieben hat, so dass eine sinnvolle Ausgabe erzeugt wird.
Das Einlesen von a1-a3,b1-b3,c1-c3 und d1-d3 hast Du ja sicherlich schon gelöst.