Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.Et lite eksempel:

La oss først se på et lite eksempel, før vi tar et fra Python-delen av Kodeklubben fra våren 2014.

Code Block
languagepython
titlePython
print('Hvor gammel er du?')

...


age = int(input())

...


print('Neste år blir du ' + str(age + 1) + ' år!')
Code Block

Java

Scanner scanner = new Scanner(System.in);
languagejava
titleJava
System

...

.out.println("Hvor gammel er du?");
Scanner scanner = new Scanner(System.in);

...


int age = scanner.nextInt();

...


System.out.println("Neste år blir du " + (age + 1) + " år!");

...

I eksemplene over, skrives det ut en tekst, et tall leses inn og en ny (beregnet) tekst skrives ut. Det er lett å se sammenhengen mellom Python- og Java-versjonene, selv om mange detaljer er forskjellig:

  • Python bruker print for utskrift (til konsollet), mens Java bruker System.out.println.
  • Java bruker ; (semikolon) etter hver setning.
  • Python bruker input for å lese inn tekst og konverterer til tall med int, mens Java bruker en Scanner og nextInt for å lese inn et tall.
  • Både Python og Java bruker + for å sette sammen tekst(biter) til en ny tekst, men Python må konvertere tall til tekst med str først.
En viktig forskjell er imidlertid ikke vist her, nemlig at Java-koden over ikke kan utføres som et helt program, men trenger litt kode rundt. Nedenfor er to varianter vist, som begge er komplette programmer:

 

Code Block
languagejava
titleKode i main-metode
class Eksempel {
	public static void main(String[] args) {
		System.out.println("Hvor gammel er du?");
		Scanner scanner = new Scanner(System.in);
		int age = scanner.nextInt();
		System.out.println("Neste år blir du " + (age + 1) + " år!");
	}
}

Enkleste variant for å gjøre koden komplett.

Code Block
languagejava
titleKode i run-metode, som kjøres fra main-metode
class Eksempel {
	void run() {
		System.out.println("Hvor gammel er du?");
		Scanner scanner = new Scanner(System.in);
		int age = scanner.nextInt();
		System.out.println("Neste år blir du " + (age + 1) + " år!");
	}
	public static void main(String[] args) {
		Eksempel1 program = new Eksempel1()
		program.run();
	}
}

Litt mer komplisert, men litt mer generell teknikk (som vi skal se på under).

Nå skal vi se på forskjellen mellom Python og Java med utgangspunkt i Python-leksjonen fra våren 2014 om koding av tekst. Dersom du ikke husker hva det dreide seg om så finner du hele denne leksjonen her: lesson03.pdf

Fra Python til Java

For å gjøre det litt lettere å "oversette" Python-koden til Java, så gjør vi først en liten omstrukturering av Python-koden. Versjon 1 under til venstre er originalkoden fra pdf-filen, mens vi i versjon 2 har samlet (det meste av) koden som ikke allerede er inni en funksjon, i run()-funksjonen. Den eneste koden utenfor funksjonene er håndtering av variabler som er greit at alle funksjonene bruker. I tillegg legger vi til et kall til run()-funksjonen helt til slutt.

...