---
title: "Hur? --> Skapa nytt objekt i en class genom en loop-, selektions- sats"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/115983-hur-skapa-nytt-objekt-i-en-class-genom-en-loop-selektions-sats"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Broms"
published: "2004-11-15T20:13:00.000Z"
updated: "2004-11-15T21:20:47.000Z"
replies: 5
views: 393
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/115983-hur-skapa-nytt-objekt-i-en-class-genom-en-loop-selektions-sats"
---

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

## #1 — Broms, 2004-11-15T20:13Z

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..

Permalänk: https://www.webforum.nu/p/115983

## #2 — pimme, 2004-11-15T20:35Z

```
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);
```

Permalänk: https://www.webforum.nu/p/1484680

## #3 — pimme, 2004-11-15T20:37Z

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);
```

Permalänk: https://www.webforum.nu/p/1484683

## #4 — Broms, 2004-11-15T20:38Z

tack så mkt pimme :p

Permalänk: https://www.webforum.nu/p/1484684

## #5 — Broms, 2004-11-15T21:00Z

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

Permalänk: https://www.webforum.nu/p/1484700

## #6 — pimme, 2004-11-15T21:20Z

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  :)

Permalänk: https://www.webforum.nu/p/1484712

---

Tråden på webben: https://www.webforum.nu/amne/java/115983-hur-skapa-nytt-objekt-i-en-class-genom-en-loop-selektions-sats
