Krzyśki z IT

Strona dla Krzysztofów z IT

Java Tutorial Step 4 – Metody i Klasa

Dalszy ciąg rozwijania aplikacji. Skorzystamy z metod do wykorzeniania naszego kodu.

 


Metody – definicja

Metoda możemy nazwać funkcję, która wykonuje pewien blok kodu. Metoda może zwracać wynik lub nie(void). Metody stosujemy do wydzielenia spójnego kodu, który często powtarza się w aplikacji.

Definicja kodu wygląda następująco:

<modyfikator_dostępu> <typ_zwracany> nazwaFunkcji(<typ_argumentu> nazwaArgumentu…) {
     //treść funkcji…
     return nazwaZmiennej;
}
  • modyfikator dostępu: tu zastosujemy public, dostępne są też – private, protected lub brak, ale do tego przejdziemy w kolejnych częściach
  • typ zwracany: typ danej(int, double itp..), którą zwraca funkcja lub jeśli nic nie zwraca to użyjemy vodi
  • nazwa funkcji: własna nazwa funkcji
  • typ argumentu i nazwa: typ i nazwa wprowadzanej zmiennej – więcej na przykładzie dalej
  • return: zmienna, którą zwraca funkcja(metoda o typie void – nie posiada return, bo nic nie zwraca)

Metodę wywołujemy przy użyciu jej nazwy i podaniu wymaganych argumentów lub przy użyciu nazwy klasy, w której się znajduje po kropce, np.: calculator.add(2,2);


Metoda – zastosowanie

Na początek utworzymy dwie kasy:

  • Main: główna klasa w której będzie wykonywany kod
  • Calculator: klasa definiująca metody

Wykorzystamy nasz kod z poprzedniej części:

import java.util.Scanner;
public class Calculator3 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int option;
        do {
            System.out.println("Menu kalkulatora. Wybierz odpowiednią funkcję: [1, 2, 3, 4 lub 5] :  ");
            System.out.println("1 - Dodawanie");
            System.out.println("2 - Odejmowanie");
            System.out.println("3 - Mnożenie");
            System.out.println("4 - Dzielenie");
            System.out.println("5 - Zamknięcie programu");
            option = scanner.nextInt();
            System.out.println("wybrałeś opcje " + option);
            if (option&amp;amp;amp;amp;amp;lt;=4){

            System.out.println("Podaj pierwszą liczbę");
            int number1 = scanner.nextInt();
            System.out.println("Podaj drugą liczbę");
            int number2 = scanner.nextInt();

                if (option == 1){
                    // Dodawanie
                    System.out.println("Wybrałeś dodawanie: " + number1 + " + " + number2 + " = " + (number1+number2));
                }else if (option == 2){
                    //odejmowanie:
                    System.out.println("Wybrałeś odejmowanie: " + number1 + " - " + number2 + " = " + (number1-number2));
                }else if (option == 3){
                    //mnożenie
                    System.out.println("Wybrałeś mnożenie " + number1 + " * " + number2 + " = " + (number1*number2));
                }else if (option == 4){
                    // warunek sprawdzający dzielenie przez zero
                    if (number2 == 0 ){
                        System.out.println("Nie można dzielić przez 0! ");
                    }
                    else  {
                        System.out.println("Wybrałeś dzielenie: " + number1 + " / " + number2 + " = " + (number1 / number2));
                    }
                }

            }else {
                // puste - kończy działanie
            }

        }while (option&amp;amp;amp;amp;amp;lt;=4);{
            System.out.println("Kończę działanie");
        }

    }
}

Patrząc na kod można szukamy co można wyeksportować do oddzielnych metod… Zaczniemy od działań matematycznych. Definiujemy pierwszą metodę add(dodawanie). Metoda będzie przyjmować dwa parametry o typie int( tak jak wcześniej) oraz zwracać wynik dodawania.

public int add(int num1, int num2){
    return num1 + num2;
}

Podobnie będzie wyglądać odejmowanie:

public int substract(int num1, int num2){
    return num1 - num2;
}

Słówko public pozwala na dostęp do metody z poziomu innych klas, zastosujemy to do każdej metody. Typ zwracany int, a także dwa argumenty, tak jak wcześniej będą to dwie zmienne, które wprowadzimy z klawiatury.

Czas na test metod. Na początek w głównej klasie Main musimy utworzyć instancje klasy Calculator. Wykonujemy to następująco:

Def: NazwaKlasy nazwaInstancji = new NazwaKlasy();

Calculator calculator = new Calculator();

Dzięki temu możemy mamy dostęp do metod. Wczesnej jednak dodamy Scannera do wczytywania dwóch liczb:

Scanner scanner = new Scanner(System.in);
System.out.println("Wczytaj pierwszą liczbę: ");
int num1 = scanner.nextInt();
System.out.println("Wczytaj drugą liczbę: ");
int num2 = scanner.nextInt();

Następnie możemy wywołać zdefiniowane wcześniej metody: calculator.add(num1, num2); 

System.out.println("Dodawanie: " + num1 + " + " + num2 +" = " + calculator.add(num1, num2));

Teraz spróbuj utworzyć metody dla pozostałych działań: mnożenie i dzielenie( bez warunku sprawdzającego czy num2=0)
Poniżej moje rozwiązanie metod:

//dodawanie
public int add(int num1, int num2){
    return num1 + num2;
}
// odejmowanie
public int substract(int num1, int num2){
    return num1 - num2;
}
// mnożenie
public int multiply(int num1, int num2){
    return num1 * num2;
}
// dzielenie
public int divide(int num1, int num2){
    return num1 / num2;
}

Oraz wywołanie metod:

Calculator calculator = new Calculator();
System.out.println("Dodawanie: " + num1 + " + " + num2 +" = " + calculator.add(num1, num2));
System.out.println("Odejmowanie: " + num1 + " - " + num2 +" = " + calculator.substract(num1, num2));
System.out.println("Mnożenie: " + num1 + " * " + num2 +" = " + calculator.multiply(num1, num2));
System.out.println("Dzielenie: " + num1 + " / " + num2 +" = " + calculator.divide(num1, num2));

Oczywiście można pójść krok dalej i utworzyć jedną metodę, która będzie wykonywała wszystkie obliczenia.
Teraz przejdziemy do przeniesienia menu kalkulatora do metody. Tu zastosujemy metodę typu void – metoda tego typu nie będzie zwracała żadnej wartości(nie zawiera return).
Typ ten często wykorzystuje się do wyświetlania danych. W tym przypadku wyświetlenia menu kalkulatora.

public void printMenu(){
    System.out.println("Menu kalkulatora. Wybierz odpowiednią funkcję: [1, 2, 3, 4 lub 5] :  ");
    System.out.println("1 - Dodawanie");
    System.out.println("2 - Odejmowanie");
    System.out.println("3 - Mnożenie");
    System.out.println("4 - Dzielenie");
    System.out.println("5 - Zamknięcie programu");
}

Do wywołania tej metody nie musimy używać System.out.println(…). 

calculator.printMenu();

Ok, mamy menu to teraz rozbudujmy nasz kalkulator, tym razem skorzystamy z Swich`a do obsłużenia naszego menu.
Definiujemy zmienną choose – wybór opcji z menu. Wcześniej też sprawdzimy czy użytkownik nie wpisał

Scanner scanner = new Scanner(System.in);
Calculator calculator = new Calculator();
calculator.printMenu(); // menu calculator
int choose = scanner.nextInt();

System.out.println("Wczytaj pierwszą liczbę: ");
int num1 = scanner.nextInt();
System.out.println("Wczytaj drugą liczbę: ");
int num2 = scanner.nextInt();

switch (choose){
    case 1:
        System.out.println("Dodawanie: " + num1 + " + " + num2 +" = " + calculator.add(num1, num2));
        break;
    case 2:
        System.out.println("Odejmowanie: " + num1 + " - " + num2 +" = " + calculator.substract(num1, num2));
        break;
    case 3:
        System.out.println("Mnożenie: " + num1 + " * " + num2 +" = " + calculator.multiply(num1, num2));
        break;
    case 4:
        System.out.println("Dzielenie: " + num1 + " / " + num2 +" = " + calculator.divide(num1, num2));
        break;
    case 5:
        System.out.println("Zamykam program");
        break;
    default:
        System.out.println("Wybrałeś nieprawidłową opcję");
        break;
}

Dodajmy też sprawdzenie naszego menu – > if(choose < 5)

Scanner scanner = new Scanner(System.in);
Calculator calculator = new Calculator();
calculator.printMenu(); // menu calculator
int choose = scanner.nextInt();
if (choose &lt; 5) {
    System.out.println("Wczytaj pierwszą liczbę: ");
    int num1 = scanner.nextInt();
    System.out.println("Wczytaj drugą liczbę: ");
    int num2 = scanner.nextInt();

    switch (choose) {
        case 1:
            System.out.println("Dodawanie: " + num1 + " + " + num2 + " = " + calculator.add(num1, num2));
            break;
        case 2:
            System.out.println("Odejmowanie: " + num1 + " - " + num2 + " = " + calculator.substract(num1, num2));
            break;
        case 3:
            System.out.println("Mnożenie: " + num1 + " * " + num2 + " = " + calculator.multiply(num1, num2));
            break;
        case 4:
            if (num2 == 0) {
                System.out.println("Nie można dzielić przez 0!");
            } else {
                System.out.println("Dzielenie: " + num1 + " / " + num2 + " = " + calculator.divide(num1, num2));
            }
            break;
        default:
            System.out.println("Wybrałeś nieprawidłową opcję");
            break;
    }
}else {
    System.out.println("Wybrałeś nieprawidłową opcję");
}

Dalej zachęcam do własnego opracowania metod, to co można jeszcze wyeksportować do metod:

  • warunek sprawdzajcy menu – if(choose < 5)
  • warunek switch
  • a może też dodanie pętli do-while?
  • a może cały kod?

Niech to będzie zadanie dla Ciebie, rozwiązanie w kolejnej części Pozdro 🙂

Java Tutorial Step 3 – Rozwiązanie

Moje rozwiązania do zadań z 3 części. Spróbuj rozwiązać samodzielnie przed sprawdzeniem mojego rozwiązania 🙂

Continue reading

Java Tutorial Step 3 – Pętle

W tej części omówimy pętle oraz kilka przykładów zastosowania w naszym kalkulatorze

 

Continue reading

Squad Play Team part 4 – Update + zmieniamy widoki

Hello, dalsza cześć tworzenia aplikacji. W tym odcinku przejdziemy do edycji drużny. W między czasie wyszła nowa aktualizacja do platformy – skorzytamy z jednej nowje opcji w aplikacji 🙂 Zapraszam

Continue reading

Java Tutorial Step 2 – Rozwiązanie

Rozwiązanie + kod z opisem z części 2 – > Java Tutorial Step 2.

Od tego odcinka dodaje nowy wpis z rozwiązaniem zadania . Rozwiązanie będzie zawierać elementy, które przerobiliśmy do tej pory Oczywiście rozwiązań jest kilka i Twoje może się znacznie różnić 🙂 Zapraszam do wykonania i porównania swojego rozwiązania.

Continue reading

Automatyczne podpowiedzi, czyli – jak ułatwić sobie pracę korzytając z jQuery #Lifehack

W codziennej pracy często spotykamy się z monotonnym wykonywaniem tych samych czynności. Skoro coś się powtarza to czemu tego nie zautomatyzować?

W tym mini poradniku pokażę jak ułatwić sobie  wypełnianiem formularzy w przeglądarce do rożnego rodzaju systemów. Np. CRM, SAP.

 

Continue reading

Squad Play Team part 3

Kolejna cześć, jak szybko dodać możliwość edycji danych z bazy danych. Wykorzystamy na przykładzie listy zawodników drużyny.

Continue reading

Java Tutorial Step 2

W tym odcinku zbudujemy proste menu kalkulatora oraz dodamy opcje wpisywania liczb z klawiatury.

Na koniec Zadania + Bonus 🙂

 

Continue reading

Squad Play Team part 2

Kolejny krok w tworzeniu aplikacji Squad. Tym razem utworzymy kolejny moduł – listę zawodników Twojego klubu. Zapraszam do kolejnego kroku z platformą Telerik

Continue reading

„Getting Things Programmed. Droga do efektywności” – co dobrego odkryłem. Recenzja.

Witaj, to moja pierwsza recenzja na blogu(proszę o wyrozumiałość ;)). Autor:Michał Bartyzel – „Getting Things Programmed. Droga do efektywności”
Wybrałem książkę która napisana została przez programistę i dla programistów( i nie tylko). Programowanie to temat w IT ostatnio bardzo popularny i książka swoim tytułem wzbudziła we mnie mieszane uczucia. Podobnie jak produkty dedykowane dla graczy  w których dopłacamy za zbędne bajery (z całym szacunkiem dla graczy) for gammers 😉
Z czasem przekonałem się…. i..

Continue reading

« Older posts

© 2018 Krzyśki z IT

Theme by Anders NorenUp ↑