...
| Klasser og navngivingAll 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. 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. Typer må deklareresJava krever at alle variabler deklareres (og gjerne initialiseres) før de brukes. Når vi her skriver String alphabet, så betyr det variablen alphabet bare kan ha verdier som er av type String. Her intialiseres samtidig alphabet til en bestemt String bestående av alle bokstaver i (det engelske) alfabetet. Fordelen med å angi typen er at Java kan sjekke at vi bare gjør lovlige ting med variablen. F.eks. kan vi finne lengden til den ved å skrive alphabet.length(), men vi kan ikke dele den med 2 som i alphabet / 2. Bruk av semikolonVariabel-deklarasjonen avsluttes med ; (semikolon), og dette er typisk for Java, hvor nesten alle setninger avsluttes med semikolon. Sammen med kravet om typer overalt, er dette det som irriterer Python-programmerere mest, fordi det virker så unødvendig og er så lett å glemme. MetoderFunksjoner kalles metoder i Java, og som med variabler, så må en deklarere hva slags type verdi den returnerer ("regner ut") og hvilke typer parametrene har. Vi ser at encode-metoden tar inn en char, som er typen for tegn, og en int, som er typen for heltall, og returnerer en char. Igjen er poenget at når typene er angitt slik, så kan Java sjekke at vi ikke prøver å kalle encode med gale (typer) verdier og at vi ikke prøver å bruke resultatet feil. Denne sjekken kan gjøres mens vi skriver koden, altså lange før den kjøres, og tanken er at selv om det blir litt mer å tenke på og skrive, så sparer en tid ved å unngå feil. Kodeblokker og { }Mens en i Python bruker : og innrykk for å angi koden som hører til inni funksjoner (også i if og for), så bruker en i Java { } (kalt krøllparenteser) rundt koden. Hvis det blir rot med krøllparentesene så blir Java fort forvirret, så det må en være nøye med. Java bryr seg ikke om innrykk, men det er viktig for å gjøre koden mer lettlest for oss, og de fleste Java-editorer ordner det for oss, basert på krøllparentesene. Kalle metoder med dott-notasjonenSom i Python, så bruker Java . (punktum eller dott) for å kalle funksjoner på en verdi. String-metoderalphabet.indexOf(letter) finner posisjonen til letter i alphabet og gjør i praksis det samme som alphabet.find(letter) i Python. Dette er egentlig nokså typisk: Python og Java har mange av de samme funksjonene, men har valgt forskjellig navn. Når indexOf-metoden kan kalles på denne måten, så er det fordi String-typen på en måte har metoden "inni" seg. En sier gjerne at en "ber" String utføre metoden. Her er noen andre nyttige String-metoder:
Prosedyrer og void-typenHensikten med run-metoden er å skrive ut informasjon, ikke å beregne en verdi. Den kalles derfor en prosedyre, og da bruker en void som retur-type. Dette er typisk for slike hovedprogram-metoder.
Prosedyrer og void-typenHensikten med run-metoden er å skrive ut informasjon, ikke å beregne en verdi. En bruker da void som retur-type, og en trenger ikke ha noen return-setning. En slik metode kalles en prosedyre, og dette er typisk for metoder som samler koden som utgjøre hovedprogrammet (og som vi derfor kaller hovedprogram-metoder). for-løkkerSom i Python, å kan en bruke en for-løkke for å gå gjennom alle elementene i en String. Java har to varianter av for, og den som brukes her er den mest generelle (og tungvinte). Løkka består av fire deler, slik: for (initialisering; betingelse; steg) { setninger }
Les mer om for-setninger, som brukes for å behandle data her: Data-drevne løkker Forgreining med ifJava sin if fungerer som Python sin, men den skrives litt annerledes. Som oftest samles setninger i hver grein med { }, men dersom en som her bare har én setning i en grein, så slipper en krøllparentesene. Les mer om forgreining med if her: if-kontrollstrukturen Utskrift til skjerm med System.out.println.I Java gjøres utskrift til skjerm ved å bruke System.out.println (evt. System.out.print, som ikke avslutter med linjeskift). System.out er på en måte navnet til konsollet, som har både println- og print-metoder. Det finnes mange varianter av disse metodene, som tar inn ulike typer verdier, så praksis kan en gi hva som helst som argument til println og print. Les om toString()-metoden, for å forstå hvordan println gjør om verdier til tekst.
| |||||||||