Kapitel 3. Basal programmering

Kapitlet forudsættes i resten af bogen.

3.1. Det første javaprogram

Lad os se på et simpelt javaprogram, der skriver "Hej verden" og et citat af Storm P. ud til skærmen.

 
// Et simpelt program, der skriver "Hej verden"  
// og et citat af Storm P. ud til skærmen 
public class HejVerden 
{ 
  public static void main (String[] args) 
  { 
    System.out.println("Hej Verden!"); 
    System.out.println("Hvornår smager en Tuborg bedst?"); 
    System.out.println("Hvergang!"); 
  } 
} 

Inden vi oversætter og kører programmet

3.1.1. Kommentarer

Kommentarer er dokumentation beregnet på at gøre programmets kildetekst lettere at forstå. De påvirker ikke programudførelsen, da oversætteren ignorerer dem.

De første 3 linjer, der starter med //, er kommentarer:

 
// Et simpelt program, der skriver "Hej verden" 
// og et citat af Storm P. ud til skærmen 

Kommentarer bør skrives, så de giver forståelse for, hvordan programmet virker - uden at være flertydige eller forklare indlysende ting.

// markerer, at resten af linjen er en kommentar. Den kan også bruges efter en kommando, til at forklare hvad der sker, f.eks.

 
System.out.println("Hej verden!");  // Udskriv en hilsen 

Java har også en anden form, som kan være nyttig til kommentarer over flere linjer: Man kan starte en kommentar med /* og afslutte den med */. Al tekst mellem /* og */ bliver så opfattet som kommentarer. Vi kunne altså også skrive

 
/* 
Et simpelt program, der skriver "Hej verden"  
og et citat af Storm P. ud til skærmen 
*/ 

og

 
System.out.println("Hej verden!");  /* Udskriv en hilsen */ 

Der findes også en tredje form kaldet for Javadoc-kommentarer, som starter med /** og slutter med */. Javadoc-kommentarer gennemgåes i Afsnit 2.7.1.

3.1.2. Klassedefinitionen

Resten af teksten kaldes en klassedefinition og beskriver selve programmet (HejVerden).

Den består af en fast struktur:

 
public class HejVerden 
{ 
  public static void main (String[] arg) 
  { 
    ... 
  } 
} 

og noget programkode - kommandoer, der skal udføres, nærmest som en bageopskrift:

 
System.out.println("Hej verden!"); 

3.1.2.1. Strukturdelen

Strukturdelen vil ikke blive ændret i de næste to kapitler, og det er ikke så vigtigt, at du forstår, hvad der foregår i første omgang.

Al javakode er indkapslet i en klasse mellem { og } (blokstart og blokslut-parenteser). Beskrivelsen af en klasse er altid indkapslet i en blok bestående af:

 
public class HejVerden 
{ 
  ... 
} 

Inde i klassen står der en main-metode med nogle kommandoer i. Indholdet af metoden er altid indkapslet i en blok med { og }:

 
public static void main (String[] arg) { ...  } 

Programudførelsen starter i metoden: public static void main (String[] arg)

3.1.2.2. Programkode

I main-metoden giver man instruktioner til computeren:

 
    System.out.println("Hej verden!"); 
    System.out.println("Hvornår smager en Tuborg bedst?"); 
    System.out.println("Hvergang!"); 

Instruktionerne udføres altid en efter en, ovenfra og ned. Hver instruktion afsluttes med et semikolon.

Disse 3 instruktioner skriver 3 strenge ("Hej verden!", ...) ud til skærmen. En streng er en tekst, som computeren kan arbejde med. Strenge er altid indkapslet i "".

Hver instruktion består af et kald til metoden System.out.println, som betyder, at der skal udskrives noget til skærmen, og en streng som parameter.

En parameter er en oplysning (data), som man overfører til metoden. I dette tilfælde hvilken tekst der skal skrives ud til skærmen.

Vores main-metode kalder altså andre metoder.

3.1.3. Oversættelse og kørsel af programmet

Når man skal udvikle et program, skriver man først en kildetekst (eng.: source code), der beskriver, hvad det er, man vil have programmet til at gøre. Programmet, vi lige har set, er et eksempel på en kildetekstfil.

Instruktionerne (kildeteksten), som centralenheden i computeren arbejder med, er i en binær kode (ene ettaller og nuller) Nævnte binære kode kaldes maskinkode eller bytecode). En sådan kode er umulig at læse for almindelige mennesker. Kildeteksten skal derfor oversættes (eng.: compile; mange siger også kompilere på dansk) til binær kode, som så kan udføres af computeren.

I Java kalder man den binære kode for bytekode. Bytekode er platform-uafhængigt, dvs. at det kan køre på stort set alle hardware-platforme og alle styresystemer. De fleste andre sprogs binære kode er ikke indrettet til at være platformuafhængigt.

For at oversætte programmet HejVerden skal det gemmes i en fil med navnet "HejVerden.java" - HejVerden er filnavnet, mens java er filtypen (efternavnet). Filnavnet skal være det samme som klassenavnet - her er det ikke nok at de samme tegn optræder i filnavnet, sammensætningen af store og små bogstaver skal identisk med klassenavnet. Filtypen skal være java. Man kan godt havde flere klasser i samme fil, men kun én kan have offentlig tilgang (public) filnavnet skal opkaldes efter denne - læs mere om dette senere.

Eksempel: Klassen hedder HejVerden, og filen hedder HejVerden.java.

3.1.3.1. Oversættelse og kørsel uden et udviklingsværktøj

Hvis man bruger det kommandolinje-orienterede JDK, skal man (fra samme katalog) skrive:

 
[jonas@zeta basal-prg]$ javac HejVerden.java 

Såfremt der ikke er nogen fejl i kildeteksten så vil oversætteren forholde sig tavs. Det eneste tegn på at der er sket noget er at filen HejVerden.class er dukket op i samme katalog. Nu kan det køres med kommandoen

 
[jonas@zeta basal-prg]$ java HejVerden 

Resultatet bliver:

 
Hej Verden! 
Hvornår smager en Tuborg bedst? 
Hvergang! 

Figur 3-1. Oversættelse og udførelse af programmet HejVerden

3.1.3.2. Oversættelse og kørsel med et udviklingsværktøj

I de fleste udviklingsværktøjer skal du oprette et projekt (f.eks. i JBuilder: File/New Project). Føj derefter din java-fil til projektet. Husk at placere filen i det katalog, som projektet angiver (eller rette projektets egenskaber).

Når man vil oversætte sit java-program, skal man vælge make (det er et engelsk ord). Når man har gjort det, kan man køre sit program med run.