Modul 3

Jeg har lært en god del i dette faget til nå. Til å begynne lærte jeg hvordan språket er bygd opp av de forskjellige bitene, som variabler til å lagre verdier i, som typer av variabler som tall, tekst, og andre ting. Jeg lærte at klasser er en «oppskrift» for objekter (at et objekt er kun en instans av en gitt klasse). Jeg lærte at klasser ofte er bygd opp etter 3 grunnsteiner, derav variabler, konstruktør (som sørger for at et objekt av tilhørende klasse blir satt opp riktig når det først blir lagd) og metoder. Jeg lærte at metoder er handlinger som objektene kan utføre (eller bli utført på dem), som å hente ut eller skrive inn verdier, lage lister, og mye mer.

Jeg lærte hvordan man kan bruke debuggeren i BlueJ til å teste kode, hvordan man kjøre linje for linje og se hva som skjer. Jeg lærte at man deler opp variabler i to typer, primitive typer som er universelt (for java) definerte typer som int, double og boolean. Objekttyper derimot er definert av klasser, som f.eks String og ArrayList. En av forskjellene er at primitive typer lagrer verdien direkte i variabelen, mens for objekt typer inneholder variabelen kun en referanse til objektet.

Jeg lærte at modularisering er hvordan man deler opp komplekse prosjekt i mindre deler slik at man kan kode en «håndterlig» del av gangen, og at abstraksjon vil si å kunne «zoome ut», å ignorere detaljer for å kunne se helheten i arbeidet. Man deler opp et prosjekt i moduler, og abstraherer hver modul ned i kompleksitet (dvs forenkler den) helt til man har oppnådd noe som er så lite og håndfast at det kan kodes. Så gjentas dette til hele modulen er ferdig.

Jeg lærte at en grei metode som kan hjelpe med å få oversikt er å lage klasse og objektdiagrammer. Klassediagrammer er statiske og gir kun en oversikt over de forskjellige klasser og forholdet de har til hverandre. Objektdiagrammer gir derimot et dynamisk innblikk, da man kan se hvordan objektene ser ut mens de kjøres, hvor de henter variabler fra, og forholdet til og mellom andre objekter.

Link til video med forklaring av mitt prosjekt for modul3: https://youtu.be/G8Yld_FrpUU