Modul 1
Her er link til video for modul 1
Her har jeg lært å bruke verktøyet BlueJ for å kunne åpne, lukke og lagre prosjekter. Jeg har lært hvordan jeg skal kunne lage objekter og kalle metoder for disse objektene, både uten parametere og med parametere (string, int, objekt som parameter). Jeg hadde vært litt inne på programmering i C# fra før, og derfor var det noen likheter som gjorde at det gikk fort å lære det helt grunnleggende. Leste blant annet gjennom kildekoden til de forskjellige eksempelprosjektene i blueJ for å lære litt om syntaxen i java.
Modul 2
Bileksempelet er gjort og trenger godkjenning (Kommer Mandag 24.11).
For denne modulen lærte jeg mer om klassedefinisjon og hvordan man skal lese den. Da lærte jeg blant annet hva fields og constructors er, og hvordan man skal organisere koden for en klasse.
- Fields er feltene hvor man lagrer data permanent for et objekt
- Constructors er koden for å lage et objekt
Jeg gjorde valgte å gjøre bileksempelet for denne modulen, og bygde videre på eksempelet som var tilgjengelig på fronter. I tillegg til koden som lå der, utvidet jeg eksempelet med å legge til følgende:
Felt
- String merke
- String modell
- int pris
Metoder
- Constructor for Bil hvor jeg la inn de nye feltene
- getMerke, returverdi string som returnerer bilens merke
- getModell, returverdi string som returnerer bilens modell
- getPris, returverdi int som returnerer bilens pris
- skrivBil, void som skriver ut informasjon om bilen
Etter å ha skrevet eksempelet la jeg inn PMD og Checkstyle å lærte å bruke de, og rettet eventuelle feilmeldinger og mangler som kom frem.
Modul 3
I modul 3 lærte jeg mye nytt når det kom til å skrive kode selv, og hvordan dette burde gjøres.
I eksempelet mitt skrev jeg to klasser, Skip og Passasjer. Dette er enkelt forklart et program for å legge til passasjerer i et skip. Her legger man til objekter av klassen Passasjer inn som parameter i et objekt av klassen Skip, og når man kaller metoder (f.eks. skriv passasjerliste) på skipsobjektet, skal det hentes ut informasjon fra alle Passasjer-objektene som er lagt i objektet av Skip.
Jeg har sett litt på hvordan man skal bruke debuggeren i blueJ, og lært om nye begreper som abstraksjon, modularisering, primitive typer og objekttyper.
Enkelt forklart:
- Modularisering: Å dele opp et problem til mindre og mer definerte deler, som du kan bygge og utforske separat.
- Abstraksjon: Evne til å ignorere små detaljer og fokusere på det store bildet.
- Primitive typer: som int og boolean, de har ingen metoder
- Objekttyper: Definert av klasser og kan ha metoder, noen er definerte i javaspråket og andre skriver vi selv
Hva har jeg lært Modul 1-3:
Selv om jeg hadde vært borte i programmering før var objektsorientert programmering helt nytt. Det startet i det helt enkle med å lære seg å bruke verktøyet BlueJ, å kunne kjøre helt enkle metoder både med og uten paramter (og forskjellige typer parameter, som f.eks å kunne bruke objekt som parameter), og om de helt grunnleggende datatypene til variabler som int og string. I løpet av kapittel og modul 2 lærte jeg mer om å skrive selve koden selv, fremfor å bare se på den i eksemplene i BlueJ. Her lærte jeg mer om syntaxen i java og kodestruktur, og kunne skrive klassedefinisjoner og if-setninger, og enkle metoder som get, return og print. Lastet inn PMD og Checkstyle og lærte jeg hvordan de skulle brukes, og hvordan de hjalp meg. I kap/modul 3 gikk det videre på å skrive flere klasser og å koble de sammen. Etter å ha lest og gjort oppgaver i boka og sett på fagstoffet vi har tilgjengelig begynte jeg å skrive et eksempel som inkluderte læringsmålene frem til det stadiet. Jeg skrev et program med to klasser, skip og passasjer. Skip-klassens objekt er et skip, som skal frakte passasjerer (objektene av klassen passasjer). For å hente inspirasjon å lære hvordan jeg kunne gjøre dette, så jeg på lab-classes eksempelet i blueJ. Og slik lærte jeg å skrive klasser og kode for å lage objekter fra bunn av. Når jeg jobbet med eksempelet gikk jeg nok litt forut læringsmålene til modul 3 og begynte med arrayliste, for-each løkker, while løkker og bruk av iterator, dette går jeg mer i detalj på i samtale for godkjenning av modul 4.
Modul 4
Eksempelet nevnt for modul 3 henger sammen med modul 4, og dette er et videreutviklet eksempel. Klar for samtale og godkjenning.
Det nye stoffet her var: arraylist, for each løkker, while løkker og bruk av iterator.
Arraylist: Et dynamisk array/en liste som kan endres i størrelse mens et program kjører. Brukes hvor data endres forløpende (f.eks å kunne legge til eller fjerne elementer fra listen)
For: Gjør en bestemt handling for innhold i en samling
While: Gjør en bestemt handling for bestemt innhold så lenge koden oppfylles. f.eks:
while (counter < 10) {
System.out.println(counter);
Counter++;
}
Da vil den loopen kjøre så lenge telleren (counter) er mindre en 10, men slutte når det kravet ikke oppfylles lengre.
Iterator: Når du f.eks sletter en del av en liste med en for loop (f.eks. en person i en passasjerliste) vil listens størrelse og de andre delene flytte seg, og da vil man få en feilmelding når man kommer til slutten av listen. Derfor bruker vi en iterator til å holde styr på listen, og dette lar deg endre elementer i listen uten at den forstyrres.