# Øving 3: Klasser og testing

## Øvingsmål

- Lære å lage enkle Java-klasser og -programmer
- Lære å bruke debuggeren i VS Code

## Øvingskrav

- Kunne tegne enkle klassediagrammer
- Kunne deklarere klasser og metoder ihht. oppgavespesifikasjon

## Dette må du gjøre

### Del 1: Programmering

Velg minst to av oppgavene under, der én av de må være [Card-oppgaven](./Card.md). Merk at denne bygges videre på i øving 4, 5 og 7, og er derfor veldig gunstig å gjøre, slik at man har flere oppgaver å velge mellom senere.

- [Nim](./Nim.md) (Lett)
- **[Card-oppgave](./Card.md)** (Medium)
- [RPN-kalkulator](./RPNCalc.md) (Vanskelig)

Oppgavene for denne øvingen skal du lagre i [`src/main/java/oving3`](../../src/main/java/oving3). Test-filene ligger i [`src/test/java/oving3`](../../src/test/java/oving3).

### Del 2: Klassediagram

Tegn et [klassediagram](https://www.ntnu.no/wiki/display/tdt4100/Klassediagrammer) for oppgaven du velger i del 1. Klassediagrammet kan for eksempel skrives på papir eller tegnes i et valgfritt program. Diagrammet skal demonstrerer på sal, men det er ikke nødvendig å levere det på Blackboard.

### Del 3: Debugger

I denne oppgaven skal [debuggeren i VS Code](https://www.ntnu.no/wiki/pages/viewpage.action?pageId=235996724) brukes.  Oppgaven skal demonstreres for en læringsassistent på sal.

- [CoffeeCup](./CoffeeCup.md) (Medium)

## Vanskelighetsgrad

Oppgavene er merket med en vanskelighetsgrad relativt til hverandre. Det er en god idé å begynne med de lettere oppgavene dersom du ikke er komfortabel med pensum så langt, men det er anbefalt å prøve seg på de vanskeligere oppgavene om du synes de første oppgavene er uproblematiske. Dersom du allerede føler deg trygg på punktene i øvingskravene kan du forsøke å gå rett på de vanskeligere oppgavene. Du er selvfølgelig velkommen til å løse flere oppgaver enn minstekravet, noe som er lurt med tanke på eksamen og et langt liv som programmerer.

## Hjelp/Mistanke om bugs

Ved spørsmål eller behov for hjelp konsulter læringsassistenten din i saltiden hans/hennes. Du kan også be om hjelp over Teams i Fellesveiledning eller legge ut et innlegg på [Piazza](https://piazza.com/ntnu.no/spring2025/tdt4100).

## Godkjenning

Last opp kildekode på Blackboard innen den angitte innleveringsfristen. Innlevert kode skal demonstreres for læringsassistent innen én uke etter innleveringsfrist. Se Blackboard-sidene for mer informasjon rundt organisering av øvingsopplegget og det tilhørende øvingsreglementet.
