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

Przerobienie w metodzie z void na coś co zwraca obiekt/wartość

VPS Starter Arubacloud
0 głosów
214 wizyt
pytanie zadane 18 lutego 2018 w Java przez must Bywalec (2,980 p.)

Cześć, dostałem wskazówkę by przerobić w programie metody które u mnie mają `void`,ale  maja: get, compute, create, build.... etc. w nazwie na metody, które zwracają.

Np: 

private void getOptionsOfMainMenu(int option) {
        if (option >= 1 && option <= 2) {
            switch (option) {
                case 1:
                    inputLoginAndPassword();
                    accountMaker.createAccount(login, password);
                    System.out.println("Now let's log into you account.");
                case 2:
                    while (loopIsTrue) {
                        inputLoginAndPassword();
                        if (!accountLogger.isLoginDataIncorrect(login, password)) {
                            loopIsTrue = false;
                        }
                    }
                    break;
            }
        }

tutaj, żeby zwracało tę listę opcji.

Ta metoda, łaczy się z tą metodą:

void displayMainMenu() {
        System.out.println("What do you wanna to do?");
        System.out.println("1. Add Account 2. Log into my account");

        while (loopIsTrue) {
            try {
                getOptionsOfMainMenu(input.nextInt());
            } catch (InputMismatchException e) {
                System.out.println("You've inputed something wrong!");
                System.out.println("What do you wanna to do?");
                System.out.println("1. Add Account 2. Log into my account");
                input.next();
            }
        }
    }

Potrzbuje jakiegos przykladu, zeby móc pozniej przerobić inne metody.

1 odpowiedź

+1 głos
odpowiedź 18 lutego 2018 przez Wiciorny Ekspert (269,120 p.)
wybrane 18 lutego 2018 przez must
 
Najlepsza
Przykładu czego? Każda zamiana typu funkcji będzie zależna od jej implementacji wewnętrznej, więc nie możesz przerobić każdej na jedno kopyto.

Odp. sobie na pytanie:

Co robi funkcja w śodku, co zwraca? Jaki typ zwraca?Czy jest to 1 element, czy lista elementów, czy zbiór etc.  Czy są to te same typy, czy różne...

https://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html
komentarz 18 lutego 2018 przez must Bywalec (2,980 p.)
Po prostu inne są podobne do tej.

Według mnie w tym przykładzie ma zwrócić jedną opcję, czyli jeden element - albo case 1 albo case 2. No i własnie problem jest taki, że nie wiem jaki to typ jest.
komentarz 18 lutego 2018 przez Wiciorny Ekspert (269,120 p.)

nie wiem kto pisał kod, i czemu nie znasz podstaw ale 

...

(int option)

(option >= 1 && option <= 2)   jak nie wiesz jaki to typ jak masz tu napisane? 

1
komentarz 18 lutego 2018 przez must Bywalec (2,980 p.)
eh, nienawidzę niekiedy mojej ciemnoty ;)

kod pisałem ja, już zrobione, dzięki :)
1
komentarz 18 lutego 2018 przez Tomasz90 Nałogowiec (25,140 p.)
Taka mała wskazówka: opcje menu lepiej na enumach zapisywać niż na intach. Masz wtedy bardziej sensowne nazwy i błędu nie popełnisz błędu, że wpiszesz wartość spoza zakresu
1
komentarz 18 lutego 2018 przez Wiciorny Ekspert (269,120 p.)
Na enumach toś dojebał- cała strukture robić do zapisu opcji, żeby alokacje pamięci robić?  nie żartuj ...  to jest obiektów-ka- alokacja pamięci na enuma i ... kazda prymitywną zmienną to marnotrawstwo , można to też ominąc i nie używać switcha ale nie enum
1
komentarz 18 lutego 2018 przez Tomasz90 Nałogowiec (25,140 p.)
Radziłbym się zapoznać z takimi książkami jak Clean Code i Effective Java (Item 30) a potem zgrywać znawcę na forum. Tak wiem, switche można zastąpić przez wzorzec projektowy strategia. Poza tym nigdzie nie napisałem, że na każdą prymitywną zmienną alokujemy enuma, bo to nie ma sensu, jednak zamiast na sztywno wrzucać liczby w kod lepiej wyekstraktować je do statycznej zmiennej finalnej, a jeżeli są w jakiś sposób ze sobą powiązane to do enuma. Co do wydajności to jest porównywalna do zwykłego typu int. Ogólnie polecam Ci przeczytać chociaż raz własne wypowiedzi przed wysłaniem, bo oprócz błędów składniowych, ortograficznych i wulgaryzmów to można dobre "kwiatki" tam znaleźć.

Podobne pytania

0 głosów
4 odpowiedzi 595 wizyt
pytanie zadane 4 kwietnia 2018 w C i C++ przez urbix01 Gaduła (3,290 p.)
0 głosów
1 odpowiedź 315 wizyt
pytanie zadane 18 października 2018 w Java przez Moras Obywatel (1,620 p.)
0 głosów
1 odpowiedź 316 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...