IS – 110 modul 6

Link til modul:

https://video.uia.no/id/0_lef1e30u?width=400&height=285&playerId=14973541

Hva har jeg lært:

Static: omtales også som klassevariabler. Dette er variabler som er lagret kun i klassen selv, ikke i et objekt. Dette er det motsatte av instans variabler som er de vi har vanligvis holdt på med. Ved instans så blir variablene tatt med til hvert objekt som blir laget, mens ved static så lages objektene uten variablene, men de kan fremdeles hentes ut fra klassen.
Kan vise dette visuelt med at du inspecter og går inn i det ene objektet og ser at den har en statisk variabel på 15. Alle variabler er instans variabler.

Final: Man bruker ofte statiske keywords for å definere konstanter. Konstanter er like på variabler bare at de kan ikke endres på underveis. Disse konstantene kalles final.

Private – kan kun brukes i klassen
Public – kan bruke i den opprinnelige klassen og de andre tilgjengelige klassene.

Fields/Vriabler: Variabler er 99% av tiden private.
Metoder: De fleste metodene er public og kan brukes i andre klasser. Noen er også private og brukes kun for din egen del som hjelpemetoder.

Interface: fields eller metoder som har public keyword.
Implementation: koding som har private keyword og vil holdes skjult for outside access.

Informationhiding: Når noe blir satt til private. To grunner: 1. programmereren som bruker koden skal ikke ha bruk for å vite koden. 2. en bruker burde ikke få tilgang/lov til å vite koden.
Coupling: når man endrer implementasjonen i en klasse skal ikke gjøre det nødvendig å endre den i de andre klassene også. må man det kalle det for coulpling, noe vi ikke vil ha. Weak/loose coupling vil si at man ikke trenger å gjøre dette, noe vi vil ha.

Dokumentasjon: parametere, returverdier, beskrivelser av metoder/klasser.
Interface til koden: dokumentasjon om alt du trenger å vite for å bruke koden uten å lese hele implementasjon. Java doc.

Hashmap : Er en implementasjon av et map, hvor de viktigste metodene er put og get. I et hashmap består hver entry en key og en verdi. For eksempel navn og nummer.
Hashset: I en slik set kolleksjon lagres hvert individuelle element bare en gang g det lagres ikke i en spesiell rekkefølge.

Set seed: ved å bruke setSeed før man genererer et tall så bestemmer man en spesifikk tallrekken som blir generert. Så hvis man avslutter og starter programmet på nytt, så vil man få akkurat samme tallrekken så lenge man har samme seed. Og man kan f. Eks. be andre sette samme seed på sin maskin så vil de får akkurat samme tallrekke. Så man gjør de tallene man får forutsigbare.

Hva har jeg lært så langt i 109

– Oppdateres underveis –

Kapittel 1:

  • Bruke BlueJ, bl.a. til å:
    • Åpne, lagre, og lukke prosjekter.
    • Lage objekter
    • Kalle metoder i objektene, med og uten parametere
    • Bruke editoren til å se på kildekoden til en klasse
    • Kunne kompilere prosjektet
  • Litt java, du skal f.eks.
    • Kunne kjenne igjen en klassedefinisjon, og kunne finne navnet på klassen
    • Kjenne til forskjellige typer data
    • Kalle metoder som returnerer en verdi
    • Kjenne forskjellen mellom klasser og objekter

Kapittel 2:

  • lese en klassedefinisjon, og kunne fortelle:
    • hva klassen heter
    • hvilke felt den har, hva de heter og hvilken type de har
    • hvilke metoder den har, og hva metodene heter
    • beskrive parametere (med navn og type) og returverdi for alle metodene
  • Kjenner forskjellen på forskjellige slags metoder (constructors, getters, setters) og vet hva de brukes til
  • Kan skrive en klassedefinisjon
    • med felt og metoder i riktig rekkefølge
    • med metoder som bruker tilordning, if-setninger og utskrifter

Kapittel 3:

  • kan forklare hva som menes med abstraksjon og modularisering
  • kan bruke debuggeren i BlueJ
  • har lært litt mer java, og kan:
    • forklare forskjellen på primitive typer og objekttyper
    • kan skrive kode som lager nye objekter
    • kan skrive kode som kaller metoder i samme objekt, og i andre objekter
  • kan tegne klassediagrammer og objektdiagrammer

Modul 3

Link til modul 3 : 

https://video.uia.no/media/t/0_lfikt0r1

Det jeg ikke rakk å få med i videoen er beskrevet under.

 

Abstraksjon

Er når vi ignorerer detaljer for å fokusere på problemet og se det hele bildet.

Modularisering

Er når vi deler en helhet opp i flere deler, for å forstå hvordan de oppfører seg mellom hverandre. Man får separate mennesker til å jobbe med en del. Eks. i boka deler de opp delene i en bil som hjul, motor, gir, sete osv.

Primitive typer

Primitive typer er allerede definert i Java språket som f.eks. int og boolean. Eksempel fra min kode:

public int getVolume() {

return volume;
}

Objekt typer

Er typer som er definert av klasser. Vi kan enten skrive dem selv, men de kan også være definert i Java språket som f.eks. String. Eksempel fra min kode:

private Tv tv;

Klassediagram

Er en statisk oversikt over koden. Den viser hvordan klassene er relatert til hverandre og om de bruker hverandre. Eksempel fra min oppgave:

Objekt diagram

Den viser statusen til selve objektet mens applikasjonen går. Den viser også objekt referanse i variablene. Her er det kun tvBrand som har objekt referanse fordi den har objekttype. Mens tvInches har den primitive typen int som kan skrives rett inn.


(Beklager dårlig kvalitet på bildet)