Wprowadzanie nazwy obiektu.

0

Generalnie ciężko w ogóle było mi nazwać ten wątek :) ale do rzeczy. Czy istnieje prosty sposób na wprowadzenie nazwy nowo tworzonego obiektu w postaci np. zmiennej a nie na sztywno deklarowanego łańcucha znaków . Przykład :

Chcemy napisać program katalogujący nowo odkryte przez nas kwiaty w plikach tekstowych. Na potrzeby programu tworzymy klasę główną i klasę kwiat .
Składowe obiektu klasy kwiat mają się zapisywać w pliku tekstowym (oddzielny plik dla każdego nowo odkrytego kwiatu ) .
Program główny zapyta się czy odkryliśmy jakiś nowy kwiat i jeżeli tak to ma nastąpić utworzenie nowego obiektu klasy kwiat i zapisanie jego składowych w oddzielnym pliku.

Jedynym według mnie rozwiązaniem jest utworzenie dwóch tablic ArrayList jednej typu String (przechowuje nazwę Kwiatu) drugiej typu Kwiat (przechowuje odwołanie do obiektów). W momencie tworzenia obiektu w jednej z nich zapiszę nazwę kwiatu i bedzie ona miala ten sam indeks co odwołanie w drugiej. Druga tablica naturalnie przechowa odwołanie dzieki tym samym indeksom łatwo skojarzę nazwę z odwołaniem.

Teraz Pytanie czy istnieje sposób żeby utworzyć nowy obiekt którego nazwa bedzie wprowadzana za pomocą np zmiennej typu string lub coś w ten deseń.
np

String a = wczytana zmienna z klawiatury ;
kwiat 'a'=new kwiat();

i nazwa obiektu miała by wartość zmiennej a????

4
Map<String, Kwiat> kwiaty = new HashMap<>();

kwiaty.put("fiołek", new Kwiat());
kwiaty.put("róża", new Kwiat());

O to chodzi?

3
okon66113 napisał(a):

Jedynym według mnie rozwiązaniem jest utworzenie dwóch tablic ArrayList jednej typu String (przechowuje nazwę Kwiatu) drugiej typu Kwiat (przechowuje odwołanie do obiektów). W momencie tworzenia obiektu w jednej z nich zapiszę nazwę kwiatu i bedzie ona miala ten sam indeks co odwołanie w drugiej. Druga tablica naturalnie przechowa odwołanie dzieki tym samym indeksom łatwo skojarzę nazwę z odwołaniem.

Czemu nazwa kwiatu nie może być składową obiektu kwiat?
Albo czemu nie utworzyć klasy:

class FlowerWitName {
  Flower flower; 
  String Name;
}

?

0
okon66113 napisał(a):

Jedynym według mnie rozwiązaniem jest utworzenie dwóch tablic ArrayList ...

Coś się wydaje, ze zaprzestałeś czytanie podręcznika Javy o pięć stron za wcześnie

0
TomRiddle napisał(a):
> Map<String, Kwiat> kwiaty = new HashMap<>();
> 
> kwiaty.put("fiołek", new Kwiat());
> kwiaty.put("róża", new Kwiat());
> ```
> 
> O to chodzi?

jest to dużo zręczniejsze rozwiązanie dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1