Klasser, objekter, pekere og UML. INF1000 - gruppe 13

Like dokumenter
INF1000: Forelesning 7

INF1000: Forelesning 7. Konstruktører Static

INF1010, 21. januar Klasser med parametre = Parametriserte klasser = Generiske klasser

INF1010 UML. Marit Nybakken 26. januar 2004

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

Løsningsforslag til eksamen i INF1000 våren 2006

INF1010, 15. januar time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Repetisjon. INF gruppe 13

Enkle generiske klasser i Java

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

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

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

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

UNIVERSITETET I OSLO

INF1000: noen avsluttende ord

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

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013

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

Fra problem til program

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

INF1010 Sortering. Marit Nybakken 1. mars 2004

INF1000: Forelesning 6. Klasser og objekter del 1

INF1000 Metoder. Marit Nybakken 16. februar 2004

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

INF1010 Arv. Marit Nybakken 2. februar 2004

2 Om statiske variable/konstanter og statiske metoder.

IN våren 2019 Onsdag 16. januar

IN våren 2018 Tirsdag 16. januar

Et meget enkelt banksystem

Uke 7 Mer om Objekter, klasser og pekere; UML. 10. okt. 2013, Arne Maus Inst. for informatikk, UiO

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

Oblig 4Hybelhus litt mer tips enn i oppgaven

INF1000 Klasser og objekter

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

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

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

Stringer er ordentlige objekter. Uke 8 - Mer om objekter og klasser. Tips Oblig3. Eksempel Student med en konstruktør

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

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

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

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

Oblig 3 tips litt mer tips enn i oppgaven

UNIVERSITETET I OSLO

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

Oppgave 1 (Programtolkning) INF1000 Eksamen V06. Oppgave 1 (Programtolkning) Oppgave 1 (Programtolkning)

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser

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

UNIVERSITETET I OSLO

Repitisjonskurs. Arv, Subklasser og Grensesnitt

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

Seminaroppgaver IN1010, uke 2

Uke 7 Mer om Objekter, klasser og pekere; 27. Sept og 4. okt. 2011, Arne Maus Inst. for informatikk, UiO

INF Uke 10. Ukesoppgaver oktober 2012

INF1000 Behandling av tekster

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

UNIVERSITETET I OSLO

INF Løsning på seminaropppgaver til uke 8

INF våren 2017

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

Uke 7 Mer om Objekter, klasser og pekere;

Uke 7 Mer om Objekter, klasser og pekere;

Hva skal vi lære i dag? Inf1000 (Uke 9) UML og enda mer om klasser. Hvilke lesemetoder finnes? Filbehandling. Repetisjon om filbehandling UML

Null, && og søppeltømmeren. INF Forelesning 9: Mer om objekter og klasser, tips til oblig 3. Eksempel Student med én konstruktør

Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java

OPPGAVE 5b og 8b Java Kode

INF1000 oppgaver til uke 38 (17 sep 23 sep)

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

Inf1000 (Uke 7) Objekter, klasser og pekere

Løse reelle problemer

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

UNIVERSITETET I OSLO

TOD063 Datastrukturer og algoritmer

Oblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Oblig 3 tips litt mer tips enn i oppgaven

Forelesning inf Java 5

Forelesning inf Java 5

INF1000: noen avsluttende ord

Inf1000 (Uke 9) UML og enda mer om klasser

Hva skal vi lære i dag? Inf1000 (Uke 9) UML og enda mer om klasser. Hvilke lesemetoder finnes? Filbehandling

Kapittel 7: Mer om arv

UNIVERSITETET I OSLO

Velkommen til. INF våren 2016

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

UNIVERSITETET I OSLO

2 Om statiske variable/konstanter og statiske metoder.

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

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; }

Java-kurs. Andreas Knudsen Nils Grimsmo 9th October 2003

Argumenter fra kommandolinjen

UNIVERSITETET I OSLO

INF1000. Marit Nybakken 10. februar 2004

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

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

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

Transkript:

Klasser, objekter, pekere og UML INF1000 - gruppe 13

Klasse Beskriver ofte ting fra den virkelige verden Veldig ofte et substantiv (Person, Bok, Bil osv.) class Person { String navn; int alder; } class Bok { String tittel; String forfatter; int antsider; } class Bil { String regnr; String merke; String eier; }

Objekt En kopi (en instans) av en klasse Lages hver gang man skriver new Ett objekt i virkeligheten gir ett objekt i programmet Person enperson = new Person(); Bok enbok = new Bok(); Bil enbil = new Bil();

Peker Noe som peker på et objekt Tillater oss å se variabler og metoder i objektet med. Person person1 = new Person(); Bok pekertilbok = new Bok(); person1.navn = Alice ; pekertilbok.tittel = Alice in Wonderland ; Bil enbil = new Bil(); enbil.merke = Audi ; System.out.println(pekerTilBok.tittel);

Eksempel Variabeldeklarasjon int alder; Pekerdeklarasjon Person pekertilperson;

Eksempel Med tilordning av verdi int alder = 5; Med tilordning av objekt Person pekertilperson = new Person();

Klasse, objekt og peker class BilRegister { public static void main(string[] args) { Bil pekertilenbil; pekertilenbil = new Bil(); } } pekertilenbil.regnr = DN12345 ; pekertilenbil.merke = Audi ; pekertilenbil.eier = Alice ;

Verdien Om en peker ikke peker på et objekt, så peker den på den spesielle verdien betyr ingenting Bil pekertilenbil; pekertilenbil = new Bil(); pekertilenbil = ;

Slette objekter Om ingen pekere peker på et objekt vil Java slette dette objektet for oss Bil pekertilenbil = new Bil(); Bil ennybilpeker = pekertilenbil; pekertilenbil = ; ennybilpeker = ;

String er en klasse Som Person, Bok og Bil er også String en helt vanlig klasse Spesiell syntaks i Java for å lage Stringobjekter: String pekertiltekst = En tekst ; String pekertiltekst = new String( En tekst ); char[] tekst = { E, n,, t, e, k, s, t }; String pekertiltekst = new String(tekst);

Array med pekere Bil[] biler = new Bil[10]; biler 0 1 2 3 4 5 6 7 8 9

Array med pekere Bil[] biler = new Bil[10]; biler[3] = new Bil(); biler 0 1 2 3 4 5 6 7 8 9

Array med pekere Bil[] biler = new Bil[10]; biler[3] = new Bil(); biler 0 1 2 3 4 5 6 Bil regnr = merke = eier = 7 8 9

Array med pekere Bil[] biler = new Bil[10]; biler[3] = new Bil(); biler[8] = biler[3]; biler 0 1 2 3 4 5 6 Bil regnr = merke = eier = 7 8 9

Array med pekere Bil[] biler = new Bil[10]; biler[3] = new Bil(); biler[8] = biler[3]; biler 0 1 2 3 4 5 6 Bil regnr = merke = eier = 7 8 9

Array med pekere Bil[] biler = new Bil[10]; biler[3] = new Bil(); biler[8] = biler[3]; biler[8].merke = Lada ; biler 0 1 2 3 4 5 6 7 8 Bil regnr = merke = eier = 9

Array med pekere Bil[] biler = new Bil[10]; biler[3] = new Bil(); biler[8] = biler[3]; biler[8].merke = Lada ; biler 0 1 2 3 4 5 6 7 8 Bil regnr = merke = Lada eier = 9

Array med pekere Bil[] biler = new Bil[10]; biler[3] = new Bil(); biler[8] = biler[3]; biler[8].merke = Lada ; biler 0 1 2 3 4 5 6 7 8 Bil regnr = merke = Lada eier = 9 System.out.println(biler[3].merke);

class BilRegister { public static void main(string[] args) { Bil[] pekertilenbilarray = new Bil[10]; Bil pekertilenbil = new Bil(); pekertilenbil.regnr = DN12345 ; pekertilenbil.merke = Audi ; pekertilenbil.eier = Alice ; pekertilenbilarray[0] = pekertilenbil;...

... pekertilenbil = new Bil(); pekertilenbil.regnr = DN54321 ; pekertilenbil.merke = Fiat Abarth ; pekertilenbil.eier = Nils-Olav ; } } pekertilenbilarray[1] = pekertilenbil;

Konstruktører Startmetode i objekter Har samme navn som klassen Kjøres én gang (rett etter objekter blir laget med new) Kan få parametere (akkurat som vanlige metoder)

Konstruktører forts. class Bil { String regnr; String merke; String eier; } Bil(String r, String m, String e) { regnr = r; merke = m; eier = e; } Bil bilpeker = new Bil( A1, Mercedes, Kongen ); System.out.println(bilpeker.regnr); System.out.println(bilpeker.merke); System.out.println(bilpeker.eier);

Peker til et annet objekt class Bil { } String regnr; String merke; Person eier; Bil(String r, String m, Person e) { } regnr = r; merke = m; eier = e; Person pekertilperson = new Person(); pekertilperson.navn = Kongen ; pekertilperson.alder = 76; Bil bilpeker = new Bil( A1, Mercedes,pekerTilPerson); System.out.println(bilpeker.regnr); System.out.println(bilpeker.merke); System.out.println(bilpeker.eier.navn); System.out.println(bilpeker.eier.alder);

UML (Unified Modeling Language) Modell Diagrammer Klassediagrammer Objektdiagrammer Beskrive forhold mellom klasser/objekter

UML Oversikt Samarbeid Enklere å gjøre endringer før man begynner å programmere Arkitekter og ingeniører tegner først - så bygger de!

Klassediagrammer

Objektdiagrammer

Oppsummering Klasser er oppskrifter for hvordan vi lager objekter med new Kan ha arrayer med pekere til objekter UML-diagrammer gir oversikt og forenkling