Hallo, ich habe ein paar Probleme beim Lösen folgender Aufgabe, ich hoffe ihr könnt mir helfen:
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.
Ich hab so angefangen, jedoch bekomme ich mehrere Fehlermeldungen ‚missing method body‘ und oben bei der Deklaration steht ‚illegal start of expression‘
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.
Klar, dein Code ist absoluter Quatsch, deshalb gehts nicht.
Ersten:
Die Aufgabe ist:
a) Schreiben Sie eine Klasse Buch…
Na dann schreibe doch eine Klasse Buch
und in deiner Main-Methode steht:
public void main(String[] args)
{
Buch buch = new Buch();
System.out.println(buch.getTitle());
}
Ja das habe ich soweit, danke
jetzt muss ich noch folgende Aufgabe bearbeiten:
Ü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.
Ist das soweit richtig?
public class buch {
private String autor, titel, genre;
private int lfdNr;
public buch(String autor, String titel, String genre) {
super();
}
Teste doch einfach mal selber ob das Programm bis jetzt macht was es soll. Erzeug doch mal mit deinem Konstruktor ein Objekt der Klasse und schau ob du dann den richtigen Autor, Titel etc ausgeben kannst.
Klassennamen schreibt man übrigens immernoch groß
Das Problem ist, ich weiß noch nicht mal, wie man sowas macht.
Also mit einem Konstruktor ein Objekt der Klasse erzeugen.
Könnten Sie mir eventuell dabei weiterhelfen?
Wenn Du Dich jetzt nicht mit Klassen, Objekten, Variablen, Werten, Deklarationen und Zuweisungen beschäftigst, wirst Du demnächst auf sehr große Probleme stossen.
Danke, ich les mir schon neben dem Programmieren die Kapitel dort durch, bloß ist das am Anfang schwer, diese Theorie auf eine vorgegebene Aufgabe anzuwenden. Daher frag ich dann auch hier in dem Forum, wenn ich nicht mehr weiter weiß.
Naja, es ist nur schwierig, die jetzt komplexeren Aufgaben zu lösen, wenn Du die Sprachmittel nicht zur Verfügung hast. Wenn Du ein Objekt der Klasse Buch anlegen sollst, musst Du schliesslich wissen, wie das geht. Die Aufgaben sollen dich da hin führen (so lesen sie sich jedenfalls für mich), aber ohne die Theorie wirst Du nicht weiter kommen.
Dieser Punkt ist wohl etwas trocken für die meisten Anfänger, aber ich denke, Du fährst besser, wenn Du Dich erstmal mit Objekten und Klassen und Konstruktoren beschäftigst und bei Verständnisproblemen hier nachfragst, als jetzt in jede Aufgabe reinzugehen, hier eine passable Antwort abzugreifen und hinterher nichts zu verstehen.
Eine Prüfung besteht man so höchstens mit Glück. Und mit echter Softwareentwicklung hast Du dann hoffentlich hinterher nichts zu tun.
Also ich habe jetzt folgendes in die main Methode geschrieben und trotzdem bekomme ich Fehlermeldungen:
public class Main {
public static void main(String[] args) {
Buch buch = new Buch(„John Grisham“, „Die Jury“, „Thriller“, 1234);
System.out.println(buch.getAutor());
}
}
Das sind die Fehler: Exception in thread „main“ java.lang.NoClassDefFoundError: buch/Buch
at buch.Main.main(Main.java:6)
Caused by: java.lang.ClassNotFoundException: buch.Buch
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)
… 1 more
Nein das dürfte nichts ausmachen. Irgendwas mit deiner Klasse Buch stimmt auf jeden Fall nicht. Ist sie im gleichen package wie die Main Klasse?
Kopier mal den kompletten Code von der Klasse Buch, lösche sie aus deinem Projekt und lege sie neu an. Dann den Code wieder rein kopieren.
okay jetzt hat’s geklappt
ich wollte jetzt mal ausprobieren, ob das klappt, dass der mir den buchtitel mit dem genre und dem Autor wiedergibt, klappt aber nicht so ganz.
public class Main {
public static void main(String[] args) {
Buch buch = new Buch(„John Grisham“, „Die Jury“, „Thriller“, 1234);
System.out.println(""+buch);
}
}
eigentlich müsste das doch so auch gehen oder nur mit hilfe von get.?
Okay, dann weiß ich jetzt bescheid
Las nächstes muss ich folgendes machen:
Schreiben Sie eine Klasse BuchApp. Erzeugen Sie in dieser Klasse ein
Array, das Speicherplatz für drei Objekte vom Typ Buch bereitstellt.
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
Also das Array hab ich hoffentlich richtig angelegt, bloß weiß ich nicht wie ich bei der for-Schleife vorgehen muss und ob diese in der main-Methode stehen muss oder woanders.
Also das Array hab ich hoffentlich richtig angelegt
Nee hast du nicht denn du sollst
Erzeugen Sie in dieser Klasse ein Array, das Speicherplatz für drei bjekte vom Typ Buch bereitstellt.
Du hast ein Array für den Typ String erstellt.
bloß weiß ich nicht wie ich bei der for-Schleife vorgehen muss und ob
du sollst mit einer for-Schleife alle Werte einlesen und ins Array schreiben.
hier Beispiele für Varianten der for-Schleifen
//allgemeiner Aufbau
for ( Zählvariable mit Anfangswert; Bedingung; Schrittweite)
{
// Anweisung, die wiederholt werden soll
}
// hochzählen in 1er-Schritten
for ( int zählvariable = Anfangswert; zählvariable Endwert; zählvariable-- )
{
// Anweisung, die wiederholt werden soll
}
Die Anweisungen die wiederholt werden sollen
sind das erzeugen eines Objektes Buch
das mit Werte fühlen, wenn es nicht bei der Erzeugung gemacht wurde
in das Array schreiben.
…for-Schleife vorgehen muss und ob diese in der main-Methode stehen muss oder woanders.
Die Frage kannst du dir sehr einfach beantworten, das hatten wir zusammen in einen anderen Thema ausführlich besprochen. Deine Antwort war: „habe ich verstanden“. Also kennst du doch die Antwort