Litt om kildekoden

Kildekoden er som sagt en beskrivelse av programmet. Kildekoden forteller datamaskinen hva programmet skal gjøre.

La oss ta en titt på kildekoden til dette programmet.

 
// Hent inn klasse for enkel innlesing

Dette er en kommentar. Kommentarer ignoreres av datamaskinen og er kun tilstede for å hjelpe folk som leser kildekoden. Når det forekommer to skråstreker etter hverandre i kildekoden “//”, så vil resten av linjen bli betraktet som en kommentar.

Klassen Terminal inneholder en samling metoder som vi bruker i dette kurset for å forenkle oppgaven med å lese inn data fra brukeren.

 
/**
 * Utregning av Fahrenheit fra Celsius.
 *
 * <p>Oppgave nr. 1, INF100:
 * <p>Program som leser inn en temperatur i grader Celsius og
 * skriver ut hva det tilsvarer i grader Fahrenheit.
 */

Dette er også kun en kommentar som ikke har noen innvirkning på programmet. Denne kommentaren har vi satt her for å gi litt generell informasjon om programmet. Alt som forekommer mellom tegnsekvensene “/*” og “*/” i kildekoden er kommentarer. Denne kommentaren, i motsetning til den første, strekker seg over flere linjer. Som du kanskje har lagt merke til så starter denne kommentaren med tegnsekvensen “/**” istedet for kun “/*”. Betydningen av dette skal vi forklare senere.

public class Temperatur
{
    ...
}

I Java plasseres all programkode inne i klasser (class). Hver kildekode fil kan inneholde en eller flere klasser. Denne delen av kildekoden beskriver en klasse som heter Temperatur. Den komplette beskrivelsen av klassen plasseres mellom “{” og “}”. Betydningen av “public” blir forklart senere i kurset.

 
    /**
     * Hoveddelen av programmet.
     * <p>Leser inn data fra bruker, kalkulerer og skriver ut resultat.
     */

Enda en kommentar. Denne kommentaren beskriver kildekoden som kommer nedenfor, akkurat som den forrige kommentaren kommentert klassen Temperatur som var rett nedenfor den kommentaren.

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

Hver klasse kan inneholde metoder. En metode er enkelt sagt en beskrivelse av en sekvens med handlinger som programmet kan bli bedt om å utføre. De som har kjennskap til andre programmeringsspråk kjenner kanskje dette konseptet betegnet som funksjon, prosedyre eller subrutine. Denne kildekode biten beskriver en metode som heter main. Standard formen til en metode er navn() { ... } hvor navn er navnet på metoden og handlingene metoden skal utføre blir listet opp i rekkefølge mellom “{” og “}”.

Metoder med navn main har en spesiell rolle fordi disse blir automatisk satt igang når programmet blir kjørt. Grunnen til at vi kunne kjøre programmet vårt med kommandoen java Temperatur var at klassen Temperatur nettopp hadde denne metoden.

Betydingen av “static void” og “String[] args” forklares senere i kurset.

 
        double fahrenheit, celsius;

Denne linjen forteller at denne metoden (main) vil benytte seg av to variable ved navn fahrenheit og celsius. Disse variablene er av type double. Betydningen av de forskjellige typene variabler kan være blir forklart senere i kurset. Variabler er symboler som kan inneholde verdier, (akkurat som klassisk algebra, f.eks: x = 4.)

     
            // Be brukeren om temperaturen

Enda en kommentar. Denne kommentaren forteller hva neste handling vil gjøre.

     
        System.out.print( "Skriv inn antall grader celsius:  );

Denne handlingen benytter print metoden i System.out klassen for å skrive ut til skjermen. Handlingen får System.out til å skrive ut “Skriv inn antall grader celsius: ” ut på skjermen.

Hint: Feilen i kildekoden er relatert til denne tekststrengen.

     
        celsius = Terminal.lesDouble();

Denne handlingen gir variabelen celsius en ny verdi. Her bruker vi Terminal klassen til å lese inn et tall fra brukeren av programmet. Instruksjonen setter igang metoden lesDouble i klassen Terminal som leser inn et tall fra brukeren. Når tallet har blitt lest inn settes variabelen celsius til dette tallet.

     
        fahrenheit = (9.0 * celsius) / 5.0 + 32.0;

Denne instruksjonen gir variabelen fahrenheit en ny verdi. Denne instruksjonen gir fahrenheit verdien man får når man tar verdien som celsius har og ganger den med 9,0, så deler det på 5,0 og til slutt legger til 32,0. Legg merke til at man bruker det amerikanske desimalskilletegnet “.” istedet for det norske “,”.

     
        System.out.println(
                celsius + " grader Celsius tilsvarer " + fahrenheit +
                " grader Fahrenheit."
        );

Disse fire linjene er kun en instruksjon. Grunnen til at en instruksjon kan gå over flere linjer er at Java bruker tegnet “;” til å skille uttrykkene sine istedet for å bruke linjeskift. Det er en ganske vanlig feil å glemme “;” tegnene i ny og ne.

Denne instruksjonen får metoden println i klassen System.out til å skrive ut litt tekst som beskriver utregningen som har blitt gjort. Metoden println er ganske lik metoden print som vi brukte tidligere. Den eneste forskjellen er at denne metoden skriver ut et linjeskift-tegn etter strengen slik at tekst som kommer senere vil fortsette fra starten av neste linje på skjermen.