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.

Slides:



Advertisements
Liknende presentasjoner
Tabeller av objekter Klassen ArrayList
Advertisements

Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
14 okt. 2003, Arne Maus Inst. for informatikk, UiO
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
C++ for Java-programmerere
Datafiler og serialisering Tekstfiler Scanner-klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering.
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Uke 8 - Mer om: Objekter, klasser og pekere
Polymorfi og arv, del 1 LC191D Videregående programmering Semesterplan: Høgskolen i Sør-Trøndelag, Avdeling.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Samarbeid mellom objekter
Java 12 Mer filbehandling - skrive til fil HashMap Et større eksempel Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Objektorientert programmering Objektorientert systemutvikling
Objektorientert programmering i PHP del 2
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
IS-102 Klassedefinisjoner
Oblig4 - forklaringer Arne og Ole Christian.
C# for javaprogrammerere
En gang til!? .
Siste forelesning ER/EER-modellering
Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
Objekt Orientert Programmering (OOP). Objektorientering (OO)1/6 Objektorientering er en grunnleggende måte å organisere komplekse fenomener på.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Objektorientert programmering
Uke 7 - del I: Repetisjon del II: Objekter, klasser og pekere 30 sept. 2003, Arne Maus Inst. for informatikk, UiO.
Java 11 Programmering med og uten objekter: hva er forskjellen?
VI LAGER EN PLATEBUTIKK
Arv og polymorfi, del 3 Modifikatoren abstract side 2-3
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
INF1000 (Uke 14) Resten av eksamen H03 + del av V05 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen.
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
INF Objektorientert programmering
Programmering i Java versjon september 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Ekstra mange tips til Oblig 3! 12. mars 2007 Are Magnus Bruaset og Arild Waaler Inst. for informatikk, UiO.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
1 Inf1000 (Uke 10) Oppgaveløsning. Hashmap Programmering med og uten objekter: hva er forskjellen? Noen generelle råd vedrørende oppgaveløsing HashMap.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
Inf1000 (Uke 5) Arrayer, filer og tekst
INF1000 (Uke 11) Programmering
Kapittel 4 Skriving av klasser. 4.1 Anatomien til ein klasse Så langt har vi brukt ferdige klasser frå klassebiblioteket i Java Vi lagar objekt og brukar.
Objektorientert design In 140 Sommerville kap 12 – del 1.
Lokale variable Hvis vi trenger å ta vare på en verdi, inne i en metode kan vi definere en lokal variabel: int amount = 0; vi må fortelle hvilken type.
Variabler, datatyper og uttrykk
Triks Avslutt alle klasser, metoder og løkker samtidig som du lager dem. Deklarer alle variablene/referansene på begynnelsen av klassen. Hvis du definerer.
IS-102 Interaksjon med objekter
BilSalg klassedatastruktur Bil klassedatastruktur
Objektorientert programmering i Java
BilSalg klassedatastruktur Bil klassedatastruktur
Utskrift av presentasjonen:

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», , «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; } Forelesning 1a, side 4 Lag kode med et lite testprogram. Alternativ: Offentlige variabler – et problem? Diskuter innkapsling.

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", " "); 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 (static- metoder) kan ikke referere til objektvariabler.  Modifikatoren «final» betyr at variabelen ikke kan forandre verdi, og kan brukes både for objekt- og klassevariabler  public static void main(String[] args) (se oppg 4 side 395) 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