CodeGym /Kursy Java /Składnia Java /Porównanie z Pascalem

Porównanie z Pascalem

Składnia Java
Poziom 1 , Lekcja 8
Dostępny
image-pol-01-05

– Cześć. Nazywam się Laga Bilaabo. Jestem istotą pozaziemską i lekarzem na tym statku. Mam nadzieję, że się zaprzyjaźnimy.

– Ja również.

– Na mojej macierzystej planecie używamy zaawansowanego języka programowania Pascal zamiast zacofanego języka Java. Spójrz na to porównanie kodu Java i Pascal:

Java Pascal
public class MojaPierwszaKlasa
{
   public static void main(String[] args)
   {
      int a, b, c;
      String s1, s2;
      System.out.println("Wprowadź dwie liczby");
      a = new Scanner(System.in).nextInt();
      b = new Scanner(System.in).nextInt();
      c = a + b;
      System.out.println("Suma to " + c);
   }
}
Program MojPierwszyProgram;
Var
   a, b, c: Integer;
   s1, s2: String;
Begin
   WriteLn("Wprowadź dwie liczby");
   ReadLn(a);
   ReadLn(b);
   c := a + b;
   WriteLn("Suma to ", c);
End.

– To ten sam program, ale napisany w dwóch różnych językach. Jak widać, wersja w Pascalu ma mniej linii, co świadczy o tym, że Pascal jest lepszy od Javy.

– Uznałem, że ten przykład może pomóc Ci zrozumieć Javę, jeżeli wcześniej używałeś Pascala.

– Nie, nie używałem. Mimo to porównanie dwóch języków programowania jest interesujące.

– Słusznie. Będę zatem kontynuował.

– W Pascalu umieszczamy kod w ciele programu, procedurach lub funkcjach. W Javie ten proces jest uproszczony: ciało programu, procedury i funkcje zostały zastąpione funkcjami nazywanymi metodami.

Java Pascal
Metoda main
public static void main(String[] args)
{
   System.out.println("Ho-ho-ho!");
}
Ciało programu
Begin
   WriteLn("Ho-ho-ho!");
End.
Funkcja/metoda
double kwadrat(double a)
{
   return a * a;
}
Funkcja
Function Kwadrat(a: Real): Real
Begin
   Kwadrat := a * a;
End;
Funkcja zwracająca void (typ pusty)
void doubleWrite(String s)
{
   System.out.println(s);
   System.out.println(s);
}
Procedura
Procedure NapiszDwukrotnie(s: String);
Begin
   WriteLn(s);
   WriteLn(s);
End;

– W kolumnie z Pascalem widzę takie określenia, jak „ciało programu”, „funkcja” i „procedura”, ale w Javie wszystkie one są nazywane metodami. To trochę dziwne.

– My, istoty pozaziemskie, uważamy, że to bardzo dziwne. Ale ludzie lubią wszystko ujednolicać.

– W Javie cały kod jest częścią metody, więc nie trzeba nawet wpisywać słowa Function, jak w Pascalu, aby zadeklarować metodę.

– To wszystko jest bardzo proste. Jeśli linia kodu wygląda jak Typ + Nazwa, jest to deklaracja metody lub zmiennej. Jeśli po nazwie znajdują się nawiasy, to jest to deklaracja nowej metody. Jeśli nie ma nawiasów, jest to deklaracja zmiennej.

– Deklaracje zmiennych i metod są w Javie bardzo podobne. Sam zobacz:

Kod Opis
String imie;
Zmienna o nazwie imie, która jest typu String.
String getImie()
{
}
Metoda o nazwie getImie, która zwraca String.

– Ale to nie wszystko. W Javie metody nie mogą istnieć samodzielnie. Muszą być umieszczone wewnątrz klasy. Zatem, gdy ludzie chcą napisać jeden mały program w Javie, muszą najpierw stworzyć klasę, zadeklarować w niej metodę main i dopiero wtedy mogą napisać swój kod w metodzie. Ci Ziemianie są pokręceni!

– Diego wpadł do mnie i poprosił o przekazanie Ci tych zadań. Mam nadzieję, że Ci się spodobają.

Komentarze (16)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
NiceHatMate Poziom 17, Poland, Poland
14 stycznia 2024
Epic zadanie fajne i rozwiązałem je, ale tylko dlatego ze wczesniej uczylem sie tez javy z inncych zrodel. Troche to niesprawidliwe dla nowych uzytkownikow.
YooRec Poziom 2, Lodz, Poland
25 grudnia 2021
Zadanie z kwadratem liczb oderwane od rzeczywistości...
Norbert Poziom 41
1 lutego 2023
Wystarczyło napisać

System.out.println(kwadrat(5));
Grzegorz Poziom 10, Poland, Poland
18 lipca 2023
wystarczyło, ale nie pokazywali jak się wywołuje funkcje
Piotr Mgłosiek Poziom 2
20 grudnia 2020
mam pytanie czy 1 zadanie epic można było rozwiązać z wiedzą z tego kursu. nie przypominam sobie żebyśmy się tego uczyli. ale mogę się mylić
YooRec Poziom 2, Lodz, Poland
25 grudnia 2021
nie
NeoBTK Poziom 8, Katowice, Poland
5 sierpnia 2022
Albo to zadanie zostało już poprawione, albo tak było od początku, ale to co zawiera rozwiązanie System.out.println(kwadrat(5)); było wszystko wcześniej, wyświetlanie i opis że metoda może zwracać wartość.
Mateusz Poziom 36, Toruń, Poland
4 września 2020
/* Comment has been deleted */
Alex Vypirailenko Poziom 41, USA
4 września 2020
Epic tasks are so-called tasks from the future, which may have theory that has not been covered yet. Feel free to leave such tasks for later, until you cover the required topic(s), which most of the time follow in the upcoming lessons.
Sylvia Poziom 4, Poland, Poland
19 listopada 2021
Feel free to use Google ;) A programmer's best friend :D
Patryk Poziom 3, Augsburg, Germany
29 sierpnia 2020
Witam, dlaczego od poczatku szkolenianie bylo nic napisane o takiej mozliwosci :System.out.println(sqr(5)); ? Jak osoba poczatkujaca ma wywnioskowac ze jest to rozwiazanie zadania?
Piotr Lelonek Poziom 24, Warsaw, Poland
24 lipca 2020
Zadanie dość długo rozkminiałem, gdyż treść zadania jest myląca, grubą czcionką nie powinno być napisane "kwadrat liczby".
Karolina Poziom 1, Warsaw, Poland
6 maja 2020
poproszę porównanie z Pythonem! ;)
Katarzyna Poziom 7
8 kwietnia 2020
bład we wskazówce zamiast sqr powinno być kwadrat
Paweł Poziom 3, Warsaw, Poland
10 sierpnia 2020
bo to ma być wskazówka, a nie rozwiązanie ;)
YooRec Poziom 2, Lodz, Poland
25 grudnia 2021
Chyba zagadka, bo sqr to pierwiastek nie kwadrat...