Vergelijking met Pascal - 1

"Ha! Mijn naam is Laga Bilaabo. Ik ben een buitenaards wezen. En de scheepsarts van dit ruimteschip. Hopelijk worden we goede vrienden."

"Dat zou ik fijn vinden."

"Op mijn thuisplaneet gebruiken we de geavanceerde programmeertaal Pascal in plaats van dat primitieve Java. Kijk maar eens naar deze vergelijking tussen Java- en Pascal-code:

Java Pascal
public class MyFirstClass
{
   public static void main(String[] args)
   {
      int a, b, c;
      String s1, s2;
      System.out.println("Enter two numbers");
      a = new Scanner(System.in).nextInt();
      b = new Scanner(System.in).nextInt();
      c = a + b;
      System.out.println("The sum is " + c);
   }
}
Program MyFirstProgram;
Var
   a, b, c: Integer;
   s1, s2: String;
Begin
   WriteLn("Enter two numbers");
   ReadLn(a);
   ReadLn(b);
   c := a + b;
   WriteLn("The sum is ", c);
End.

Dit is twee keer hetzelfde programma, geschreven in twee verschillende talen. Zoals je ziet, heeft de Pascal-versie minder regels. Dat bewijst dat Pascal superieur is aan Java.

Ik hoop dat dit voorbeeld je helpt om Java beter te begrijpen, als je al eens iets van Pascal hebt gezien."

"Nee, dat heb ik niet. Maar het is toch interessant om twee programmeertalen te vergelijken."

"Jazeker. Dan ga ik verder.

In Pascal zet je de programmacode in de programmabody, in procedures of in functies. In Java is dit versimpeld: de programmabody, de procedures en de functies zijn allemaal vervangen door functies, die ze in Java 'methoden' noemen."

Java Pascal
Main-methode
public static void main(String[] args)
{
   System.out.println("Ho-ho-ho!");
}
Programmabody
Begin
   WriteLn("Ho-ho-ho!");
End.
Methode
double sqr(double a)
{
   return a * a;
}
Functie
Function Sqr(a: Real): Real
Begin
   Sqr := a * a;
End;
Methode met retourtype void
void doubleWrite(String s)
{
   System.out.println(s);
   System.out.println(s);
}
Procedure
Procedure DoubleWrite(s: String);
Begin
   WriteLn(s);
   WriteLn(s);
End;

"In de Pascal-kolom zie ik 'programmabody', 'functie' en 'procedure' staan, maar in Java heten ze allemaal 'methode'. Dat vind ik een beetje gek."

"Ja, wij buitenaardse wezens vinden het ook gek, heel erg gek zelfs. Maar mensen houden er nu eenmaal van alles op één hoop te gooien.

In Java is ALLE code onderdeel van een methode, dus om een methode te declareren hoef je niet eens het woord Function te gebruiken, zoals in Pascal.

Het is eigenlijk best simpel. Als een regel met code eruit ziet als type + naam, dan is het een declaratie, ofwel van een methode of van een variabele. Als er een haakje openen en een haakje sluiten achter de naam staan, dan is het een declaratie van een nieuwe methode. Als er geen haakjes zijn, dan is het een declaratie van een nieuwe variabele.

Declaraties van variabelen en van methode lijken erg op elkaar in Java. Kijk maar:

Code Beschrijving
String name;
Een variabele genaamd name die een waarde van het type String kan bevatten.
String getName()
{
}
Een methode genaamd getName die een waarde van het type String retourneert.

Maar dat is nog niet alles. Een methode kan in Java niet in zijn eentje voorkomen. Methoden moeten altijd onderdeel zijn van een klasse. Dus wanneer mensen een klein programmaatje in Java willen schrijven, moeten ze eerst een klasse maken en in die klasse een main-methode declareren. Pas dan kunnen ze code in de methode schrijven. Aardlingen zijn echt heel vreemde wezens!

Diego is vanmorgen bij me langs geweest en hij vroeg me om deze taken aan jou door te geven. Ik hoop dat je ze leuk vindt."