• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java, logowanie i rejestracja

Aruba Cloud - Virtual Private Server VPS
0 głosów
837 wizyt
pytanie zadane 27 stycznia 2022 w Java przez JanK Nowicjusz (120 p.)

Siemka.
zacząłem się uczyć programować w javie, i chciałem sobie sam napisać program w którym potrzebuje rejestracji i logowania.
Wszystko byłoby ok, ale jak dodaje do listy użytkownika, to kasuje się od razu po tym jak dodaje.
Poniżej załączam kod, z góry dzięki za pomoc :)

main.java

package com.company;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        get Get = new get();
        boolean sContinue=false;
        while(!sContinue) {
        System.out.println("wybierz opcje");
        System.out.println("1-login");
        System.out.println("2-dodaj");
        System.out.println("3-stop");
        int choose= scanner.nextInt();

        switch(choose)
        {
            case 1-> Get.login();
            case 2-> Get.Add();
            case 3->sContinue=true;
        }
    }
    }
}

get.java

package com.company;

import java.util.Scanner;

public class get {
    static Scanner scanner = new Scanner(System.in);
    public void login(){
        System.out.println("podaj login");
        String login= scanner.nextLine();
        System.out.println("podaj haslo");
        String haslo= scanner.nextLine();


        AddUser add = new AddUser(login, haslo);

        add.Login(login,haslo);

    }
    public void Add(){
        boolean sContinue=false;
        while(!sContinue) {
            System.out.println("podaj login");
            String login = scanner.nextLine();
            System.out.println("podaj haslo");
            String haslo = scanner.nextLine();
            System.out.println("podaj haslo");
            String hasloo = scanner.nextLine();
            if (haslo.equals(hasloo)) {
                AddUser add = new AddUser(login, haslo);
                add.add(login, haslo);
                sContinue=true;
            }else{
            System.out.println("hasła są niezgodne");
            }
        }

    }
}

AddUser.java

package com.company;

import java.util.ArrayList;
import java.util.List;

import java.util.Scanner;


public class AddUser {

    Scanner scanner = new Scanner(System.in);
    private List<AddUser> user=new ArrayList<>();

    private String Login;
    private String Password;
    public AddUser(String login, String password) {
        this.Login = login;
        this.Password = password;
    }
    public void add(String l, String h){

        AddUser us = new AddUser(l,h);
        for (AddUser user: user) {
            System.out.println(user.Login);
        }
        user.add(us);

    }


    public void Login(String l, String h){
        AddUser admin = new AddUser("Admin", "zaq12wsx");
        user.add(admin);
            for (AddUser user: user) {
                if (user.Login.equals(l)&user.Password.equals(h)){
                System.out.println("zalogowano");
            }
                }
            System.out.println("złe hasło lub login");
        }
    }

 

komentarz 27 stycznia 2022 przez Wiciorny Ekspert (279,870 p.)
Każdy twój obiekt AddUser ma własną tablice, więc dodająć jakiś element -> do obiektu, potem wywołując np metode Login operujesz na innym obiekcie i innej tablicy...

Popraw kod, bo to razi w oczy : klasy piszemy z dużej, natomiast obiekty z małej

1 odpowiedź

+1 głos
odpowiedź 27 stycznia 2022 przez DziQu Początkujący (420 p.)
Chyba porwałeś się trochę z motyką na słońce,

po 1 -> Zacznij od początku zwracać uwagę na nazwy zmiennych, od początku rób sobie dobry nawyk, nie wiadomo co to jest l oraz h mogę się domyślać że chodzi o login i hasło ale uwierz mi, im szybciej zaczniesz zwracać na to uwagę tym lepiej.

po 2 ->  Mniej więcej to samo co up, tyle że z klasami, do czego ma służyć klasa Get ? Oraz AddUser ? Przykładowo taki AddUser powinien nazywać się po prostu User z polami na login oraz hasło, dodatkowo klasa UserRepository np. która będzie Ci trzymała listę tych użytkowników i metody do dodawania usera do "bazy" w tym przypadku listy.

po 3 -> Zerknij sobię na metodę Login z AddUser, dodajesz tam z jakiegoś powodu konto "Admina" za każdym razem gdy się próbujesz logować

Ogólnie wymieniać można tu dużo, podpowiem Ci tylko że jeśli już bardzo chcesz to wykonać to powinno wyglądać to mniej więcej tak:

Class User -> Pola login oraz hasło / gettery oraz settery

Class UserRepository -> Pola z lista <User> oraz dodatkowa metoda add(User user) w tej klasie która doda użytkownika do listy

Class UserService -> 2 metody, mogące zwracać boolean w celu potwierdzenia czy operacja została dobrze wykonana czy nie, 1 -> addUser(String login, String Password) wywołujesz tutaj metodę add z UserRepository dzięki czemu dodasz użytkownika do swojej "bazy" repository.add(new User(login, password)); 2-> loginUser też zwracająca boolean'a który określi czy dane wprowadzone są poprawne, iterując po liście użytkowników sprawdzasz czy wpisany login oraz hasło pasuje do jakiegoś zapisanego użytkownika.

To tak w skrócie co mogę doradzić i podpowiedzieć. Przerób sobie jakieś podstawowe kursy odnośnie programowania obiektowego, tworzenie obiektów konstruktorów i myślę że sobie poradzisz, od siebie co mogę polecić to kursy na platformie JavaStart :)

P.S Nie zniechęcaj się tylko, początki zawsze są trudne :)
1
komentarz 27 stycznia 2022 przez Wiciorny Ekspert (279,870 p.)
Class User -> Pola login oraz hasło / gettery -> takie klasy powinny być immutable, więc lepiej nauczyc od razu nie pisać seterów

Podobne pytania

0 głosów
1 odpowiedź 626 wizyt
pytanie zadane 2 grudnia 2018 w PHP przez jakubmark Początkujący (370 p.)
+16 głosów
5 odpowiedzi 1,095 wizyt
0 głosów
0 odpowiedzi 350 wizyt

93,277 zapytań

142,276 odpowiedzi

322,282 komentarzy

62,595 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...