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

Dlaczego nie moge zrozumieć metod w Javie, a funkcje w C++ z łatwością.

Object Storage Arubacloud
+1 głos
421 wizyt
pytanie zadane 11 listopada 2020 w Java przez Jedwab Użytkownik (550 p.)

Czy jest tu ktoś kto jest w stanie wytlumaczyć mi jak stworzyć, wywołać i gdzie i jak zapisac zmienne w Javie? W C++ było bardz łatwę. W javie po obejrzeniu kursów, przeczytaniu poradników nic to nie daje...

Wiem tyle, że metodę trzeba stworzyć i potem jaj wywołać. Wiem, że musi zwracac odpowiedni typ lub być voidem, ale najwieksza dla mnie zagadką jest to:

Stworzenie metody:

Nikt nie tlumaczy tego co powinno być na pierwszym, drugim miejscu, ile tych miejsc powinno być. Już nie wiem jak sie do tego zabrać. Im wiecej ogladam tym każdy przykład jest inny i wiem jeszcze mniej.

Tworzenie metody:
[1][2][Nazwa_metody_ktora sam wybieram]();{

}

Wywoływanie metody:
????????

Zmienne w javie:
???????

Jest ktos w stanie kazdy kwadratowy nawias mi opisać?

2 odpowiedzi

+2 głosów
odpowiedź 12 listopada 2020 przez amtrax Dyskutant (9,630 p.)
edycja 13 listopada 2020 przez amtrax

Metody w Javie mogą być:

  • - statyczne
  • -publiczne lub prywatne, lub chronione
  • -mogą zwracać różne typy danych, mogą też być typu void. 

Jeżeli metoda nie jest statyczna, to musi być wywoływana na rzecz jakiegoś obiektu.

Załóżmy, że mamy klasę  Bank, a w niej metodę publiczną zwracającą stan konta. 

class Bank{

[.....]
private int cash;


public int seeCash(){return cash;}

}

Żeby wywołać tą metodę w innej klasie(poza klasą Bank), musimy utworzyć instancję klasy Bank, zainicjalizować niezbędne zmienne w niej umieszczone, a na samym końcu wywołać metodę.



Bank account = new Bank(10);

int cash = account.seeCash();

W tym przykładzie metodę wywołujemy na rzecz stworzonej wcześniej instancji obiektu. Jeżeli ww. metoda była by statyczna, nie musielibyśmy tworzyć instancji obiektu, wystarczyłoby się tylko odwołać do nazwy klasy. 



Bank.seeCash();

Używając metod statycznych należy pamiętać o kilku kluczowych rzeczach.  W internecie na pewno znajdziesz materiały mówiące o tym. 

W Javie nie ma  znaczenia, na jakim miejscu jest dane słowo kluczowe, musi być ono jednak przed nazwą metody. 

public void myVoid();

void public myVoid(); 

Obie deklaracje są poprawne. 

Jeżeli chodzi o zmienne:

Zmienna może być zadeklarowana w klasie, wtedy mają do niej dostęp wszystkie metody, które się w niej znajdują. 

Jeżeli zmienną zadeklarujemy w metodzie, to jest ona widoczna tylko i wyłącznie tam.  

Java to obiektowy język programowania, więc prawie wszystko co robimy opiera się na klasach, metodach, konstruktorach etc. Zauważ, że metoda main  również znajduje się w pewnej klasie. 

 

Mam nadzieje, że choć trochę pomogłem Ci zrozumieć to zagadnienie. 

Dalej służę pomocą ;) 

1
komentarz 12 listopada 2020 przez tkz Nałogowiec (42,000 p.)

Metody w Javie mogą być:

  • - statyczne
  • -publiczne lub prywatne, lub chronione
  • -mogą zwracać różne typy danych, mogą też być typu void. 

Dochodzi jeszcze zasięg pakietu 

komentarz 12 listopada 2020 przez mbabane Szeryf (79,280 p.)

@amtrax,

Jeżeli metoda nie jest prywatna, to musi być wywoływana na rzecz jakiegoś obiektu.

Bardziej niestatyczna

komentarz 12 listopada 2020 przez Wiciorny Ekspert (270,190 p.)

Jeżeli metoda nie jest prywatna, to musi być wywoływana na rzecz jakiegoś obiektu.

swoją drogą też jest to niepoprawne,  juz to co wskazał @mbabane, ale tez  fakt, tego że metoda prywatna może być wewnętrznie wykorzystana... na rzecz innych metod publicznych, które wykorzystują już instancje obiektów , ale tutaj bardziej chodzi o INSTANCJE, bo sam obiekt  to też klasa. 

komentarz 12 listopada 2020 przez amtrax Dyskutant (9,630 p.)

Male sprostowanie, tam gdzie prywatna miało być oczywiście statyczna

1
komentarz 12 listopada 2020 przez mbabane Szeryf (79,280 p.)

@Wiciorny,

 na rzecz innych metod publicznych,

Prywatna statyczna. Prywatna niestatyczna nadal wymaga instancji obiektu, do którego należy - ale wydaje mi się że to miałeś na myśli.

 

@amtrax,

Możesz wyedytować post żeby nie było tam dezinformacji.

0 głosów
odpowiedź 12 listopada 2020 przez adrian17 Ekspert (344,860 p.)

 W C++ było bardz łatwę. 

Ale to jest... dokładnie analogiczne do C++a.

Java:

public class Klasa {

    private int data;

    public int metoda() {
        return data;
    }
}

C++:

class Klasa {
  private:
    int data;
  public:
    int metoda() {
        return data;
    }
}

Oczywiście są różnice przy bardziej zaawansowanych funkcjonalnościach (const/readonly, pozycja final etc), ale poza pozycją public/private, podstawowa składnia jak widać jest praktycznie taka sama.

Podobne pytania

0 głosów
2 odpowiedzi 447 wizyt
pytanie zadane 14 października 2018 w Java przez Kubs Mądrala (5,190 p.)
0 głosów
1 odpowiedź 660 wizyt
0 głosów
1 odpowiedź 189 wizyt

92,579 zapytań

141,431 odpowiedzi

319,657 komentarzy

61,963 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...