Inne działy

Java przykładowe programy

 

Metody w klasach Java

 

Więc mamy teraz nazwisko studenta i nazwę egzaminu. Obie są przechowywane w polach w klasie WynikiStudentow. Teraz możemy dodać wynik egzaminu.

Dodaj następujące nowe metody do swojej klasy, kod umieść za metodą nazwaEgzaminu:

 

String wynikEgzaminu(int aWynik){
        
        Wynik_Egzaminu = aWynik + " z 50";
        return Wynik_Egzaminu;
    }

Nowa metoda ma nazwę wynikEgzaminu, zmienna typu int o nazwie aWynik znajduję się w okrągłych nawiasach. Metoda zwraca wartość typu string (ciąg tekstowy). Sama metoda łączy tylko wynik z ciągiem " z 50". Więc jeśli wartość aWynik jest 30, tekst "30 z 50" będą przechowywane w polu Wynik_Egzaminu.

W klasie SzczegolyEgzaminu należy dodać następujący wiersz:

String wynik = aStudent.wynikEgzaminu(30);

Wywołujemy nową metodę wynikEgzaminu i przekazujemy wartość 30. Wartość w polu Wynik_Egzaminu jest zwracana i następnie przechowywana w zmiennej tekstowej o nazwie wynik.

Dodaj nową metodę wyświetlającą wynik, nasz kod wygląda jak poniżej:

 

package szczegolyegzaminu;


public class SzczegolyEgzaminu {

    
    public static void main(String[] args) {
        
        WynikiStudentow aStudent = new WynikiStudentow();
        
        String sNazwa = aStudent.pelnaNazwa("Bill Gates");
        String egzamin = aStudent.nazwaEgzaminu("VB");
        String wynik = aStudent.wynikEgzaminu(30);
        
        System.out.println(sNazwa);
        System.out.println(egzamin);
        System.out.println(wynik);                      
    }    
}

Po uruchomieniu programu, okno Output powinno wyglądać jak poniżej:

 

run:
Bill Gates
Visual Basic .NET
30 z 50
BUILD SUCCESSFUL (total time: 1 second)

Mamy więc nazwisko studenta, nazwę egzaminu i wynik z 50. Teraz możemy dodać stopnie.

Będziemy używać jednej litery dla oceny egzaminu: A, B, C, D lub E. Jeśli student otrzyma 41 lub więcej, to dostanie A; Jeśli wynik jest między 31 a 40, to dostanie B; a za wynik 21 do 30 dostanie C, ocena D jest między 11 i 20; a E to wynik od 0 do 10.

Dodaj następującą metodę do obliczania powyższych ocen (dodaj ją do klasy WynikiStudentow):

 

private String getStopien(int aWynik){
        
        String egzaminStopien = "";
        
        if(aWynik >= 0 && aWynik <= 10){
            egzaminStopien = "E";
        }else if (aWynik >= 11 && aWynik <= 20){
            egzaminStopien = "D";
        }else if (aWynik >= 21 && aWynik <= 30){
            egzaminStopien = "C";
        }else if (aWynik >= 31 && aWynik <= 40){
            egzaminStopien = "B";
        }else if (aWynik >= 41){
            egzaminStopien = "A";
        }
        return "Ocena wynosi " + egzaminStopien;
    }

Należy zauważyć, że metoda ta jest prywatną (używamy słowa kluczowego private). Podobnie jak pola metoda także może być prywatna oznacza to, że może być dostępna tylko wewnątrz tej klasy. Nie może być dostępna w klasie SzczegolyEgzaminu.

Aby uzyskać dostęp do klasy, możemy skonfigurować inną metodą wewnątrz klasy WynikiStudentow. Użyjemy jej aby uzyskać stopień. Dodaj następującą metodę tylko powyżej metody getStopien (choć można ją dodać poniżej, jeśli wolisz: nie robi to dla Javy żadnej różnicy):

 

String egzaminStopien(int aWynik){
        Stopien_Egzaminu = this.getStopien(aWynik);
        return Stopien_Egzaminu;
    }

Jest to metoda, którą będziemy wywoływać z klasy SzczegolyEgzaminu, a nie metodę getStopien. Nazwa tej nowej metody to egzaminStopien, i ponownie pobieramy wynik studenta. Spójrz na poniższą linię:

Stopien_Egzaminu = this.getStopien(aWynik);

Nazwa metody to getStopien przekazujemy do niej wynik. Wywołanie metody jednej przez drugą jest standardową praktyką, i umożliwia uproszczenie kodu. Alternatywą są bardzo długie metody, które są trudne do odczytania.

Inną rzeczą, którą należy zauważyć w wierszu powyżej to słowo kluczowe this. To słowo kluczowe oznacza "ta klasa", a nie inna klasa, która może mieć taką samą nazwę metody. To pozwala uniknąć wszelkich niejasności. Absolutnie nie jest konieczne. Wywołana metoda nadal będzie działać bez niego:

Stopien_Egzaminu = getStopien(aWynik);

Końcowy rezultat, jednak jest wciąż ten sam: przechowujemy dane w polu Stopien_Egzaminu a zawarością zmiennej będzie „Ocena wynsi ” i stopien z egzaminu.

Dodaj następujący wiersz do klasy SzczegolyEgzaminu, do testowania nowych metod:

String stopien = aStudent.egzaminStopien(30);

Ta linia przekazuje wartość 30 metodzie egzaminStopien. Wartość w polu Stopien_Egzaminu jest następnie zwracana i przechowywana w zmiennej o nazwie stopien.

Kod klasy SzczegolyEgzaminu powinnien wygladać jak poniżej:

 

package szczegolyegzaminu;


public class SzczegolyEgzaminu {

    
    public static void main(String[] args) {
        
        WynikiStudentow aStudent = new WynikiStudentow();
        
        String sNazwa = aStudent.pelnaNazwa("Bill Gates");
        String egzamin = aStudent.nazwaEgzaminu("VB");
        String wynik = aStudent.wynikEgzaminu(30);
        String stopien = aStudent.egzaminStopien(30);
        
        System.out.println(sNazwa);
        System.out.println(egzamin);
        System.out.println(wynik);
        System.out.println(stopien);
                      
    }
    
}

Uruchom swój program, aby wyświetlić okno Output:

 

run:
Bill Gates
Visual Basic .NET
30 z 50
Ocena wynosi C
BUILD SUCCESSFUL (total time: 0 seconds)

Jeśli Twój program nie działa poprawnie, Oto pełny kod klasy WynikiStudentow:

 

package szczegolyegzaminu;


public class WynikiStudentow {
    
    private String Pelna_Nazwa;
    private String Nazwa_Egzaminu;
    private String Wynik_Egzaminu;
    private String Stopien_Egzaminu;
    
    WynikiStudentow(){   
        
        Pelna_Nazwa = "Brak nazwy";
        Nazwa_Egzaminu = "Nieznana";
        Wynik_Egzaminu = "Brak wyniku";
        Stopien_Egzaminu = "Nie znany";
    }

    String pelnaNazwa(String aNazwa){
        
        Pelna_Nazwa = aNazwa;
        return Pelna_Nazwa;
    }
    
    String nazwaEgzaminu(String kodEgzaminu){
        
        if(kodEgzaminu.equals("VB")){
            Nazwa_Egzaminu = "Visual Basic .NET";            
        } else if (kodEgzaminu.equals("JV")){
            Nazwa_Egzaminu = "Java";
        } else if (kodEgzaminu.equals("C#")){
            Nazwa_Egzaminu = "C# .NET";
        } else if (kodEgzaminu.equals("PH")){
            Nazwa_Egzaminu = "PHP";
        } else {
            Nazwa_Egzaminu = "Nie wybrano egzaminu";
        }        
        return Nazwa_Egzaminu;
    }
    
    String wynikEgzaminu(int aWynik){
        
        Wynik_Egzaminu = aWynik + " z 50";
        return Wynik_Egzaminu;
    }
    
    String egzaminStopien(int aWynik){
        Stopien_Egzaminu = this.getStopien(aWynik);
        return Stopien_Egzaminu;
    }
    
    private String getStopien(int aWynik){
        
        String egzaminStopien = "";
        
        if(aWynik >= 0 && aWynik <= 10){
            egzaminStopien = "E";
        }else if (aWynik >= 11 && aWynik <= 20){
            egzaminStopien = "D";
        }else if (aWynik >= 21 && aWynik <= 30){
            egzaminStopien = "C";
        }else if (aWynik >= 31 && aWynik <= 40){
            egzaminStopien = "B";
        }else if (aWynik >= 41){
            egzaminStopien = "A";
        }
        return "Ocena wynosi " + egzaminStopien;
    }
        
}

W następnej lekcji dowiesz się o dziedziczeniu.

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.