webForumDet fria alternativet

Hur? --> Skapa nytt objekt i en class genom en loop-, selektions- sats

Java

5 svar · 390 visningar · startad av Broms

Medlem sedan sep. 2002188 inlägg
Frågan#1

Har först skapat en bok enligt:

Bok b1 = new Bok("Sagan om ringen","J.R.R Tolkien",1998);

Om jag vill skapa en ny bok så länge användaren matar in 1, som typ:

---------------------------
int i=1;

do{
Std.out.print("Vill du skapa en ny bok? 1=ja, 0=nej: ");
i = Std.in.readInt();
if (i == 1){
.....
}

} while (i == 1);
---------------------------

eller som i en for-sats, om 10 böcker skall skapas:
---------------------------
for(int i=1; i<=10; i++){

/* skapa boken hur? alltså själva Bok b<vad??> = new Bok("bla", "bla" , 1) ... hur gör jag att i tolkas som räknaren om siffran i Bok ska komma efter bokstaven b.. alltså bok b1,b2,b3...b10.. enkelt att skapa boken 1,2,3 men med b?

*/
}
---------------------------

Hur skall jag slänga i det, vill kunna skapa obegränsat antal nya böcker, enda som skall begränsa detta är en av användaren inmatad icke 1a..

Medlem sedan sep. 20011 086 inlägg
#2
Vector books = new Vector();  //Vector ligger i java.util
int i=1;
do{
    Std.out.print("Vill du skapa en ny bok? 1=ja, 0=nej: ");
    i = Std.in.readInt();
    if (i == 1){
        Std.out.print("Ange Boktitel författare och datum");
        books.add(new Bok(Std.in.readString(), Std.in.readString(), Std.in.readInt()));  //förutsatt att Std.in.readString() finns. 
    }
} while (i == 1);
Medlem sedan sep. 20011 086 inlägg
#3

Vet du däremot att det alltid kommer max 10 böcker så är det nog bättre att använda

Bok[] books = new Bok[10];
int i=1;
do{
    Std.out.print("Vill du skapa en ny bok? 1=ja, 0=nej: ");
    i = Std.in.readInt();
    if (i == 1){
        Std.out.print("Ange Boktitel författare och datum");
        books[i] = new Bok(Std.in.readString(), Std.in.readString(), Std.in.readInt()));  //förutsatt att Std.in.readString() finns. 
    }
} while (i == 1);
Medlem sedan sep. 2002188 inlägg
#4

tack så mkt pimme :p

Medlem sedan sep. 2002188 inlägg
#5

pimme: hur skriver man ut alla böcker i denna vektor då?

Medlem sedan sep. 20011 086 inlägg
#6

Du menar i första fallet?
Det lättaste är nog

for(int n = 0; n < books.size(); n++)
{
    Std.out.print(books.get(n));
}

Ett lite snyggare (men kanske lite mer avancerat) är att använda en iteraor. Men det får du hitta själv :)
Läs mer om Vector här: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Vector.html

OT: Du borde ju acceptera något av mina svar, inte ditt eget :)

271 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)