Versions Compared

Key

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


Excerpt

Denne siden gir en oversikt over pensum i faget TDT4100 Objektorientert programmering med Java. Noen av temaene er forutsatt kjent før en tar TDT4100 og er med for kompletthets skyld.

Temaene er delt i fire

  • Objektorientert programmering - begreper og konstruksjoner som er viktig for objektorientert utviklingsmetodikk og som støttes av UML og de fleste objektorienterte språk. Dette utgjør teoridelen av TDT4100.
  • Java-programmering - bruk av Java for implementasjon av objektorienterte programmer, slik at en kan realisere det en har designet. Sammen med bruk av VSCode utgjør dette praksisdelen av TDT4100.
  • VS Code - bruk av VSCode, som eksempel på moderne verktøy for programutvikling.
  • Prosedyreorientert programmering - programmeringsbegreper og -konstruksjoner som utgjør kjernen i de fleste programmeringsspråk, også de som ikke er objektorientert. Dette skal være kjent før en tar TDT4100.

Tabellen under gir ulike oversikter over wiki-innholdet

 Objektorientert programmering

Page Tree
rootObjektorientert programmering
excerpttrue

Bruk av VSCode

Page Tree
rootVS Code
excerpttrue

Java-programmering

Page Tree
rootJava-programmering
excerpttrue

Prosedyreorientert programmering

Page Tree
rootProsedyreorientert programmering
excerpttrue

Øvinger - Våren 2022

Øvingsoppgavene finner du på GitLab.

Gamle eksamensoppgaver

Content by Label
showLabelsfalse
max50
showSpacefalse
sorttitle
reversetrue
cqllabel = "sidetype-eksamen"
labelssidetype-eksamen

Nyttige teorioppgaver

Content by Label
showLabelsfalse
showSpacefalse
cqllabel = "sidetype-sporsmal"
labelssidetype-sporsmal

Page Tree Search

HTML Comment
hiddentrue

Faginnhold (forutsetninger/pensum)

  • datatyper
    • logiske (boolean, true/false)
    • tall
      • heltall
Wiki Markup
Dette er hovedsiden for faginnhold i TDT4100. =datatyper= logiske (boolean, true/false) ==tall== heltall
      • (int/byte/short/long)
      • desimaltall
      • (double/float)
      • tegn
      • (char)
== (String)== En String er en sekvens med tegn (char-verdier) og har metoder for å 1) lese ut enkelttegn eller deler av tegnsekvensen, eller 2) lage ny String-instanser basert på deler av innholdet. Merk at det ikke finnes metoder i String som endrer på innholdet, istedet bygger en opp nye String-instanser med innhold fra eksisterende. For å gjøre dette lettere, har Java egen syntaks for String-konstanter, +-operatoren kan brukes for å sette samme String-instanser og verdier og objekter gjøres automatisk om til String-instanser i mange sammenhenger. Implisitt konvertering til String med String.valueOf og Object.toString tabeller =variabler= ==deklarasjon== lokale (i metoder og blokker) globale (i klasser) konstanter (final) initialisering tilordning blokker/skoping levetid =uttrykk= ==konstantverdier== tabellkonstanter i initialisering vs. generelt i uttrykk variabelreferanser ==operatorer og operander== numeriske
    • (String)
      • Implisitt konvertering til String med String.valueOf og Object.toString
    • tabeller
  • variabler
    • deklarasjon
      • lokale (i metoder og blokker)
      • globale (i klasser)
      • konstanter (final)
    • initialisering
    • tilordning
    • blokker/skoping
    • levetid
  • uttrykk
    • konstantverdier
      • tabellkonstanter i initialisering vs. generelt i uttrykk
    • variabelreferanser
    • operatorer og operander
      • numeriske (+,-,*,/,%)
      • bit
      • (&,|,<<,>>,~)
      • numerisk
      • sammenligning
      • (>,>=,<,<=)
      • sammenligning
      • (==,
      • !=)
      • logiske
      • (!,
      • &&,
      • ||,
      • ^)
      • strengspleising
      • ( + )
      • tilordning
      • evt.
      • m/operator
      • (<op>=)
      • pre/post-dekrement/inkrement
      • (++,--)
      • betinget
      • (? :)
      • presedens
      • og
      • parenteser
    • metodekall
og parameteroverf√∏ring ==konvertering av verdier== implisitt konvertering eksplisitt avkutting av tallverdier this-referansen =kontrollstrukturer= betingelser og valg
    • og parameteroverføring
    • konvertering av verdier
      • implisitt konvertering
      • eksplisitt avkutting av tallverdier
    • this-referansen
  • kontrollstrukturer
    • betingelser og valg (if/else,
    • switch/case/default)
==
    • iterasjon
    • (while,
    • for)
== starttilstand stoppbetingelser stegsetning
      • starttilstand
      • stoppbetingelser
      • stegsetning
      • avbrudd/hopp
      • ut
      • eller
      • over
      • (break/continue)
navngitte l√∏kker
      • navngitte løkker (labels)
=metoder= parametre returtype overlasting
  • metoder
    • parametre
    • returtype
    • overlasting (overloading)
kropp ==applikasjonsmetoden main== signatur kommandolinjeparametre =klasser= ==kategorier== dataklasser grensesnitt enum ==medlem== felt metoder konstruktør ==grensesnitt/innkapsling== ===synlighet=== modifikatorer public private pakke/default protected ===konvensjoner=== get/set-metoder count/get/set add(append/ insert)/remove contains/indexOf ==arv== implements/extends polymorfi abstrakte klasser ==parametriserte/generiske== kovarians/konvarians brukt i Collection-rammeverket egendefinerte instanser/instansiering =unntakshåndtering= throw try/catch finally throws checked vs. unchecked ==Exception== ===IOException=== FileNotFoundException ===RuntimeException=== NullPointerException IndexOutOfBoundsException ====IllegalArgumentException==== NumberFormatException IllegalStateException UnsupportedOperationException =iterasjon= ==standardløkker== tabeller NOTE:  for (int i=0; i < tabell.length; i++) {    type var = tabell[i];    ...} Collection-instanser (og tabeller) NOTE: for (type var: collection-eller-tabell) {    ... } strenger NOTE: for (int i=0; i < s.length(); i++) {    char c = s.charAt(i);    ... } tekstinput NOTE: Scanner sc.scanner(System.in); sc.useDelimiter("\n"); while (sc.hasNext()) {    String line = sc.next();    ... } datainput NOTE: Scanner sc.scanner(System.in); while (sc.hasNextXxx()) {    xxx n = sc.nextXxx();    ... } akkumulering av resultat =standard-klasser/objekter= bruk av fullt klassenavn med pakke vs. import ==System.out== print/println printf System.in og Scanner =datastrukturer= ==Collection-rammeverket== Collection/List/ArrayList/LinkedList Iterator Set Map/HashMap ==egendefinerte== ===lenkede lister=== stack/stabel queue/kø trær tabell =tall/beregninger= Nummer-klassene ==Math== PI random() diverse funksjoner (min/max/abs, avrunding, trig., exp., ...) Random =IO= ==strømmer== InputStream/OutputStream bufring og close/flush Reader/Writer PrintStream/PrintWriter konsoll-IO med System.in/System.out ObjectStream ==filer== File ==nettverk== ===URI/URL=== http ftp file URLConnection ==parsing== ===regulære uttrykk=== Pattern Matcher Scanner ===streng-til-tall-konverteringsmetoder===
    • kropp
    • applikasjonsmetoden main
      • signatur
      • kommandolinjeparametre
  • klasser
    • kategorier
      • dataklasser
      • grensesnitt
      • enum
    • medlem
      • felt
      • metoder
      • konstruktør
    • grensesnitt/innkapsling
      • synlighet(smodifikatorer): public, private, pakke/default, protected
      • konvensjoner: get/set-metoder, count/get/set, add(append/insert)/remove, contains/indexOf
    • arv
      • implements/extends
      • polymorfi
      • abstrakte klasser
    • parametriserte/generiske
      • kovarians/konvarians
      • brukt i Collection-rammeverket
      • egendefinerte
    • instanser/instansiering
  • unntakshåndtering
    • throw
    • try/catch
    • finally
    • throws
    • checked vs. unchecked
    • Exception: IOException, FileNotFoundException, RuntimeException, NullPointerException, IndexOutOfBoundsException, IllegalArgumentException, NumberFormatException, IllegalStateException, UnsupportedOperationException
  • iterasjon: standardløkker, tabeller, Collection-instanser (og tabeller), strenger, tekstinput, datainput, akkumulering av resultat
  • standard-klasser/objekter
    • bruk av fullt klassenavn med pakke vs. import
    • System.out: print/println, printf
    • System.in og Scanner
  • datastrukturer
    • Collection-rammeverket: Collection/List/ArrayList/LinkedList, Iterator, Set, Map/HashMap
    • egendefinerte: lenkede lister, stack/stabel, queue/kø, trær, tabell
  • tall/beregninger
    • Nummer-klassene
    • Math: PI, random(), diverse funksjoner (min/max/abs, avrunding, trig., exp., ...)
    • Random
  • IO
    • strømmer
      InputStream/OutputStream, bufring og close/flush, Reader/Writer, PrintStream/PrintWriter, konsoll-IO med System.in/System.out, ObjectStream
    • filer: File
    • nettverk: URI/URL, http, ftp, file, URLConnection
    • parsing: regulære uttrykk, Pattern, Matcher, Scanner, streng-til-tall-konverteringsmetoder, Integer.parseInt(String)/Integer.valueOf, (String)
    • Double.parseDouble(String)/Double.valueOf(String)
=GUI= hendelser ==komponenter== ===
  • GUI: hendelser, komponenter, data-komponenter
===
  • , enkle
  • verdier
  • , lister/hierarkier
===containere=== layout ===dialoger=== ====
  • , containere, layout, dialoger, javax.swing.JOptionPane
====
  • , showInputDialog(String)-metode
  • , showMessageDialog(null,
  • String)-metode
  • , showConfirmDialog(null,
  • String)-metode
  • , YES_OPTION,
  • NO_OPTION,
  • CANCEL_OPTION
==toolkits==
  • , toolkits, Swing/AWT
  • , SWT
JavaFX ==grafikk== Java2D OpenGL =tråder= Thread/Runnable ==monitorer== wait notify/notifyAll synchronized =patterns= delegering factory observert-observatør =testing= eyeballtesting (main og print) ==enhetstesting med JUnit== testklasser og -metoder assert-metodene setUp og tearDown testing av unntak
  • , JavaFX, grafikk, Java2D, OpenGL
  • tråder: Thread/Runnable, monitorer, wait, notify/notifyAll, synchronized
  • patterns: delegering, factory, observert-observatør
  • testing: eyeballtesting (main og print), enhetstesting med JUnit, testklasser og -metoder, assert-metodene, setUp og tearDown, testing av unntak