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;
}
}
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.
@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 :)
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
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".
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