Wie erstelle ich diese Klassen?

heathcliff

Mitglied
Implementieren Sie eine Bu ̈cherhalle, welche aus den Klassen Book, Library und LibraryTest besteht. Die Klasse Book dient der Erzeugung von Buch-Objekten, wobei jedes Buch einen Titel, einen Autor, ein Genre, ein Erscheinungsjahr und eine ISBN-Nummer besitzt. Weiterhin besitzt diese Klasse einen Konstruktor, der es erlaubt sa ̈mtliche Variablen zu initialisieren sowie die Methode public String toString(), welche einen String in der Form
Java ist auch eine Insel, Christian Ullenbook
2009
Sachbuch
978-3836213714
zuru ̈ckgibt.
Die Klasse Library beschreibt Bu ̈cherhallen-Objekte. Ein Bu ̈cherhallen-Objekt verwaltet eine Menge von Bu ̈chern mit Hilfe eines Arrays. Der Konstruktor von Library soll die zwei Parameter int initialCapacity und int capacityIncrement besitzen. int initialCapacity legt fest, wievieleBu ̈cherinderBu ̈cherhallezuBeginnabgelegtwerdenko ̈nnenundint capacityIncrement legt die Anzahl von Bu ̈chern fest, um welche die Kapazita ̈t der Bu ̈cherhalle erho ̈ht wird, wenn diese voll ist. Zudem besitzt ein Bu ̈cherhallen-Objekt die Methoden public void insert(Book b), welche es ermo ̈glicht ein Buch hinzuzufu ̈gen, public void delete(Book b), welche es ermo ̈glicht ein Buch zu lo ̈schen und die Methode public void print(), die das komplette Bu ̈cherverzeichnis auf der Konsole ausgibt.

Ich sitze an dieser Aufgabe und muss zugeben ich habe keine Ahnung was ich machen soll..
Könntet mir ihr erklären bzw einen Ansatz geben wie ich diese Methode bzw dieses Projekt anfangen soll?
Soll ich eine Bibliothek erstellen in dem ich neue Bücher durch die Klasse Book erzeugen soll und dann in der Library abspeichere? Bloß die Frage stellt sich mir, wie ich das Ganze angehen solle, da ich zugegeben mich kaum mit dem Thema auseinander gesetzt habe ( Mathe und Theoretische Informatik war zu jenem Zeitpunkt wichtiger ^^ ). Ich würde mich über jeden Tipp und Vorschläge freuen . :)
 
Zuletzt bearbeitet:

wolfgang63

Bekanntes Mitglied
Wie eine Klasse definiert wird wirst du wohl wissen, sonst brauchst du die Aufgabe gar nicht angehen.

Erstelle die Klassen nacheinander wie im Aufgabentext vorgegeben.
Als erstes die Buchklasse, sie hält die Eigenschaften (=Variablen) des Buches mit seinem Konstruktor.
Dann die Libary Klasse die eigentlich nur die Bücher über ein Array speichert und Methoden zur Ausgabe, Erzeugen und Löschen der Bücher hat.
Und zum Schluß erstellst du noch die Testklasse mit der Mainmethode die die Methoden deiner Libaryklasse aufruft.
Ist gar nicht so schwer. Fang einfach an. Wenns wo klemmt, stell deinen Code hier ein, dann hilft die bestimmt jemand weiter.
 

heathcliff

Mitglied
Erstmal recht vielen Dank für die schnelle Antwort!
Ja mir ist bewusst was eine Klasse ist und was sie auch tut .^^

Also ich habe jetzt mit der ersten Klasse angefangen und versuche die Eigenschaften in einer Arraylist zu speichern.

Aber wie speichere ich etwas in diesem Array bzw in die Arraylist hinein?
Java:
import java.util.ArrayList;

 class Book {
	 public static void main(String[] args) {

    String autor;

    ArrayList book = new ArrayList(); 

    book.add("Autor");
    book.add("Genre");
    book.add("Erscheinungsjahr");
    book.add("ISBN");
    
    System.out.println(book);
    
    	
    }
 }
 

wolfgang63

Bekanntes Mitglied
Langsam....
Die Buchklasse definiert nur die Eigenschaften des Buches.
Hat einen Konstruktor der die Datenfelder des Buches initialisiert.
Die Mainmethode hat hier gar nichts verloren.
Und eine
Code:
public String toString()
Methode die dann für jedes Buch zur Ausgabe genutzt wird.

Dein ganzes Programm wir auf drei separate Dateien (=Klassen) aufgeteilt.
Die ArrayList hält dann deine Bücher und kommt in die Libary-Klasse.
 

wolfgang63

Bekanntes Mitglied
So ähnlich

Code:
public class Book {

	// Datenfelder
	String autor;
	String genre;
	int erscheinungsjahr;
	String isbn;

	// Konstruktor
	public Book(String autor, String genre, int erscheinungsjahr, String isbn) {
		this.autor = autor;
		this.genre = genre;
		this.erscheinungsjahr = erscheinungsjahr;
		this.isbn = isbn;
	}
	
	// Datenrückgabe als String
	public String toString() {
		return "Book [autor=" + autor + ", genre=" + genre
				+ ", erscheinungsjahr=" + erscheinungsjahr + ", isbn=" + isbn
				+ "]";
	}

}
 

heathcliff

Mitglied
Oh dann habe ich das ja fast dasselbe gerade geschrieben ^^
danke habe es jetzt soweit hin verbessert
bloß das mit dem this. Was macht die Eingabe exakt wenn ich fragen darf?
Sonst habe ich die erste Klasse auch soweit beschrieben und nun muss ich die Library-class mit einer Arraylist lösen oder?
 

wolfgang63

Bekanntes Mitglied
Das Datenfeld autor und der Übergabeparameter autor sind 2 verschiedene Speicher.
Mit "this.variable" wird auf das Datenfeld dieses Objektes verwiesen!
Sprich -> das Datenfeld autor = dem Übergabewert.
Du kannst in dem Konstruktor auch einen ander Variablennamen verwenden, dann brauchst du das "this" nicht.
 

heathcliff

Mitglied
ah ok ich verstehe. Das ist mir jetzt klarer geworden alles.
Also nun muss ich die Library-class mit einer Array-List lösen oder?
Wie füge ich in der Arraylist neue werte zu bzw erweitere ich diese Liste wenn die Liste voll ist?
 

heathcliff

Mitglied
Java:
import java.util.ArrayList;
public class Library {
	    String autor;
		String genre;
		int erscheinungsjahr;
		String isbn;

	    ArrayList<Book> Book; 

	    Library(String autor) {
	        this.autor = autor;
	        this.Book = new ArrayList<Book>();
	    }

	    void addBook(Book autor) {
	        Book.add(autor);
	    }

}
sieht das soweit richtig aus? ^^
 
Zuletzt bearbeitet:

wolfgang63

Bekanntes Mitglied
Mit der add Methode der ArrayList.

Code:
public void neu(Book book) {
		NameDerArrayList.add(book);
	}

Voll wird die ArrayList nicht, die Größe wird selbständig immer erweitert.
 

heathcliff

Mitglied
ah ok danke muss ich public dazu schreiben oder reicht void? macht das überhaupt einen Unterschied?
Und noch eine Frage ich habe nun die Arrays. Aber wie kommen jetzt Werte in diesen Array bzw. wie kann ich den Array so modifizieren, dass ich die Werte ändern, löschen oder suchen kann?
 

heathcliff

Mitglied
Dann habe ich noch die Frage was das hier bedeuten soll : "int initialCapacity und int capacityIncrement". Diese beiden Konstruktoren soll ich laut Aufgabe ja in die Methode schreiben.^^
 

kaoZ

Top Contributor
Da muss ich ARadauer zustimmen , so komplett ohne Grundkenntnisse wir der Thread hier 300 Seiten lang, zumindest die Definition von Klassen , Objekten und Variablen würden denke ich , Dich schon um einiges nach vorne bringen , zudem sollten man Member oder auch anders ausgedrückt Instanzvariablen als private deklarieren. ;)

[TIPP]
PS: initialCapacity = Startkapazität | capacityIncrement = kapazitäts Vergrößerung

Inkrementieren = erhöhen , dekrementieren = verringern

gehört übrigends auch mit in die Grundlagen ^^
[/TIPP]
 
Zuletzt bearbeitet:

heathcliff

Mitglied
So sieht nun meine Library class erstmal aus
Java:
import java.util.ArrayList;
public class Library {
	    String autor;
		String genre;
		String isbn;
		int erscheinungsjahr;
		int initialCapacity; 
		int capacityIncrement;
	    
		ArrayList<Book> Bücher; 

	    Library(String autor, String genre, String isbn, int erscheinungsjahr) {
	        this.autor =autor ;
	        this.genre=genre;
	        this.isbn=isbn;
	        this.erscheinungsjahr=erscheinungsjahr;
	        this.Bücher = new ArrayList<Book>();
	       
	    }
	     public void insert(Book b){
	    	 Bücher.add(b);
	     }
	     public void delete(Book b){
	    	 Bücher.remove(b);
	     }
	     public void print(){
	    	System.out.print(Bücher);
	     }
	    }
Ja ich bin dabei eins zu lesen, jedoch das was in der Aufgabe verlangt wird, wird erst nächste VL so wirklich behandelt.^^

Habe ich in meiner Arraylist jetzt das nötigste drin? Oder fehlt bzw. habe ich einen Fehler gemacht?^^
 

kaoZ

Top Contributor
Java:
String autor;
String genre;
String isbn;
int erscheinungsjahr;

Wird das in deiner Libary Klasse gefordert ?

eigentlich fügt man deiner Libary ja Bücher hinzu, die Wiederrum diese Daten Referenzieren und ebend keine Autoren o.ä;)

[EDIT]
Sinn machen würde es wenn du Getter hättest die dann lediglich an deine Book klasse delegieren um an Titel , autor etc. zu kommen, außer natürlich es ist gefordert das du deine Libary so erstellen musst/sollst
[/EDIT]
 
Zuletzt bearbeitet:

heathcliff

Mitglied
Die Library-Klasse soll meine Menge von Büchern(die Bücher haben diese Eigenschaften) verwalten und dieses soll mit Hilfe eines Arrays geschehen. Deswegen dachte ich mir, dass diese mitgespeichert werden müssen, da ich sonst die Autoren etc sonst nicht verwalten kann bzw habe. Ich hoffe ich hab die Aufgabe so richtig verstanden.
Dann halt noch die beiden Konstruktoren
Java:
int initialCapacity 
 int capacityIncrement
die dann besagen, wie viele Bücher ich am Anfang ablege und die Kapazität der bücherhalle erhöhe wenn sie voll ist. Zudem das hinzufügen,löschen und ausgeben des ganzen Bücherverzeichnis.^^
Und die nächste bzw nächste Klasse überprüft dann die Klasse Book und Library.
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Angenommen du hast einen Konstruktor der dir eine Libary Objekt erstellt


Java:
public Libary(){

}


dann könntest du jetzt folgendes machen und sagen du möchtest das diese standartmäßig eine initialGröße von z.B 1 hat

Java:
public Libary(){
this.initialCapacity = 1;
}

oder lässt beim erstellen des Konstruktors festlegen wie groß diese Libary sein soll

Java:
public Libary(int capacity){
this.initialCapacity = capacity;
}

dies könnte man auch über einen Setter realisieren

z.B

Java:
public void setCapacity(int capacity){
this.initialCapacity = capacity;
}

[EDIT]was genau das allerdings bewirken soll beim nutzen einer ArrayList hab ich jetzt noch nicht ganz gecheckt, da du die größe dieser beim erstellen nicht festlegen kannst[/EDIT]
 
Zuletzt bearbeitet:

heathcliff

Mitglied
Danke für die schnelle Antwort!:)
Ok soweit habe ich es verstanden. Ich hätte mir die Aufgabenstellung ein wenig gründlicher durchlesen sollen, stand ja alles drin, was zu beachten war.^^
Dasselbe kann ich dann auch analog mit
Java:
int capacityIncrement
machen oder?^^
 

kaoZ

Top Contributor
also, ich denke mal eher das der initialwert , folgender ist wenn du eine leere Libary erzeugst, da du auf die Anfangsgröße der ArrayList meines Wissens nach bei Erstellung keine Einfluss nehmen kannst

Java:
int initialCapacity = bookList.size();

//  sprich = 0;

[EDIT]Sinn machen würde es wenn du einen Wert hättest , der bei 0 beginnt, für ebend 0 Bücher in der Libary, der dann für jedes Buch welches du mit deiner add. methode hinzufügst um jeweils +1 inkrementiert wird[/EDIT]
 
Zuletzt bearbeitet:

heathcliff

Mitglied
In der Aufgabe wird von einem Array gesprochen. In einem Array kann man die Größe des Arrays ja variieren und in einer Liste halt nicht oder verstehe ich das falsch?
Ja das scheint mir jetzt sehr plausibel zu sein^^.
Nochmals vielen Dank für die nächtliche Hilfe :)
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
in einem Array
Code:
String[] liste = new String[30]
kann man die größe festlegen.

bei einer ArrayList jedoch nicht / bzw nur über den konstruktor

Code:
ArrayList<String> list = new ArrayList<String>(20);

man könnte jetzt hergehen und folgendes machen

Java:
public Libary(int capacity){
this.initialCapacity = capacity;  // speichert den Wert als Attribut einer Libary
ArrayList<Book> list = new ArrayList<SBook>(this.initialCapacity); // setzt die Länge der ArrayList zu beginn auf 20 Plätze
}

legt eine Libary an die eine "Startkapazität" von 20 Stellplätzen für Bücher hat.....
 
Zuletzt bearbeitet:

heathcliff

Mitglied
Dann muss ich wohl einen Array erstellen mit den jeweiligen Werten, damit ergibt die Aufgabe auch wieder Sinn. Heißt das ich muss meine ganze Methode neu schreiben?

Ok soweit so gut^^.
Wie bekomme ich die Eigenschaften der Bücher in den Array bzw. das der Wert im Array dann diese Eigenschaften bekommt? In diesem Falle mit der ISBN, Autor,release.

Also kann ich doch die Arraylist verwenden? ^^Wäre mir irgendwie lieber, jedoch weiß ich jetzt nicht ob meine Arraylist jetzt richtig ist.^^
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
du musst in der Klasse Book , öffentliche Getter erstellen , welche dir diese Informationen zu dein einzelnen Büchern liefern, diese kannst du dann mit dem Index deiner Libary, und einer Methode die an dein Book element delegiert abrufen

[EDIT]
Du packst keine Eigenschaften der Bücher in das Array( die Libary ) sondern die Bücher Selbst ! ;)

Das Array / die Arraylist IST deine Libary, also deine "virtuelle" Bücherei ;)
[/EDIT]
 
Zuletzt bearbeitet:

heathcliff

Mitglied
Ja also ist dies so richtig? Ich habe ja meine "Bücher" jetzt in meiner Arraylist hoffe ich mal :D
Java:
ArrayList<Book> Bücher; 

	    Library(String autor, String genre, String isbn, int erscheinungsjahr) {
	        this.autor =autor ;
	        this.genre=genre;
	        this.isbn=isbn;
	        this.erscheinungsjahr=erscheinungsjahr;
	        this.Bücher = new ArrayList<Book>();
 

kaoZ

Top Contributor
Hier mal ein sehr einfach gehaltenes Beispiel damit du es zumindest mal gesehen hast,

hierbei enthält LibaryTest nur die main Methode, also den Einstiegspunkt in deinem Programm

Libary steht Quasi für deine Bücherei,

und Book ebend für dein Buch, welches in diesem Fall nur einen Titel zu Anschauungszwecken hat


Java:
import java.util.ArrayList;

public class Libary {

	ArrayList<Book> bookList;
	
	public Libary(int initialCapacity) {
		bookList = new ArrayList<Book>(initialCapacity);
	}
	
	public void addBook(Book book){
		bookList.add(book);
	}
	
	public String getBookName(){
		for(Book b : bookList){
			return b.getName();
		}
		return null;
	}
}

Java:
public class Book {

	
	private String name;
	
	public Book(String name) {
		this.name = name;
	}
	
	public String getName(){
		return this.name;
	}
}

Java:
public class LibaryTest {
	
	public static void main(String[] args) {
		
		//Erstelle neue Bücherei
		Libary libary = new Libary(20);
		
		//Erstelle ein Buch
		Book b = new Book("WTF ?!, So easy o0");
		
		//Füge das Buch der Bücherei hinzu
		libary.addBook(b);
		
		//Gebe alle Titel in der Bücherei aus 
		System.out.println(libary.getBookName());  
	
	}

}

[TIPP]
Anfangs ist es schwierig sich in die Objektorientierten dinge hineinzuversetzen, stell dir einfach folgendes vor,

Klassen sind dein Bauplan für Objekte, Objekte wie ebend in deinem Fall Büchereien, diese haben bestimmte Eigenschaften, oder auch Attribute genannt, z.B eine Größe, hier in form einer Liste, welche Bücher aufnimmt.
Somit ist ebend diese Liste der Stellplatz in deiner Bücherei ;)
[/TIPP]

Alles in allem wird es einfacher um so intensiver du dich damit beschäftigst, versuch einfach mal anhand der beispiele die Klasse Libary auf deine vorgaben anzupassen
 
Zuletzt bearbeitet:

heathcliff

Mitglied
Vielen Danke für die Mühe!!!:):)
sehr nett von dir ^^
Ich habe meine beiden Klassen jetzt modifiziert. Gettern wurden jetzt hinzugefügt.
Jetzt bleibt mir nur noch die letzte Klasse ^^
Ich soll die Korrektheit beider Klassen prüfen.
Ich soll eine Sequenz von Anweisungen überlegen, die das Einfügen von Büchern in eine leere, teilweise gefüllte und vollständige gefüllte Bücherhalle überprüft.
Sprich jetzt kommt meine main-Methode in die LibraryTest-Klasse und muss diese implementieren um dieses zu testen richtig?^^
 

heathcliff

Mitglied
Danke für den Tipp das hat mir das ganze noch besser veranschaulicht.
Ja Java macht mir langsam immer mehr Spaß :)
den theoretischen Kram der Informatik kann ich jetzt erstmal beiseite legen .^^
 

kaoZ

Top Contributor
naja du musst das große ganze sehen ,

du stellst jetzt bücher in deine Bücherei, damit du nachher weißt wieviele bücher darin stehen, müsstest du jetzt jedesmal wenn z.B ein Buch hinzukommt, einen Zähler inkrementieren

hättest du jetzt in deiner Bücherei eine Methode die dir ebend genau diesen Wert, also die Zahl der aktuell in der Bücherei stehenden Bücher liefern würde, könnte man anhand von bestimmten Bedingungen prüfen und dementsprechende Anweisungen einleiten;)
 

heathcliff

Mitglied
Book:
Java:
public class Book {
	
	String autor;
	String genre;
	int erscheinungsjahr;
	String isbn;
	// Konstruktor
	public Book(String autor, String genre, int erscheinungsjahr, String isbn) {
		this.autor = autor;
		this.genre = genre;
		this.erscheinungsjahr = erscheinungsjahr;
		this.isbn = isbn;
	}	
	public String toString() {
		return "Book [autor=" + autor + ", genre=" + genre
				+ ", erscheinungsjahr=" + erscheinungsjahr + ", isbn=" + isbn
				+ "]";
	}
}
Library:
Java:
import java.util.ArrayList;
public class Library {
	    String autor;
		String genre;
		String isbn;
		int erscheinungsjahr;
		int initialCapacity; 
		int capacityIncrement;
		
		
	    
		ArrayList<Book> Bücher; 

	    Library(String autor, String genre, String isbn, int erscheinungsjahr,int capacity) {
	        this.autor =autor ;
	        this.genre=genre;
	        this.isbn=isbn;
	        this.erscheinungsjahr=erscheinungsjahr;
	        this.initialCapacity = capacity;
	        this.Bücher = new ArrayList<Book>(this.initialCapacity);
	       
	    }
	     public void insert(Book b){
	    	 Bücher.add(b);
	     }
	     public void delete(Book b){
	    	 Bücher.remove(b);
	     }
	     public void print(){
	    	System.out.print(Bücher);
	     }
	    
	     public void Library(int increment){
	    	 this.capacityIncrement=increment;
	     }
	    }
und in Library kommt die Inkrementierung hinzu also
Java:
void zähleBuch(int Anzahl)
for (i=0;i<20,i++)
Anzahl(i)++;{
 

kaoZ

Top Contributor
Java:
import java.util.ArrayList;
public class Library {
	    String autor;
		String genre;
		String isbn;
		int erscheinungsjahr;
		int initialCapacity; 
		int capacityIncrement;
		
		
	    
		ArrayList<Book> Bücher; 

[/QUOTE]

Hier nochmal meine Frage, muss / soll das in deiner Libary stehen ? das sind ja angaben mit denen du Bücher erstellst,

zum anderen schreibt man variablen in Java lowerCamelCase

[code]ArrayList<Book> bücher

public void Library(int increment){
this.capacityIncrement=increment;
}

argh...

öffentlich, void als Rückgabewert, name Wie deine Klasse und Sinn ?! ( das Eclipse das nicht makiert wundert mich )

wenn der Wert steigen soll wenn du bücher hinzufügst , muss er auch dahin wo du bücher hinzufügst,
wenn der Wert steigen soll wenn du Büchereien erstellst, musst du diesen im Konstruktor inkrementieren und statisch machen damit er nicht immer wieder bei 0 beginnt.


public void print(){
System.out.print(Bücher);
}

Dabei wird sowas rauskommen

Code:
4558975@sdfsdf564875

hier müsstest du eine for schleife oder einen Iterator nutzen der über alle elemente in der liste iteriert und die entsprechende Methode für alle objekte aufruft

wenn man toString schon nutzt dann überschreibt man diese Methode mit entsprechender Annotation, sonst kann es dir schnell passieren das du anstelle zu überschreiben , die Methode überlädst ohne es zu wollen.

Java:
@Override
public String toString(){
 return .....
}

void zähleBuch(int Anzahl)
for (i=0;i<20,i++)
Anzahl(i)++;{

1. nicht so
2. nochmal zurück zu der Frage , was genau möchtest du hier zählen , Bücher oder Büchereien ? ;)
 
Zuletzt bearbeitet:

heathcliff

Mitglied
Ja also ISBN Autor etc soll mit rein ^^oder ich fass alles als " buch" zsm .
Das zweite habe ich vergessen zu löschen eclipse hat mir es angezeigt.:D
ich möchte die Bücher zählen, die ich hinzufüge, damit ich prüfe ob die Bibliothek dann voll ist oder nicht
 
Zuletzt bearbeitet:

heathcliff

Mitglied
ok ^^
die Frage ist wie setze ich dieses nun um?
Java:
 }
	     public void insert(Book b){
	    	 Bücher.add(b);
da hochzählen und sonst runterzählen bei
Java:
public void delete(Book b){
	    	 Bücher.remove(b);
kann ich das einfach mit einer if schleife lösen? Und wenn ja, was muss ich dabei beachten?

Java:
   private static int anzahlbuch = 0;

	     public void insert(Book b){
	    	 Bücher.add(b);
	    	 anzahlbuch++;
	    	 
	     }
	     public void delete(Book b){
	    	 Bücher.remove(b);
	    	 anzahlbuch--;
	     }
ginge dieses auch so?
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
z.B könnte man wenn man eine Integer Variable
Code:
libarySize
hat

ok ^^
die Frage ist wie setze ich dieses nun um?
Java:
 }
public void insert(Book b){
 Bücher.add(b);	    	 
 libarySize = libarySize + 1;

 // oder einfach libarySize++;

oder ebend umgekehrt,

dann benötigst du noch einen öffentlichen getter der dir diesen Wert zurückgibt,

zu der Frage mit der Schleife, kurz und ergreifend : Nope ;)
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Man könnte auch mit

Java:
Int libarySize = bookList.size ();

Herausfinden wie groß die libary ist, nur so am Rande ;)
 

heathcliff

Mitglied
Java:
import java.util.ArrayList;
public class Library {
	    String autor;
		String genre;
		String isbn;
		int erscheinungsjahr;
		int initialCapacity; 
		int capacityIncrement;
		int anzahl;
		
	    
		ArrayList<Book> Bücher; 

	    Library(String autor, String genre, String isbn, int erscheinungsjahr,int capacity) {
	        this.autor=autor;
	        this.genre=genre;
	        this.isbn=isbn;
	        this.erscheinungsjahr=erscheinungsjahr;
	        this.initialCapacity=capacity;
	        this.Bücher = new ArrayList<Book>(this.initialCapacity);
	       
	    }
	    


	     public void insert(Book b){
	    	 Bücher.add(b);
	    	 anzahl++;
	    	 
	     }
	     public void delete(Book b){
	    	 Bücher.remove(b);
	    	 anzahl--;
	     
	     if(initialCapacity==anzahl)
	    	 initialCapacity=initialCapacity+capacityIncrement;
	     return;
	    
	     }

	
	     }
so weit so gut... Wie definiere ich jetzt mein Inkrement sprich den wert von Inkrement der dann später erhöht wird wenns voll ist?
 

kaoZ

Top Contributor
Deswegen auch die Aufforderung sich erstmal das Grundwissen anzueignen ;)

dein inkrement spiegelt die größe deiner Bücherei wieder, dieser ergibt sich also aus der entweder beim erstellen dieser im Konstruktor festgelegten größe

Java:
ArrayList<Book> bookList = new ArrayListy<Book>(20);

in diesem fall bietet deine Bücherei bei erstellung also Platz für 20 Bücher

also wenn
Code:
initialCapacity = bookList.size();
ist

wäre demnach

Code:
initialCapacity =  20;

bei ArrayListen ist es so das wenn du per
Code:
.add(Object)
Elemente Hinzufügst diese Liste sich automatisch erweitert, sprich jeweils um die hinzugefügten Bücher wächst diese Liste automatisch mit , sprich wenn du jetzt 20 Bücher hinzugefügt hast und würdest dann ein 21tes hinzufügen , gäbe es bei einem normalen Array eine
Code:
IndexOutOfBounds
Exception während die ArrayList sich dynamisch an die neue Situation anpasst und ebend 21 Plätze zur verfügung stellt.

also entspricht dann quasi Größe deiner Bücherei

Java:
//Bei erstellung der Bücherei 
initialCapacity = bookList.size();

// nach überschreiten der voreingestellten Kapazität
int libarySize = initialCapacity + bookCounter;

wobei in diesem Beispiel bookCounter ebend der Wert wäre der für jede hinzugefügte buch entweder in/ oder dekrementiert würde.

[TIPP]
Dein Code beinhaltet immer noch ziemlich viel unnötigen Ballast , bzw unsinnigen , nicht sinnvollen / brauchbaren Code
, ich empfehle die Kapitel des Buches welches du liest zu Ende zu lesen , dich mit der Materie vertrauter zu machen und dann ein refactoring durchzuführen. [/TIPP]

[EDIT]
Desweiteren könnte man ebend anhand einer Bedingung festlegen wie groß eine Bücherei sein darf, und ebend wenn das maximum dieser erreicht ist eine Anweisung für den eintrettenden fall erstellen , z.B eine neue Bücherei zu eröffnen welche den Überlauf an Büchern auffängt
[/EDIT]
 
Zuletzt bearbeitet:

heathcliff

Mitglied
ach darauf war die Frage. Nein eine Bibliothek hat keine aber ein Buch schon das war meine Aussage seit gestern. Deswegen habe ich mich gefragt ob ich die ISBN mit verwerten soll, da das Buch die "ISBN" ja hat.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
M Wie erstelle ich dieses Parallelogramm??? Java Basics - Anfänger-Themen 6
M Best Practice Wie erstelle ich ein cardlayout? Java Basics - Anfänger-Themen 22
S Wie erstelle ich eine Vorbedingung für eine Variable einer Methode ? Java Basics - Anfänger-Themen 5
J Wie erstelle ich ein Testprogramm in Eclipse? Java Basics - Anfänger-Themen 6
I erstelle Vorschaubild mit der lib PDF-Renderer und möchte danach Dateiname ändern -> geht aber nicht Java Basics - Anfänger-Themen 0
D Wie erstelle ich eine neue Hauptklasse mit eclipse? Java Basics - Anfänger-Themen 3
J Wie erstelle ich Vektoren? Java Basics - Anfänger-Themen 5
J wie erstelle ich nun ein echtes "programm"? Java Basics - Anfänger-Themen 3
SexyPenny90 Wie erstelle ich ein extra Fenster mit einer Meldung Java Basics - Anfänger-Themen 2
N wie erstelle ich einen pfad? Java Basics - Anfänger-Themen 4
H Wie erstelle ich eine Liste? Java Basics - Anfänger-Themen 4
J wie erstelle ich die *.ico-datei? Java Basics - Anfänger-Themen 4
K Wie erstelle ich eine txt-Datei? Java Basics - Anfänger-Themen 10
G Wie erstelle ich eine ausführbare ".jar" Datei? Java Basics - Anfänger-Themen 22
A wie erstelle ich ein java programm= Java Basics - Anfänger-Themen 6
F Objekte dynamisch erstelle Java Basics - Anfänger-Themen 11
A Problem mit JBuilder -> Wie erstelle ich eine Datei?! Java Basics - Anfänger-Themen 5
P Wie kann diese Schleife beenden Java Basics - Anfänger-Themen 1
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
M Wie kommen diese Ausgaben zustande? Java Basics - Anfänger-Themen 12
W Warum diese Fehlermeldung? Java Basics - Anfänger-Themen 12
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
Alen123 Wie würdet ihr diese Aufgabenstellung lösen? Java Basics - Anfänger-Themen 18
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
Fats Waller Wofür stehen diese Konstanten im Java Labyrinth ? Java Basics - Anfänger-Themen 5
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
dieter000 Wie schreibe ich diese ZEile um? Java Basics - Anfänger-Themen 1
M Objekt mit eindeutiger ID löschen, das nächste Objekt hat dann diese ID Java Basics - Anfänger-Themen 5
J Womit kann ich diese Methode testen? Java Basics - Anfänger-Themen 5
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
T Was macht diese Zeile? Java Basics - Anfänger-Themen 9
G Woher kommt diese Eigenschaft Java Basics - Anfänger-Themen 5
O Was tut diese Methode? und wie müssen die assertions aussehen? Java Basics - Anfänger-Themen 21
F Wie implementiere ich diese Aufgabenstellung? Java Basics - Anfänger-Themen 16
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
F Warum erhalte ich diese Fehler bei der Einbindung von SQLite JDBC in Eclipse? Java Basics - Anfänger-Themen 1
F Warum verläuft DIESE Schleife endlos? Java Basics - Anfänger-Themen 4
D Was bedeutet diese Schreibweise? Java Basics - Anfänger-Themen 9
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
W Wie vermerke ich diese Struktogramm Passage in Java Syntax? Java Basics - Anfänger-Themen 8
N Methoden warum wird diese Methode aufgerufen Java Basics - Anfänger-Themen 9
L Input/Output Wieso kommt diese Ausgabe? Java Basics - Anfänger-Themen 12
L Datentypen Date API - diese Woche bestimmen Java Basics - Anfänger-Themen 1
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
B Kann mir jemand diese Bedingung erklären Java Basics - Anfänger-Themen 5
B Wie könnte man mit Java diese Matheaufgabe lösen Java Basics - Anfänger-Themen 7
B Wie würdet ihr diese Methode erklären? Java Basics - Anfänger-Themen 2
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
kilopack15 Ist diese setter-Methode richtig? Java Basics - Anfänger-Themen 2
B Wie funktionieren diese Methoden in diesem Sortierverfahren genau? Java Basics - Anfänger-Themen 2
B Was macht diese Methode? Java Basics - Anfänger-Themen 9
P Was macht diese methode Java Basics - Anfänger-Themen 2
P Terminieren diese Schleifen Java Basics - Anfänger-Themen 6
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
T Zeilen des ListArray nach einem Wort durchsuchen und diese Zeile ausgeben Java Basics - Anfänger-Themen 4
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
G Vertsändnisfrage zu Code - Wie kommt diese Ausgabe zustande? Java Basics - Anfänger-Themen 2
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
D Erste Schritte Dynamisch Objekte erzeugen und diese durchsuchen Java Basics - Anfänger-Themen 7
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
A Wieso kann ich nicht auf diese Variable zugreifen? Java Basics - Anfänger-Themen 6
A Erste Schritte Wieso funktioniert diese Klasse nicht Java Basics - Anfänger-Themen 11
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
M Erste Schritte Wie kommt man auf diese Ausgabe? Java Basics - Anfänger-Themen 3
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
SexyPenny90 Wieso ist diese eigene Equals-Methode schlecht? Java Basics - Anfänger-Themen 17
F verstehe diese Variable nicht... Java Basics - Anfänger-Themen 4
B for-schleife - Was tut diese? Java Basics - Anfänger-Themen 11
A Wie kommt diese NullPointerException zustande? Java Basics - Anfänger-Themen 13
D Warum ist diese Interfacedeklaration falsch? Java Basics - Anfänger-Themen 5
T Warum brauche ich diese IOException? Java Basics - Anfänger-Themen 30
R Welche Datenstruktor für diese Liste? Java Basics - Anfänger-Themen 6
B Erste Schritte Welche Kenntnisse brauche ich für diese Programmidee? Java Basics - Anfänger-Themen 4
L Immer diese Arrays Java Basics - Anfänger-Themen 11
H Was macht diese Methode? Java Basics - Anfänger-Themen 3
A was berechnet diese programm? Java Basics - Anfänger-Themen 13
G Was bedeutet diese Zeile? Java Basics - Anfänger-Themen 2
J Warum muss diese Methode static sein ?! Java Basics - Anfänger-Themen 7
H Warum funktioniert diese kleine Methode nicht? Java Basics - Anfänger-Themen 8
P ich versteh diese Methode nicht ;? Java Basics - Anfänger-Themen 7
P Datentypen Warum findet er diese methoden nicht? Java Basics - Anfänger-Themen 13
N We behandele ich diese Exception? Java Basics - Anfänger-Themen 17
O Ist diese Zahl größer oder kleiner 0? Java Basics - Anfänger-Themen 6
M Ist diese Aufgabe zu umständlich gelöst? Java Basics - Anfänger-Themen 9
M Gibt es eine einfachere Variante diese Aufgabenstellung zu lösen? Java Basics - Anfänger-Themen 11
hdi Brainlag: Warum fliegt diese NPE? Java Basics - Anfänger-Themen 10
J Woher kommt diese NullPointerException? Java Basics - Anfänger-Themen 6
N Verstehe diese Aufgabe nicht! Java Basics - Anfänger-Themen 16
D Wie wird diese Verzweigung genannt? Java Basics - Anfänger-Themen 6
H Klassen zur Anzeige ines Bildes und zum Zeichnen innerhalb diese Bildes Java Basics - Anfänger-Themen 2
N Wer kann diese Zeile erklären? Java Basics - Anfänger-Themen 9
T Warum muss diese Variable final deklariert werden? Java Basics - Anfänger-Themen 5
W Bindung bzw warum wird diese Methode aufgerufen? Java Basics - Anfänger-Themen 5
P [Positiv Erledigt] Ordner mit Bildern auslesen und diese speichern Java Basics - Anfänger-Themen 7
I Was macht diese Funktion? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben