- Przy budowie klasy wartość zwracana jest uzależniona od wartości zmiennej (globalnej)?
Czego wartość?
- Przy budowie metody używając parametr
double r
mogę użyć danej metody dla różnych wartości zmiennej r
?
W sytuacji, gdy masz np. metodę:
public double getR(double r) {
return r;
}
...to r
jest parametrem, a nie zmienną. Natomiast, gdy użyjesz w/w metody i napiszesz getR(5)
, to 5
będzie określane jako argument metody getR()
(zobacz: http://stackoverflow.com/questions/12709026/difference-between-arguments-and-parameters-in-java). Zmienną mógłbyś nazwać np. obiekt z
, gdybyśmy zrobili coś takiego:
public double getR(double r) {
double z = r; // Przypisuję wartość parametru `r` do zmiennej `z`.
return z;
}
W tym przypadku z
jest zmienną lokalną, bo nie może być wykorzystana na zewnątrz metody. Gdybyśmy chcieli uczynić z niej zmienną globalną to moglibyśmy napisać:
class Klasa {
double z = 5;
public double getR(double r) {
return r + z;
}
}
W takiej sytuacji, gdy utworzymy obiekt klasy Klasa
i wywołamy dla niego metodę getR(5)
w wyniku otrzymamy 10
:
class Test {
public static void main(String[] args) {
Klasa obiekt = Klasa();
double wynik = obiekt.getR(5);
System.out.println(wynik);
}
}
Oczywiście możemy użyć kilka razy metody getR(double r)
dla różnych wartości parametru r
. Sprawdź jaka będzie wartość zmiennej wynik
z powyższego przykładu, gdy napiszesz coś takiego double wynik = obiekt.getR(5) + obiekt.getR(7);
. Tutaj znajdziesz więcej informacji o zmiennych: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html
- Jak tworzyć funkcje w javie? Funkcja w c++ ma dla mnie bardzo podobną budowę jak metoda w javie? A może ta metoda (z pierwszego postu) jest funkcją dla javy?
W Javie nie ma funkcji, są metody. Metodę możesz zadeklarować na kilka różnych sposobów. Zanim je podam przyjrzyj się ogólnemu schematowi każdej metody w Javie:
modyfikator_dostępności typ_zwracanej_wartości nazwaMetody(Parametr parametr) {
// Ciało metody.
}
-
Modyfikator dostępności określa, jak sama nazwa wskazuje, dostępność metody w różnych miejscach pisanego programu. Jego użycie jest opcjonalne, ale wskazane. Wyróżniamy modyfikatory public
, private
oraz protected
. Można również oznaczyć metodę DODATKOWO jako static
, np. public static void main(String[] args);
. Jednak o tym porozmawiamy na innej lekcji.
-
Typ zwracanej wartości określa rodzaj obiektu, który zwraca metoda. Może to być np. double
, int
, String
, JPanel
, MojaKlasa
itd. Wszystko, co jest obiektem, może być zwrócone przez metodę. Metoda może jednak nic nie zwracać. Wtedy zamiast typu zwracanej wartości piszemy void
.
-
Nazwa zmiennej, to nazwa zmiennej. Ważne jest jednak ich nazewnictwo. Nazwa powinna być krótka i jasno odzwierciedlać to, co metoda robi. Należy się również stosować do konwencji formatowania nazwy metody, czyli nie nazywamy metody tak: moja_pierwsza_metoda
, ale nazywamy tak: mojaPierwszaMetoda
.
-
Parametr. Parametry już sobie z grubsza omówiliśmy. Można o nich powiedzieć więcej, ale jak będziesz głodny wiedzy, to na pewno chętnie przeczytasz:
http://www.tutorialspoint.com/java/java_methods.htm
https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html
https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
https://docs.oracle.com/javase/tutorial/reflect/class/classModifiers.html
Tutaj się zatrzymam i przytoczę kilka przykładów metod:
public void metodaKrzyczaca() {
System.out.println("Hello Woooooooorld!");
}
public int metodaDodajacaDwieLiczbyCalkowite(int x, int y) {
return x + y;
}
public static void main(String[] args) {
System.out.println("Zadanie domowe - dowiedz się jak działa metoda main(String[] args)");
}