Prosze o pomoc przy tworzeniu obiktów

0

dopiero zaczynam naukę javy, i mam problem z tworzeniem obiektów. Czy możliwe jest stworzenie obiektu o nazwie z Stringa chodzi mi o coś takiego aby program pytał o nazwę użytkownika, a później tworzył obiekt o takiej właśnie nazwie np. po naciśnięciu przycisku No i mam tak:

public void actionPerformed(ActionEvent evt)
{
Object zrodlo = evt.getSource();
if(zrodlo==p_pracownicy)
{
String login=JOptionPane.showInputDialog(null,"Podaj login:","",JOptionPane.QUESTION_MESSAGE);
Pracownik login=new Pracownik();
};
oczywiscie mam zdefiniowana klase Pracownicy no i przycisk. Chodzi mi tylko o ten motyw z tworzeniem obiektu o nazwie zaczytanej z stringa. Moze to cos dynamicznego nie wiem. Prosze o pomoc

0

Raczej nie ma to większego sensu. Podawaj do konstruktora klasy Person wprowadzone dane i tak będziesz miał zapamiętane, kto się zalogował a nie poprzez bezsensowne tworzenie zmiennej o danej nazwie :-)

0

Nawet jeżeli to możliwe (chociaż wątpię bo to w momencie kompilacji takie rzeczy są ustalane) to trochę bez sensu.
Zresztą spróbuj zrobić coś takiego w każdym innym języku programowania ;) wtedy zauważysz, że nie tylko Java
ma z tym problem. Zamiast tego proponuję użyć np HashMap'y albo TreeMap

np tak

Map<String,Pracownik> hm = new HashMap<String,Pracownik>();
hm.put( "login", new Pracownik() );

Uzyskujesz w ten sposób bardzo szybko dostęp do odpowiedniego pracownika po jego
loginie.

0

ok A teraz załóżmy ze mam klase Zlecenia. Nie potrafie przewidziec ile ich bedzie w zw z czym nie wiem ile bede musial stworzyc obiektów. Ichciałbym mieć mozliwość tworzenie nieograniczonej liczby zlecen z interwejsu bez ingerencji w kod. Jak powinienem to zrobic aby po naciśnieciu przycisku tworzyl sie nowy obiekt klasy zlecenie? Jakaś tablica ?

0

No to w takim wypadku sugeruję coś w rodzaju ArrayList'y.

List<Zlecenie> zlecenia = new ArrayLis<Zlecenie>();
metoda_obsługi_kliknięcia() {

   zlecenia.add( new Zlecenie() );
}
0

Wracając na moment do poprzedniej kwestii - nie zrozumiałeś, że login nie reprezentuje tak naprawdę obiektu. Reprezentuje jedynie referencję do jakiegoś obiektu w pamięci.
Utożsamianie zmiennej przechowującej referencje obiektów pewnej klasy z konkretnym obiektem, to częsty błąd początkujących.
I później bardzo boleśnie się on mści w postaci "niewytłumaczalnych błędów".

0

Przypomnij sobie kiedy ty do tego doszedłeś

Choć poruszyłeś istotną kwestię to wątpię czy osobie na tym etapie nauki ( sądząc po pytaniu ) taka wiedza się przyda, albo inaczej czy on to zrozumie i zapamięta.

Wszystko w swoim czasie ;)

0

Masz rację, tyle że kolega próbuje sił w kodzie raczej z końca każdego podręcznika Javy (programowanie GUI, zdarzenia, wątki) nie mając najwyraźniej pewnej wiedzy z początku takiego podręcznika. A wiem, że czasem najtrudniej takie "oczywiste rzeczy" wyczytać.

0

Trochę nie na temat, ale mi to się wydaje, że każdy tak robi (czasami nieświadomie), a przynajmniej ja
nigdy nie mogę wytrzymać, bo na końcu jest zawsze najciekawsze :)
Poza tym najpierw piszesz Hello World'a, a dopiero potem czytasz książki ja podejrzewam, że on jeszcze do książki
żadnej nie dojrzał - bez urazy oczywiście - chodzi mi o to, że naprawdę trzeba mieć niezły powód żeby nie zasnąć
nad książką opisującą język programowania.
Także podsumowując, autor zapytania nie wnosi zastrzeżeń jak na razie do odpowiedzi, nie ma więcej pytań
więc ja ze swojej strony mogę mu życzyć tylko miłej zabawy z Javą.

0

;) spokojnie, znam C/C++, Pascala, Musze nauczyć się tylko notacji javy, srodowisko. I będzie dobrze. Dzieki za pomoc, podpowiedzi pomogły

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