Vinnaren i pepparkakshustävlingen!
2016-03-20, 22:51
  #1
Medlem
Är en total nybörjare och tjej. Söker enkla svar på dumma frågor.

Jag vill kunna skapa en nytt objekt varje gång en viss knapp trycks ned. Då jag kommer ha kanske 10st av dettta objekt måste jag då döpa objecten på något logisk sett. Försökte med detta. Mycket utlämnat förstås.

String x= JOptionPane.showInputDialog (null,"namnge din Hiss");
Hiss x = new Hiss (0);

Och fick många felmeddelanden.
Citera
2016-03-20, 23:08
  #2
Medlem
StefanHeterJags avatar
Vad har ditt kön med saken att göra, programmerar du med fittan?

Ska man ha många objekt av samma typ och vill ha nån form av ordning på det så brukar man skapa arrayer. Det finns många olika typer av arrayer, till exempel en objektarray. Är du säker på att du behöver namnge dom? Du kanske bara har behov att komma åt dom via sitt index? Vilket fall så finns det massor av olika sätt att göra det på beroende på behov.

Kolla vidare på objektarrayer.
http://www.openbookproject.net/think...ish/chap11.htm
Citera
2016-03-20, 23:12
  #3
Medlem
Citat:
Ursprungligen postat av Ninoliin
Kod:
String x= JOptionPane.showInputDialog (null,"namnge din Hiss");
 Hiss x = new Hiss (0);
Ja, det får du. Det du vill göra låter sig inte göras.

Lösningen för det är att skapa flera objekt och lägga till dem i någon form av Collection. Vill du att användaren på något vis ska kunna ange en nyckel som knyter till dessa objekt så använder du en som implementerar Map-interfacet, exempelvis en Hashmap.

Det var ett tag sedan jag kodade Java, men något i stil med:
Kod:
Map<String, Hiss> myMap = new HashMap<String, Hiss>();

String userInput = JOptionPane.showInputDialog (null,"namnge din Hiss");
myMap.put(userInput, new Hiss(0));

// Och för att hämta ut objekt:
myMap.get(userInput);
Övrigt tips: Håll dig till engelska.
Citera
2016-03-21, 12:07
  #4
Medlem
ojns avatar
Citat:
Ursprungligen postat av Ninoliin
Och fick många felmeddelanden.
Tyvärr är min kristallkula sönder, så jag kan inte med ren automagik se dessa felmeddelanden.
Citat:
Mycket utlämnat förstås
Tyvärr är min kristallkula sönder, så jag kan inte med ren automagik se vad du utlämnat.


Som någon sagt, använd någon form av collection. Vilken beror på vad mer exakt du vill göra. Använd engelska termer. Och använd CODE-taggar när du postar kod.

Och lägg ner det där med "jag är tjej". Det kanske fungerar på snuttepluttforum som Familjeliv, men här på Flashback skiter vi fullständigt i det.
Citera
2016-04-18, 21:23
  #5
Medlem
Diamondgrits avatar
Citat:
Ursprungligen postat av Ninoliin
Är en total nybörjare
Inga problem.
Citat:
och tjej.
Ja, annars skulle du ju googla själv istället för att fråga.

Citat:
Söker enkla svar på dumma frågor.

Jag vill kunna skapa en nytt objekt varje gång en viss knapp trycks ned. Då jag kommer ha kanske 10st av dettta objekt måste jag då döpa objecten på något logisk sett. Försökte med detta. Mycket utlämnat förstås.

String x= JOptionPane.showInputDialog (null,"namnge din Hiss");
Hiss x = new Hiss (0);

Och fick många felmeddelanden.
Ett av felmeddelandena sa troligen att man inte kan ha två saker som bägge heter x.

Nå, för att svara på din fråga. Man kan t.ex. göra såhär.

Kod:
List<Stringnamn=new ArrayList<String>();
List<
Stringhissar=new ArrayList<String>(); 
Du har nu skapat två listor, den ena med namn och den andra med hiss-objekt. De kan du fylla på hur mycket du vill.

Kod:
namn.add(JOptionPane.showInputDialog (null,"namnge din Hiss"));
hissar.add(new Hiss (0)); 
Citera
2016-04-19, 02:26
  #6
Moderator
Neksnors avatar
Citat:
Ursprungligen postat av Diamondgrit
Inga problem.
Ja, annars skulle du ju googla själv istället för att fråga.

Ett av felmeddelandena sa troligen att man inte kan ha två saker som bägge heter x.

Nå, för att svara på din fråga. Man kan t.ex. göra såhär.

Kod:
List<Stringnamn=new ArrayList<String>();
List<
Stringhissar=new ArrayList<String>(); 
Du har nu skapat två listor, den ena med namn och den andra med hiss-objekt. De kan du fylla på hur mycket du vill.

Kod:
namn.add(JOptionPane.showInputDialog (null,"namnge din Hiss"));
hissar.add(new Hiss (0)); 
Hiss-listan ska heta
Kod:
List<Hiss> hissar = new ArrayList<Hiss>();
Om den ska innehålla Hiss-objekt.
(Förutsatt att det inte finns något bisarrt förhållande mellan objekt av typerna String och Hiss)

Generellt sett låter det jobbigt med två listor som ska hållas synkade. Ex: Du ska hitta en Hiss som heter Bertil. Du får då loopa genom namnlistan efter namnet, sedan hålla reda på vilket index i listan som motsvarar den platsen. Slutligen leta upp Hiss-objektet på motsvarande plats i Hiss-listan.

Med Hashmap skriver du
Kod:
hissar.get("Bertil");
Metoden returnerar ett Hiss-objekt (eller null om det inte blir någon träff).

Lägg lite tid på att bekanta dig med javadoc, där finns mycket strukturerad information som inte har filtrerats genom diverse okänt folk.
https://docs.oracle.com/javase/7/doc...l/HashMap.html
Citera
2016-04-19, 23:12
  #7
Medlem
Diamondgrits avatar
Citat:
Ursprungligen postat av Neksnor
Hiss-listan ska heta
Kod:
List<Hiss> hissar = new ArrayList<Hiss>();
Om den ska innehålla Hiss-objekt.
(Förutsatt att det inte finns något bisarrt förhållande mellan objekt av typerna String och Hiss)
Haha, oj ja såklart
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback