Eksamenssett.no
  • Ressurser
  • Skolenytt
  • Hoderegning
Eksamenssett.no

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

PersonvernVilkår

© 2025 Eksamenssett.no · Alle rettigheter forbeholdt

Deler av innholdet er utviklet med hjelp av AI-verktøy

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Eksamenssett.no
  • Ressurser
  • Skolenytt
  • Hoderegning
  1. Hjem
  2. Høyskole
  3. NTNU
  4. TDT4100
  5. Studieguide
TDT4100

Studieguide

Komplett gjennomgang av pensum med forklaringer, formler, vanlige feil og eksamenstips.

Innhold

  • Introduksjon
  • Klasser og objekter
  • Innkapsling og tilgangskontroll
  • Arv og polymorfisme
  • Grensesnitt og abstrakte klasser
  • Generics og collections
  • Unntakshåndtering
  • Designmønstre
  • Testing og feilsøking
  • Eksamensstrategi

Introduksjon

TDT4100 Objektorientert programmering er et obligatorisk fag i første studieår for IT-studenter ved NTNU. Kurset gir deg det grunnleggende fundamentet i objektorientert programmering med Java, som du bygger videre på i alle senere programmeringsfag.

Denne studieguiden dekker de åtte sentrale temaene i kurset. Bruk den som supplement til forelesninger, øvinger og lærebok — den er designet for å hjelpe deg med å forstå sammenhengene og forberede deg effektivt til eksamen.

Sentrale begreper i objektorientert programmering

Grunnleggende OOP:

Klasse = mal/blueprint | Objekt = instans av en klasse | Felt = instansvariabel (data)

Metode = funksjon i en klasse | Konstruktør = initialiserer objekter | Referanse = peker til objekt på heapen

OOP-prinsipper:

Innkapsling = skjule intern tilstand bak metoder | Arv = subklasse overtar fra superklasse

Polymorfisme = mange former, dynamisk metodevalg | Abstraksjon = skjule kompleksitet bak grensesnitt

Java-nøkkelord:

private / protected / public = tilgangsmodifikatorer | static = tilhører klassen

final = kan ikke endres/arves/overstyres | abstract = ufullstendig, må implementeres

extends = arver fra klasse | implements = implementerer grensesnitt | super = referanse til superklasse

Feilhåndtering:

try-catch-finally = fange unntak | throw = kaste unntak | throws = deklarere at metode kan kaste

Checked = må håndteres (IOException) | Unchecked = trenger ikke deklareres (NullPointerException)

Klasser og objekter

Grunnleggende byggesteiner i OOP: klasser, objekter, konstruktører, metoder, felt og minnemodellen.

Klasser og objekter — grunnlaget

Alt i Java er bygget rundt klasser og objekter. En klasse er en mal som beskriver data (felt) og oppførsel (metoder). Et objekt er en konkret instans av en klasse, opprettet med new.

Klasse vs. objekt:

Klasse = Blueprint/mal som definerer felt og metoder

Objekt = Konkret instans opprettet med new, lever på heapen

Referanse = Variabel som peker til et objekt (lever på stacken)

Konstruktører

En konstruktør er en spesiell metode med samme navn som klassen og ingen returtype. Den kalles automatisk ved new og brukes til å initialisere objektets felt.

Regler for konstruktører:

Samme navn som klassen, ingen returtype

Kan ha parametere for å ta imot initialverdier

En klasse kan ha flere konstruktører (overloading)

Hvis du ikke definerer noen, lager Java en tom standardkonstruktør

Bruk this(...) for å kalle en annen konstruktør i samme klasse

Eksempel: Klasse med konstruktør og metoder

public class Student {
    private String name;
    private int age;

    // Konstruktør
    public Student(String name, int age) {
        this.name = name;  // this skiller felt fra parameter
        this.age = age;
    }

    // Getter
    public String getName() { return name; }

    // Setter med validering
    public void setAge(int age) {
        if (age < 0) throw new IllegalArgumentException("Ugyldig alder");
        this.age = age;
    }

    @Override
    public String toString() {
        return name + " (" + age + " år)";
    }
}

// Bruk:
Student s = new Student("Ola", 20);  // Oppretter objekt
System.out.println(s);  // Kaller toString(): "Ola (20 år)"

Minnemodellen: Stack og Heap

Stacken lagrer lokale variabler og metodekall. Heapen lagrer alle objekter opprettet med new. Referansevariabler på stacken peker til objekter på heapen.

Referanser vs. verdier:

Primitive typer (int, double, boolean): Verdien lagres direkte. Kopieres ved tilordning.

Referansetyper (alle klasser, arrays): Referansen kopieres. Begge variabler peker til samme objekt.

== sammenligner referanser (samme objekt?), .equals() sammenligner innhold.

Statiske felt og metoder

static betyr at feltet/metoden tilhører klassen, ikke individuelle objekter. Statiske metoder kan kalles uten å opprette et objekt: Math.sqrt(4). De har ikke tilgang til this eller instansvariabler.

Nøkkelformler

  • •`new ClassName()` — oppretter objekt på heapen
  • •`this` — referanse til nåværende objekt
  • •`==` — sammenligner referanser, `.equals()` — sammenligner innhold
  • •`static` — tilhører klassen, ikke instansen

Vanlige feil

  • ⚠️Bruker `==` for å sammenligne String-innhold i stedet for `.equals()`
  • ⚠️Glemmer at `ref = obj` kopierer referansen, ikke objektet — endring via en referanse synes via den andre
  • ⚠️Forveksler instansvariabler (tilhører objektet) med lokale variabler (tilhører metoden)
  • ⚠️Prøver å bruke instansvariabler fra en statisk metode

Eksamenstips

  • 💡Tegn minnediagrammer (stack/heap) for å spore referanser — dette hjelper med sporingsoppgaver
  • 💡Husk at lokale variabler IKKE initialiseres automatisk, mens felt (instansvariabler) gjør det
Laster...
Eksamenssett.no

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

PersonvernVilkår

© 2025 Eksamenssett.no · Alle rettigheter forbeholdt

Deler av innholdet er utviklet med hjelp av AI-verktøy

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS