Wpis z mikrobloga

#java #programowanie

Prosta ksiązka telefoniczna w Javie

W jednej klasie mam konstruktor

public Person(String name, String number) {

this.name = name;

this.number = number;

}


W drugiej klasie chcę zrobić metodę add(String name, String number) która stworzy nowy obiekt i doda go do Arraylist. O ile z listą sobie poradzę, to trochę się zgubiłem na etapie tworzenia obiektu. Jak tworzę nowy obiekt za pomocą metody to musi on mieć przypisaną nazwę, a przecież jak dodam 2 obiekty z rzędu z innymi parametrami to jeśli użyję poniższego kodu, to powstaną 2 obiekty z taką samą nazwą obiektu(czyli nazwą 'position')

public class Phonebook {

public void add(String name, String number) {

Person position = new Person(name, number);

}

}


Podejrzewam że rozwiązanie problemu jest oczywiste tylko jakoś go nie widzę ()
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

to powstaną 2 obiekty z taką samą nazwą obiektu(czyli nazwą 'position')


@Aureos: Nie, powstaną dwa różne obiekty, które na chwilę będą przypisane do takiej nazwy. Nazwa to nie obiekt i obiekt to nie nazwa ;)

Dodajesz to listy obiekty a nie nazwy.
  • Odpowiedz
@Aureos:

Podejrzewam że rozwiązanie problemu jest oczywiste tylko jakoś go nie widzę ()

Na przykład dodawanie w add() tworzonego obiektu od razu do kolekcji? ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Aureos: ale ta zmienna jest tworzona w metodzie, więc działa w kontekscie wywołania metody, więc za każdym razem będzie unikatowa (dla każdego wywyołania)

ps. może też zrobić tak:
public class Phonebook {
public void add(Person person)
  • Odpowiedz
Na przykład dodawanie w add() tworzonego obiektu od razu do kolekcji? ( ͡° ͜ʖ ͡°)


@Zelber: Ale przecież nie trzeba (po za tym, że to lepsze), tu chodzi o pewien błąd rozumienia czym jest obiekt i nazwa.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Na przykład dodawanie w add() tworzonego obiektu od razu do kolekcji? ( ͡° ͜ʖ ͡°)


@Zelber: Ale przecież nie trzeba (po za tym, że to lepsze), tu chodzi o pewien błąd rozumienia czym jest obiekt i nazwa.


@LowcaG: Możesz wyjaśnić czemu nie trzeba tego obiektu gdzieś zapisać? Wydaje mi się, że jak wyjdzie z metody to już nie ma żadnego dostępu do tego obiektu(nazwą
  • Odpowiedz
Możesz wyjaśnić czemu nie trzeba tego obiektu gdzieś zapisać? Wydaje mi się, że jak wyjdzie z metody to już nie ma żadnego dostępu do tego obiektu(nazwą position można posługiwać się do klamry, a nie wiadomo w jakim bloku pamięci jest stworzony obiekt), więc jakiś ArrayList by się przydał w klasie Phonebook i tam dorzucać obiekt tworzony w metodzie add. Jeśli się mylę proszę o wyjaśnienie


@1_login_1: Jasne jasne, ja się
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@LowcaG: No to lepiej rozszyfrowałeś problem, bo widziałem niedociągnięcia w kodzie, a problem leży bardziej w rozumowaniu.

Jako pomoc dla OPa dorzucę, że te nazwy to są dla ludzi i w tym wypadku można nawet olać nazwę czyli zamiast tak:
{
Person position = new Person(name,
  • Odpowiedz