Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Excerpt

Trinn 1 i Java-delen av Kodeklubben høsten 2015 handler om å bli vant med å programmere enkle Java-programmer, med utgangspunkt i at du kan litt Python fra før.

På denne siden forklarer vi litt om forskjellen mellom Python og Java, med noen kode-eksempler. Først er det et lite eksempel for å komme igang og lenger ned et større et. Nederst på siden etter det største kode-eksemplet er det en oppgave (med deloppgaver), som vi anbefaler deg å prøve på.

Det meste er likt, men forskjellig...

Det meste av det du kan om programmering med Python er nyttig når du skal lære Java. F.eks. har Java også variabler, tall- og tekstverdier, funksjoner (kalles metoder i Java), og kontrollstrukturer (nøkkelord som styrer programmet) som if, while og for. Samtidig er veldig mange av detaljene i et Java-program forskjellig fra et tilsvarende Python-program. F.eks. så bruker Python : (kolon) etter if og else og innrykk i hver gren, mens Java bruker ( ) rundt if-betingelsen og { } rundt koden i hver gren (hvis en trenger mer enn én setning) og innrykket spiller ingen rolle. Det er også noen mer vesentlige forskjeller, som at Java krever at en deklarerer variabler og hvilken type verdi de kan ha, før de brukes, og generelt har strengere regler for hva slags kode som kan være hvor i en programfil.

...

Under er Java-versjonen av samme program. Kopier gjerne koden inn i et kodingsprosjekt i Eclipse med lim inn-funksjonen, så det blir enklere å leke seg litt med den. Lenger ned går vi gjennom de viktigste forskjellene mellom Python og Java, omtrent slik de dukker opp i kode-eksemplet. Nederst er det en oppgave i fem deler som bygger på denne koden. Til slutt er det en oppgave som vi anbefaler deg å se på, for å se at du har skjønt det viktigste.

Code Block
languagejava
titleJava-versjon
linenumberstrue
collapsetrue
package trinn1;

class EncodeDecode {
    String alphabet = "abcdefghijklmnopqrstuvwxyz";

	char encode(char letter, int secret) {
        int pos = alphabet.indexOf(letter);
        int newpos = (pos + secret);
        if (newpos >= 26) {
            newpos = newpos - 26;
        }
        return alphabet.charAt(newpos);
    }
    
    char decode(char letter, int secret) {
        int pos = alphabet.indexOf(letter);
        int newpos = (pos - secret);
        if (newpos < 0) {
            newpos = newpos + 26;
        }
        return alphabet.charAt(newpos);
    }

	void run() {
        String message = "hello world";
        int secret = 17;
        String output = "";
        for (int i = 0; i < message.length(); i = i + 1) {
            char character = message.charAt(i);
            if (alphabet.indexOf(character) >= 0)
                output = output + encode(character, secret);
            else
                output = output + character;
            System.out.println(output);
        }
        message = "yvccf nficu";
        output = "";
        for (int i = 0; i < message.length(); i++) {
            char character = message.charAt(i);
            if (alphabet.indexOf(character) >= 0)
                output = output + decode(character, secret);
            else
                output = output + character;
            System.out.println(output);
        }
    }
    
    public static void main(String[] args) {
        EncodeDecode program = new EncodeDecode();
		program.run();
	}
}

...

All kode i et Java-program ligger i såkalte klasser, altså inni en class-blokk. Klasser må ha et navn, og her har vi valgt EnodeDecode EncodeDecode. I tillegg ligger klasser gjerne i en slags mapper som kalles pakke, og den angis med package-nøkkelordet. Her har vi valgt pakkenavnet trinn1. Sammen utgjør pakke- og klassenavnet det fulle navnet til klassen, som her er trinn1.EncodeDecode.

...

I motsetning til Python, så kan en ikke legge et kall til run() i bunnen av fila. For å få kalt run()-metoden så må en ha en spesiell main-metode, hvor en først lager program-objektet med new og så ber dette program-objektet utfør run. Det er main()-metoden som kjøres når vi starter programmet med java-kommandoen i terminalvinduet eller bruker Eclipse sin Run-kommando. Les mer om forskjellen på hvordan kjøring av Python- og Java-programmer virker her: Kjøring av Python- og Java-programmer.

Anchor
oppgave
oppgave
Oppgave

...