Problem z nazwaniem zmiennej w konstruktorze – nie chce jej wczytać z klawiatury

Odpowiedz Nowy wątek
2017-11-16 23:29
0
    public static void main(String[] args) {
        Scanner odczyt = new Scanner(System.in);
        System.out.println("Podaj login");
        String login = odczyt.nextLine();
        System.out.println("Podaj haslo");
        String haslo = odczyt.nextLine();
        Konto login = new Konto(); // dlaczego nie moge uzyc zmiennej login - czyli takiej jaką sobie wpisze z klawiatury
 
    }
 
}
class Konto
{
    Konto()
    {
        String napis;
    }
}
edytowany 2x, ostatnio: furious programming, 2017-11-17 20:57

Pozostało 580 znaków

2017-11-17 01:55
1

Masz dwie zmienne login (2 zmienne o tej samej nazwie) w tym samym zakresie stąd błąd. Pierwsza jest typu String a druga typu Konto
Piszesz w notatniku, że Ci nie wyświetla informacji o błędzie? Bo jakby Ci wyświetlało to jest tam czarno na białym napisane co jest nie tak.

edytowany 1x, ostatnio: Manuel.Artificer, 2017-11-17 01:59

Pozostało 580 znaków

2017-11-17 06:37
0

@Manuel.Artificer: może się nie znam na Javie, ale czy przypadkiem takie działanie nie nazywa się napisaniem zmiennej? W stylu

Int zmienna = 5;
String zmienna = "a jednak zmieniłem zdanie" 

Bo mi akurat takie napisanie zmiennej wraz ze zmianą typu wygląda jak najbardziej w porządku. Ale jak już pisałem nie znam się na Javie, czy obecnie faktycznie jest taki limit? Że w jednym scope nie moga istnieć dwie zmienne o takiej samej nazwie (jak już pisałem poprzez napisanie typu i wartości)?

EDIT:
Faktycznie - IDE pokazuje od razu, no i w sumie ma to sens :) Cofam powyższe dywagacje i pytania :)

edytowany 1x, ostatnio: axelbest, 2017-11-17 07:05

Pozostało 580 znaków

2017-11-17 11:23
0

No ja wiem , ze nie moge uzyc 2 razy takiej samej zmiennej. Ale własnie nie rozumiem dlaczego program bierze to jako dublowanie , przeciez :

System.out.println("Podaj login");
String login = odczyt.nextLine();
Konto login = new Konto(); // dlaczego nie moge uzyc zmiennej login - czyli takiej jaką sobie wpisze z klawiatury

wtedy zmienna login przyjmuje wartosc jaką wpisałem z klawiatury

Pozostało 580 znaków

2017-11-17 11:35
2

Musiałem to 3 razy przeczytać, żeby to w końcu zrozumieć. Ale Ty kombinujesz. Ale dla upewnienia się jeszcze się zapytam czy na pewno to to:

String login = "adam";
Konto login = new Konto(); - > Konto adam = new Konto();

Jeżeli o to chodzi no to Java to język statyczny, więc typy oraz nazwy zmiennych muszą być znane w czasie kompilacji, a jakbyś zrobił coś takiego no to nazwę tej zmiennej określałbyś dopiero w czasie działania programu no i przez to nie można. Poza tym jakbyś się później chciał odwoływać do tej zmiennej? Taki zapis jest totalnie bez sensu, bo tak czy tak musiałbyś używać słowa "login".

edytowany 2x, ostatnio: furious programming, 2017-11-17 20:58
Dopiero się uczę , dlatego tez ten temat jest w dziale Newbie :D , to wezmy przyklad gdzie chcę stworzyc klasę która będzie przechowywala takie dane jak login , haslo . I chcę zrobic tak , ze jak ją wywołam to wpisuje do odpowiednich jej parametrow ( tj. login i haslo ) swoje dane z klawiatury . jest to możliwe żeby np powtorzyć taką czynnosc np 10 razy? - krzysie_1997 2017-11-17 12:06
@Manuel.Artificer: wrzucaj kod w znacznik ```java – pokoloruje składnię. - furious programming 2017-11-17 20:58
@krzysie_1997: na temat odpowiadaj w postach – komentarze służą do off-topu. - furious programming 2017-11-17 20:59

Pozostało 580 znaków

2017-11-17 12:53

Jasne, że się da. Tworzysz sobie kolekcję np. słownik (w Javie slownikowi odpowiada chyba typ Map, ale nie jestem pewien, jak coś to niech ktoś mnie poprawi). No i w tym słowniku kluczem będzie login o ile jest unikalny np. email, a wartością obiekt typu Konto.

Potem tworzysz obiekt konto i dodajesz do tego słownika. A jak chcesz potem wyświetlić dane wybranego użytkownika, to wyszukujesz go w tym słowniku po kluczu

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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