LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

Like dokumenter
HØGSKOLEN I SØR-TRØNDELAG

Hva er en metode? INF1000 Forelesning 8. Hva skjer når vi kaller en metode? Hvorfor bruke metoder?

HØGSKOLEN I SØR-TRØNDELAG

En klasse som arver, eller selv deklarerer en abstrakt metode, må deklareres som abstrakt.

INF1000 Forelesning 8. Litt repetisjon: Metoder og klasser Innkapsling av variable og metoder Hvordan gripe an et stort problem?

Hva er en metode. Hva skjer når vi kaller en metode

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

UNIVERSITETET I OSLO

Uke 7 - Objekter, klasser og pekere (+ litt først om args[])

INF våren 2017

Innhold. INF1000 (Uke 11) Programmering. Rep: Metoder. Rep: Hva er en metode? Litt repetisjon. To måter å programmere på

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder

HØGSKOLEN I SØR-TRØNDELAG

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

UNIVERSITETET I OSLO

Hittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste

Mer om programmering av aggregeringer

INF1000: Forelesning 7

IN våren 2018 Tirsdag 16. januar

IN våren 2019 Onsdag 16. januar

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

INF1010 våren januar. Objektorientering i Java

Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:

To måter å programmere på. Java 12. Programmering med objekter. Statisk programmering

INF1000: Forelesning 7. Konstruktører Static

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

INF106 Objektorientert programmering

Introduksjon til objektorientert programmering

INF Objektorientert programmering. Datastrukturer i Java Klasser med parametre

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

UNIVERSITETET I OSLO

Objekter. Uke 8 - Objekter, klasser og pekere. Verden består av mange objekter, noen ganske like, noen ulike. Klasser og objekter i verden

Eksamensrelevant repetisjonsstoff. Deklarasjoner og variabeltyper. Konstanter

INF Objektorientert programmering. Datastrukturer i Java Klasser med parametre

HØGSKOLEN I SØR-TRØNDELAG

Velkommen til. INF våren 2016

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN!

IN1010 våren januar. Objektorientering i Java

Oblig 4Hybelhus litt mer tips enn i oppgaven

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

INF1000 Metoder. Marit Nybakken 16. februar 2004

INF Forelesning oppsummering forts. Et meget enkelt banksystem. Oppsummering om klasser, objekter, pekere og.

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

s 678 * Hvordan designe og programmere objektorientert * Støtte til oppstart på Oblig 4: Jobbe frem eget forslag til datastruktur

INF 1000 høsten 2011 Uke 10: 25. november

Dagens tema Kapittel 8: Objekter og klasser

Kapittel 5. Din første klasse

UNIVERSITETET I OSLO

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Tuva Kristine Thoresen

To måter å programmere på. INF1000 : Forelesning 9. Programmering uten objekter. Programmering med objekter: Eksempel på programmering uten objekter

Inf1000 (Uke 10) Oppgaveløsning. Hashmap

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Gjennomgang av eksamen H99

INF Uke 10. Ukesoppgaver oktober 2012

Innhold. INF1000 Høst Klasser og objekter. Uke 7: Mer objektorientert programmering Siri Moe Jensen

HØGSKOLEN I SØR-TRØNDELAG

INF1000 (Uke 12) Sortering

HØGSKOLEN I SØR-TRØNDELAG

(! )! #!! *#+,$&!! &#$

3 #$ *#+,$&!! &#$ (! )! #! 6 &#)%#. / 5$ #%#.67 / "## #&! %# # & #!!& %&$ # $!!!!# $#

Kapittel 8: Programutvikling

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

INF1010 UML. Marit Nybakken 26. januar 2004

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

UNIVERSITETET I OSLO

Eksamen. Objektorientert Programmering IGR 1372

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Oblig 3 to versjoner. INF Forelesning 8: Objekter, klasser og pekere. Verden består av mange objekter: noen ganske like, andre ulike

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

2 Om statiske variable/konstanter og statiske metoder.

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

Kapittel 5: Objektkommunikasjon

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

HØGSKOLEN I SØR-TRØNDELAG

En klasse er noe - en metode gjør noe (! / # <= (! * +!! ",-' %. "- -/ %.!#) )! " 0'%! * *$! "1-)) '' % '. 22!'( 7/ /! * 2 2! "*"% 8"%% 9 - -!

INF1000: noen avsluttende ord

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

HØGSKOLEN I SØR-TRØNDELAG

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre

INF1000 Prøveeksamen Oppgave 7 og 9

Løsningsforslag, inf101, våren 2001

1. Separatorer (skilletegn) i easyio

Blokker og metoder INF1000 (Uke 6) Metoder

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

UNIVERSITETET I OSLO

Å lese tall fra en fil, klassen Scanner

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Transkript:

Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Objektorientert modellering Sentrale begreper Objekter er de tingene problemet vi skal løse handler om. Vi modellerer dem som om de var «levende». Objekter har mye kunnskap om seg selv. Eksempler: Studenter, telefoner, forelesninger, Kunnskapen som objektet har kan deles i to Attributter: navn, adresse, tlfnr, produsent, tema, Operasjoner: finn navn, gi karakter, send SMS, sett tema Tilstanden til et objekt er definert som verdien til alle attributtene Eksempler: «Ole Hansen», «Storgt 4, 7000 Trondheim», 45675600, «Samsung». «Objektorientert modellering»,. Vi instruerer et objekt om å utføre en operasjon ved å sende en melding til det. Vi spiller rollen «klient», objektet spiller rollen «tjener» En klasse er en beskrivelse av objekter med samme mengde attributter og samme mengde operasjoner («atferd») Forelesning 1a, side 2

Problemstilling Klassen Student Meldinger vi ønsker å kunne sende til et objekt (operasjoner) finn navn og alder registrer en ny karakter (kun karakter, ikke fag(!)), gyldig karakter A-F finn gjennomsnittskarakteren (alle karakterene teller likt) hent ut alle registrerte karakterer som en streng som også inneholder personalia Hvilke attributter finner vi? (Verdiene til attributtene gir objektets tilstand) Forelesning 1a, side 3 Innkapsling Utgangspunkt for diskusjoner og forbedringer: class Student { private final String navn; private final int alder; public Student(String navn, int alder) { this.navn = navn; this.alder = alder; public String getnavn() { return navn; public int getalder() { return alder; Lag kode med et lite testprogram. Alternativ: Offentlige variabler et problem? Diskuter innkapsling. Forelesning 1a, side 4

Innkapsling Kunnskap om data (datastrukturer og datatyper) og atferd (implementasjon av operasjoner) er gjemt inne i objektene. Dette er dermed skjult for klienten, som er den som bruker objektene. Dataene skjules ved å gjøre variablene private. Forelesning 1a, side 5 Klassevariabler og metoder - static Objektvariabelen alder erstattes med fødselsdatoen på formen ddmmåååå (datatype String) Erstatt konstruktøren slik at den tar navn og fødselsdato som argument Programmer ny utgave av getalder() Hent ut de fire siste sifrene i fødselsdatoen og omform til heltall Hent ut årstallet vi er inne i nå: GregorianCalendar dagensdato = new GregorianCalendar(); int detteaar = dagensdato.get(calendar.year); Testprogram class TestStudent { public static void main(string[] args) { Student studenten = new Student("Ole Andreas Thomassen", "10101980"); System.out.println("Studenten heter " + studenten.getnavn() + " og er + studenten.getalder() + " år gammel."); Registrer HiST som skole for alle studentene Skriv kode som holder orden på hvor mange Student-objekter som er opprettet Utvid testprogrammet Forelesning 1a, side 6

Om static «static» er en modifikator som markerer noe som er felles for alle objektene av en klasse ikke nødvendigvis statisk på den måten at det ikke kan endres Klassevariabler Et sett med variabler pr. klasse. Variablene er felles for alle objekter som tilhører klassen. De eksisterer selv om det ikke er laget noen objekter av klassen. (Dette i motsetning til objektvariabler, det vi har ett sett pr. objekt.) Objektmetoder kan referere til klassevariabler, men klassemetoder (staticmetoder) kan ikke referere til objektvariabler. Modifikatoren «final» betyr at variabelen ikke kan forandre verdi, og kan brukes både for objekt- og klassevariabler Forelesning 1a, side 7 Klassediagram Forelesning 1a, side 8

Karakterene - char-tabell som medlem i klassen Student Objektvariabel private char[] karakterer Hvor oppretter vi tabellen? Hvor stor bør den være? Kan tabellen bli full? Hva gjør vi i tilfelle da? Utvikle operasjonene knyttet til karakterene parallelt med utvidelse av testprogrammet foran Detaljering av operasjonene registrer en ny karakter, gyldig karakter A-F hva hvis små bokstaver brukes som karakter? hva gjør vi hvis karakteren er ugyldig? metodehode? finn gjennomsnittskarakteren (alle karakterene teller likt) hvordan beregne gjennomsnittet av bokstaver? snitt midt mellom to karakterer, skal gi som resultat den beste karakteren metodehode hent ut alle registrerte karakterer som en streng som også inneholder personalia tostring()-metode? Forelesning 1a, side 9 Ekstraoppgave Lag klientprogram Forelesning 1a, side 10