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

Potrzebuję wyjaśnienia kodu!

Object Storage Arubacloud
0 głosów
278 wizyt
pytanie zadane 22 grudnia 2018 w Java przez ShockOfficial Początkujący (390 p.)

Cześć!
Proszę o wytłumaczenie mi dlaczego w tym kodzie tutaj piszemy System.out.println(s); jak "s" nie jest zdefiniowane nigdzie. Wiem, że mamy 2 metody jedna main druga do drukowania, ale nie rozumiem tutaj używanie tej zmiennej "s" oraz dlaczego w metodzie main mamy samo "print" 
Proszę o rozjaśnienie mi tego laugh

public class Solution {
    public static void main(String[] args) {
        print("Java is easy to learn!");
        print("Java opens many opportunities!");
    }

    public static void print(String s) {
        System.out.println(s);
         System.out.println(s);
          System.out.println(s);
           System.out.println(s);
    }
}

 

4 odpowiedzi

+1 głos
odpowiedź 22 grudnia 2018 przez DeBos123 Nałogowiec (44,950 p.)

jak "s" nie jest zdefiniowane nigdzie.

Jest zdefiniowana:

public static void print(String s)

dlaczego w metodzie main mamy samo "print" 

Wywołujesz w ten sposób funkcję "print"

komentarz 22 grudnia 2018 przez ShockOfficial Początkujący (390 p.)

Lecz dalej nie rozumiem skoro mamy

public static void print(String s) {

to skąd program wie, że ta zmienna "s" odnosi się ciągu znaków napisanych w metodzie main

 public static void main(String[] args) {

        print("Java is easy to learn!");

        print("Java opens many opportunities!");

    }

Oraz 


print("Java is easy to learn!");

To skrócone System.out.print(); ?

 

komentarz 22 grudnia 2018 przez DeBos123 Nałogowiec (44,950 p.)

to skąd program wie, że ta zmienna "s" odnosi się ciągu znaków napisanych w metodzie main

Zmienna "s" to jest po prostu pierwszy argument tej funkcji tzn. jeżeli masz np. taką funkcję:

    public static void a(String b, String c) {

    }

i wywołasz ją w taki sposób:

a("abc","xyz");

to wtedy zmienna "b" przyjmuje wartość "abc", a zmienna "c" wartość "xyz".

To skrócone System.out.print(); ?

Nie, po prostu w tym przypadku funkcja "print" wypisuje podany tekst (4 razy), czyli ja mogę napisać np. taką funkcję:

public static void abcdefghi(String s){
    System.out.print(s);
}

i to wcale nie oznacza, że "abcdefghi" to "skrócone System.out.print".

+1 głos
odpowiedź 22 grudnia 2018 przez izonik Stary wyjadacz (12,560 p.)

1.

dlaczego w tym kodzie tutaj piszemy System.out.println(s); jak "s" nie jest zdefiniowane nigdzie.

`s` jest to zmienna zdefiniowana w tym miejscu 

    public static void print(String s)

jako argument funkcji. Oznacza to że kiedy będziemy używać funkcji `print`, to java będzie od nas wymagała abyśmy podali jakiś napis jako argument. Dalej możemy tego argumentu używać w ciele funkcji, właśnie pod postacią zmiennej `s`.

dlaczego w metodzie main mamy samo "print"  

Pełne wywołanie metody statycznej to `Solution.print("Jakiś napis");`, ale jako że do tej metody chcemy się odwołać z poziomu innej metody tej samej klasy to możemy użyć po prostu `print("foo")'`. W przypadku gdy chcemy użyć tej metody w funkcji innej klasy, musimy użyć pełnego wywołania.

+1 głos
odpowiedź 22 grudnia 2018 przez AdamSiekierski Dyskutant (8,340 p.)
Z kodu wynika, iż tworzymy funkcję wyrzucającą 4 linijki tekstu który jej podamy. Ciąg znaków "s" definiujemy jako argument funkcji print. Przy wywoływaniu funkcji tworzy nam się ciąg znaków o nazwie "s" i wartości podanej w nawiasach. To wszystko. Funkcja print(), to taki "skrót". Tak działają funkcje "typu void" - tworzą skrót do kodu umieszczonego wewnątrz ich. Mam nadzieję że wyraziłem się zrozumiale, jak najprostszym językiem ;)

Pzdr!
0 głosów
odpowiedź 25 grudnia 2018 przez ShockOfficial Początkujący (390 p.)

Dziękuję bardzo wszystkim za pomoc. Wszystko zrozumiałem dzięki!

Pozdro! 

Podobne pytania

0 głosów
1 odpowiedź 104 wizyt
pytanie zadane 20 kwietnia 2018 w Java przez Sypni Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 260 wizyt
pytanie zadane 7 stycznia 2023 w C i C++ przez mayak Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 435 wizyt
pytanie zadane 13 października 2022 w C i C++ przez Bilib Użytkownik (990 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...