Datenobjekt erstellen

Gocka

Grünschnabel
Hi ihr Lieben,

ich bin neu was Java angeht und hab ein Problem und hoffe ihr könnt mir helfen :p
Und zwar soll ich ein "Datenobjekt" erstellen, welches verschiedene Parameter speichert, die vom User eingegeben werden sollen zB Name,2 verschiedene Datums also Start und Ende usw? Mein Problem ist wie erstell ich das Object und wie kann ich es automatisch benennen lassen also fortlaufend mit einem Zähler sodass ich nur die Parameter eingeben muss?

Gruß
 

johannes_k

Grünschnabel
hallo Gocka,

du solltest versuchen, dich etwas ordentlicher auszudrücken. meinst du mit "datenobjekt", dass du eine klasse schreiben sollst? parameter sind an eine funktion übergebene werte. lediglich die werte kann man speichern, nicht die parameter. was meinst du mit "objekt benennen"?

lg, johannes
 

zeja

Erfahrenes Mitglied
Ich denke du solltest dir erstmal ein wenig was in "Java ist auch eine Insel" oder ähnlichen Java-Büchern durchlesen da dir doch noch viele Grundlagen fehlen.
 

Gocka

Grünschnabel
Ja mag sein, bin wie gesagt auch Anfänger :p
Bin auch dabei ein tutorial durchzuarbeiten, versuche aber parallel schon das Problem zu bearbeiten. Damit ich nicht vollkommen falschen Ansatz wähle wollt ich halt mal nachfragen.

Nochmal etwas genauer zum Problem, "Datenobjekt" hab ich nur gesagt weils halt die Daten enthält. Im Prinzip soll das wie ein Archiv werden, es sollen praktisch die Bücher von A-Z aufgereiht werden, das hatte ich vor mit einer verketteten Liste zu machen. Falls nachträglich Bücher eingereiht werden, werden sie in die Liste eingeschoben ohne die Ordnung zu stören. Dabei soll jedes Buch praktisch ein "Datenobjekt" sein, dass Titel, Status (entliehen, nicht entliehen), Author, Datum usw. enthält. Und da liegt mein Problem, wie sieht das aus? Ich hab bissl was probiert, weiß jetzt aber nicht weiter

PHP:
import java.io.* ;

class Buch
{
  // Parameter die ein Buch gespeichert haben soll
  String Titel;   
  String Author;     
  boolean Status;   
  int Datum;
  
  
  Buch(  String Name, String Name2, boolean status, int entleihung  )
  {
    Name = Titel ;
    Name2   = Author ;
    status    = Status ;
    entleihung = Datum;
  }
 
  

}

class Bibliothek
{
  public static void main( String[] args )throws IOException
  {
	  String Titel;   
	  String Author;     
	  
	  BufferedReader userIn = new BufferedReader(new InputStreamReader( System.in ) );
	  
	  System.out.println("Titel eingeben: " );
	  Titel    = userIn.readLine();
	    
	  System.out.println("Author eingeben: " );
	  Author    = userIn.readLine();
	  
	  
	  
	 Buch buch = new Buch(Titel, Author, false, 0);
	 
  }
}
 

grandmetre

Mitglied
Um mehrere Bücher zu speichern sollte eine Liste angelegt werden. Ich bevorzuge da immer den java.util.Vector. Den Umgeng mit diesem kann man in der api der sun - homepage nachschlagen: http://java.sun.com/javase/6/docs/api/. Hier findet man auch Links zu Tutorials.
Das Datum würde ich mit der java.util.Date Klasse realisieren. So kann man auch sicher gehen, dass Schaltjahre berücksichtigt werden.

Der Hinweis zu "java ist auch nur eine Insel" kann ich nur unterstützen. Denn die Grundlagen sollte man schon verstanden haben. Ohne die gehts nicht.
 

zeja

Erfahrenes Mitglied
Vector macht nur Sinn wenn man mehrer Threads verwendet und implizite Synchronisation benötigt.

Ansonsten ist ne ArrayList viel schneller.

Datum reicht als long abzulegen (System.currentTimeMillis()), zur Anzeige kann man das dann entsprechend in ein Datum formatieren.

Denke bitte daran dass du Parameter klein schreibst, Klassen dagegen groß.

In deiner Bibliothek würde ich dir nun empfehlen eine Methode addBook hinzuzufügen mit welcher du ein Buch in deine Bibliothek hinzufügen kannst. In der Methode würdest du dass dann in eine Liste packen.

Welches Java verwendest du denn?
 

Gocka

Grünschnabel
Habe das jdk1.6.0_06 und benutze eclipse als editor.

Warum nicht lieber ne LinkedList, da würde das neue Buch gleich alphabetisch einsortiert werden bei ner ArrayList müsst ich das doch manuell machen oder?
 

zerix

Hausmeister
Moderator
Eine LinkedList sortiert auch nicht.
Wenn du eine Liste sortieren möchtest, kannst du dann Collections.sort verwenden.

Eine LinkedList ist nur sinnvoll, wenn du nur durch die Liste interierst, da die LinkedList da sehr schnell ist. Brauchst du aber RandomAccess dann ist die ArrayList die bessere Wahl.

MFG

Sascha