Jag har ett program som lägger till böcker i en vektor.. Om jag vill plocka ut dessa värden senare, och uppdatera dem, t.e.x. om jag vill ändra utgivningsår för en bok då en ny upplaga kommer, hur göra? Om datat jag vill ändra ligger mitt i vektorn och 100 böcker finns innan och efter denna bok, men jag bara vet på vilken plats den ligger.. ska jag lägga till en räknare som id först till varje bok?
Kod i Bok.java
import extra.*;
public class Bok {
// Instansvariabel
private String stringTitel, stringForfattare;
private int intUtg;
// Kontrstuktorer
public Bok(String titel, String forfattare, int utg ) { // Initierar instansvariablerna stringTitel, stringForfattare
stringTitel = titel; // och intUtg med de startvärdena som anges i titel,
stringForfattare = forfattare; // forfattare och utg
intUtg = utg;
}
// Metoder
public void setUtg(int u) { // Anrop av metoden setUtg(<nytt värde>)
intUtg = u; // sätter värdet på intUtg till värdet på u
}
public String giveTitel() { // Anrop av metoden giveTitel returnerar värdet
return stringTitel; // på stringTitel
}
public String toString() {
return "Titel: " + stringTitel + ". Forfattare: " + stringForfattare + ". Utg.ar: " + intUtg + ".";
}
} // class
Kod i Bok_test.java
import extra.*;
import java.util.*; // Vector ligger i java.util
// Programmet skapar och tar bort böcker med indata som
// titel, författare och utgivninsår enligt formeln:
// Bok(String titel, String forfattare, int utg )
public class Bok_test2 {
public static void main (String[] arg) {
// Skapar en ny Bok med titel "Sagan om ringen",
// författare J.R.R Tolkien och utg.år 1998
// Skapar en bok
Bok b1 = new Bok("Sagan om ringen","J.R.R Tolkien",1998);
// Skrivet ut bokinfon
Std.out.println(b1);
// Skrivet ut titeln på boken
Std.out.println("Titel --> " + b1.giveTitel());
// Ändrar utg.året till 2001
b1.setUtg(2001);
// Skrivet ut bokinfon på nytt
Std.out.println(b1);
// Tom rad
Std.out.println();
Vector books = new Vector(); // Skapar en ny vektor books
int i=1;
String b_titel, b_forfattare;
int b_utg;
do{
Std.out.print("Vill du skapa en ny bok? 1=ja, 0=nej: ");
i = Std.in.readInt();
Std.in.skipLine();
if (i == 1){
Std.out.println("Ange Boktitel: ");
b_titel = Std.in.readLine();
Std.out.println("Ange Författare: ");
b_forfattare = Std.in.readLine();
Std.out.println("Ange utgivninvsår: ");
b_utg = Std.in.readInt();
books.add(new Bok(b_titel, b_forfattare, b_utg ));
}
} while (i == 1);
Std.out.println();
// Utskrift av alla böcker i vektorn
for(int n = 0; n < books.size(); n++){
System.out.print(books.get(n) + "\n");
}
// Tom rad
Std.out.println();
} // main
} // class