Programmering i Java versjon 2000-08-15 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.

Slides:



Advertisements
Liknende presentasjoner
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.
Advertisements

Tabeller av objekter Klassen ArrayList
14 okt. 2003, Arne Maus Inst. for informatikk, UiO
C++ for Java-programmerere
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 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.
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
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
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.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Samarbeid mellom objekter
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
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 august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
IS-102 Klassedefinisjoner
En gang til!? .
INF150 Programmering mandag 11.9
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 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 januar 2005 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 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 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.
Programmering i Java versjon desember 2002 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 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 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 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.
Objektorientert programmering
Java 3 Mer om uttrykk Terminal I/O Forgreninger
Å 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.
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
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.
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.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
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 desember 2002 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.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
Inf1000 (Uke 5) Arrayer, filer og tekst
Kapittel 7 Array (lister og tabellar). 7.1 Arrayelement Array (lister, tabellar) er kjent frå VB Blir brukt til å organisere data når vi har mange dataelement.
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
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3 Bruk av ferdige klasser Objekter som modeller av virkelighetenside 2-3 Klient og tjener, melding og operasjonside 4 Objekter og klasserside 5 Klassediagramside 6 Klassen Bilside 7-9 En referanse settes lik en annen referanseside 10 Brukergrensesnittet er et objektside Klassen mittBibliotek.JavabokGUIside 14 Pakkerside Klassen java.lang.Stringside 17-19

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 2 Objekter som modeller av virkeligheten •modell - en forenkling av virkeligheten. Vil fokusere på bestemte sider ved virkeligheten. •objekt - en modell av en ting som problemet vi skal løse, handler om. –fokus på kunnskap, objektet vet en del ting om seg selv: •eksempler på objekter: –En bil har kunnskap om sitt eget registreringsnummer, merke og modell. Den vet hvordan den starter, hvordan den kjører og hvordan den stopper. –En student vet sitt eget studentnummer, sine egne karakterer, navn, fødselsdato og adresse. Han vet hvordan han skal komme seg til studiestedet, og hvordan han skal løse eksamensoppgavene. –Et møte vet hvor det holder til, hvem som skal delta, når det starter og når det er planlagt avsluttet. Etter en tid vet det også hvem som deltok, og når det virkelig sluttet. •ikke akkurat som i virkeligheten, men dette er modeller, og modeller er ikke miniatyrer av virkeligheten

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 3 Objekter i virkeligheten og i programmering •Et objekt i en objektorientert modell er vesensforskjellige fra det virkelige objektet som det er en modell av. •Modellobjektet har –mye kunnskap om seg selv –ansvar for å utføre visse oppgaver. •Dette er uavhengig av om det virkelige objektet er levende, dødt eller abstrakt. •Vi tar likevel nesten alltid utgangspunkt i de virkelige objektene, når vi skal lage modellobjektene. •Når vi i fortsettelsen snakker om objekter, mener vi modellobjektene. Dersom vi ønsker å referere til de virkelige objektene, sier vi det i klartekst.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 4 Klient og tjener, melding og operasjon •Klient og tjener er roller som objekter spiller. •Et klientobjekt etterspør en tjeneste ved å sende en melding til et tjenerobjekt. •Tjeneren utfører en operasjon som reaksjon på meldingen. •Tjeneren kan sende svar tilbake til klienten. klient tjener Grethe sender meldingen ”økFarten” til bilen sin. Oppgave 1: Sett opp flere meldinger som Grethe kan sende til bilen. Oppgave 2: Utdyp den kunnskapen som et studentobjekt må ha om seg selv. Hvilke meldinger er det naturlig å kunne sende til et studentobjekt?

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 5 Objekter og klasser •Et objekt har –en tilstand: en situasjon i livet til objektet, der objektet tilfredsstiller en betingelse, gjennomfører en aktivitet eller venter på at noe skal skje - eksempler? –attributter: navngitte egenskaper med definerte verdiområder - eksempler? –identitet: et objekt skiller seg fra alle andre objekter –atferd: den mengden operasjoner som objektet kan utføre •Innkapsling er en viktig egenskap ved objekter. –opplysninger om hvordan en oppgave løses er gjemt inne i objektet –klienten forholder seg kun til den atferden som er definert for objektet •En klasse er en beskrivelse av en mengde objekter som har det til felles, at de har de samme attributtene og samme atferd.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 6 Klassediagram •Klasser illustreres ved hjelp av klassediagram. •Klassediagram er en del av UML (Unified Modeling Language). •En klasse beskriver en datatype. Gjør oppgave 2 side 61. klassenavn attributter operasjoner Bil regNr merke årsmodell hastighet start økFarten brems stopp

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 7 Grensesnittet til et objekt av klassen Bil •Grensesnittet er en beskrivelse av atferden til objektet, det vil si de meldingene som en klient kan sende til objektet. •Operasjonene programmeres som metoder. Metodene i klassen Bil kan beskrives slik: –void start( ) –void økFarten(int økning) –void brems(int minskning) –void stopp( ) •Operasjonene forteller hvilke meldinger vi kan sende til et objekt av klassen. •Parametrene forteller at vi må sende data sammen med meldingene. I dette tilfelle skal to av meldingene ha med en heltallsverdi. •Det reserverte ordet void forteller at tjenerobjektet ikke sender svar tilbake til klienten. Dersom svar sendes tilbake står datatypen til svaret her. parametre (formelle) parametre

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 8 Å bruke klassen Bil •I main() lager vi objekter som vi sender meldinger til. •main() fungerer som klient, vi sier at main() er et klientprogram. •Vi må først lage et objekt ved å bruke en konstruktør. •Konstruktøren ligger også i klassen, og den har følgende grensesnitt: –Bil(String regNr, String merke, int årsmodell, int startHastighet) •I klientprogrammet lager vi objektet slik: –Bil grethesBil = new Bil("AA-45456", "Saab", 1995, 0); •Vi kan nå sende meldinger til objektet (metodekall): –grethesBil.start(); –grethesBil.økFarten(20); (aktuelt) argument class Biltur { public static void main(String[] args) { Bil toresBil = new Bil("AA-45456", "Saab", 1995, 0); toresBil.start(); toresBil.økFarten(50); toresBil.brems(20); toresBil.stopp(); } Et fullstendig klientprogram: (aktuelle) argument

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 9 Å lage et objekt av en klasse grethesBil Bil grethesBil = new Bil(”VD-12345”, ”Volvo”, 1998, 0); klassenavn navn på referanse argumenter reservert ord for å lage et objekt VD Volvo En referanse er en variabel som inneholder adressen til den plassen der objektet ligger. Vi sier at variabelen tilhører en referansetype. For enkelthets skyld bruker vi variabelnavnet som om det var navnet på objektet, og ikke på en referanse til dette. String er en slik referansetype. De andre datatypene vi hittil har stiftet bekjentskap med tilhører gruppen ”primitive datatyper”.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 10 En referanse settes lik en annen referanse grethesBil annesBil Før: To referanser til hvert sitt bilobjekt Etter at setningen grethesBil = annesBil; er utført: annesBil grethesBil Det eksisterer ikke lenger noen referanse til det andre objektet, det blir derfor fjernet fra primærminnet. Gjør oppgave 1-4, side 66.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 11 Brukergrensesnittet er et objekt JavabokGUI lesTekst lesHeltall lesDesimaltall skrivMelding skrivResultater bakgrunnsfarge forgrunnsfarge skrifttype vindusstørrelse vindusplassering

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 12 Forholdet mellom et brukergrensesnittobjekt og et program som beregner arealet av en vegg Argumenter: ”Lengden av veggen (meter):” ”Oppussing” Argumenter: ”Høyden av veggen (meter):” ”Oppussing”

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 13 Kildekoden ser slik ut class Veggberegninger2 { public static void main(String[] args) { mittBibliotek.JavabokGUI gui = new mittBibliotek.JavabokGUI("Arealet av en vegg"); gui.show(); double lengde = gui.lesDesimaltall("Oppussing", "Lengden av veggen (meter): "); double høyde = gui.lesDesimaltall("Oppussing", "Høyden av veggen (meter): "); double arealet = lengde * høyde; gui.skrivResultater("Arealet av veggen er " + arealet + " kvadratmeter"); } /* Utskriftvindu: ***Inndata: Lengden av veggen (meter): 5.8 ***Inndata: Høyden av veggen (meter): 2.4 Arealet av veggen er kvadratmeter */

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 14 Klassen mittBibliotek.JavabokGUI •Metoder i klassen mittBibliotek.JavabokGUI: –mittBibliotek.JavabokGUI(String tittel) // konstruktør –void show() // vis utskriftsvinduet på skjermen. –int lesHeltall(String tittel, String ledetekst) // les heltall –double lesDesimaltall(String tittel, String ledetekst) // les desimaltall –String lesTekst(String tittel, String ledetekst) // les tekst –void skrivMelding(String tittel, String ledetekst) // skriver meldingsboks –void skrivResultater(String tekst) // skrives i utskriftvinduet Gjør oppgave 1, side 73 - unntatt kjøring.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 15 Pakker •For å kunne bruke JavabokGUI må du vite litt om pakker. •En pakke er en samling med klasser. Standardpakker: –grafikk, lyd og bilder –kommunikasjon over nettverk –databasehåndtering •Alle klasser tilhører en pakke. –De fleste klassene vi lager vil tilhøre den navnløse pakken. –Klasser til mer allmenn bruk bør ligge i en pakke med navn. •Pakkenavnet må være identisk med navnet på den underkatalogen der klassene i pakken ligger. •Pakkenavnet er en del av klassenavnet, eksempel: mittBibliotek.JavabokGUI •Dersom programmet bruker andre klasser enn de som finnes i standardpakkene, må stien til disse ligge i miljøvariabelen CLASSPATH. CLASSPATH må også inneholde stien til aktuell katalog (et punktum). •Eksempel: Hvis katalogen mittBibliotek ligger rett under c:\Java må CLASSPATH se slik ut: –CLASSPATH=.;c:\Java Obs! Merk punktum!

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 16 Å bruke pakker •I stedet for å skrive det fullstendige klassenavnet hver gang, kan vi sette en import-setning i begynnelsen av filen: –import mittBibliotek.*; •Da kan vi skrive f.eks.: –JavabokGUI gui = new JavabokGUI("Arealet av en vegg"); •import-setningen må også brukes for standardpakkene, unntatt for pakken java.lang. •Alle filer som inneholder klasser som tilhører en navngitt pakke, må ha en package-setning øverst, eksempel: –package mittBibliotek; •Vi bruker vanligvis ikke denne setningen i våre programmer, på grunn av at våre klasser tilhører den navnløse pakken. Oppgave: Last ned pakken mittBibliotek fra bokas web-side, installer den som beskrevet i kapittel 3.5, og kjør programmet fra oppgave 1 side 73.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 17 En av standardklassene: klassen java.lang.String String by = "Trondheim"; er det samme som: String by = new String("Trondheim"); Trondheim by grethesBil VD Volvo grethesBil VD Volvo skal egentlig være slik:

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 18 Noen få av klassens nærmere 50 metoder •String(String verdi) // konstruktør •char charAt(int posisjon) // returnerer tegnet på den gitte posisjonen // Posisjonene nummereres fra og med 0. •int length() // returnerer antall tegn som teksten består av •String toLowerCase() // lager ny tekst lik den gamle, alle bokstavene små •String toUpperCase() // lager ny tekst lik den gamle, alle bokstavene store •String trim() // lager ny tekst, blanke foran og bak er fjernet •Metoder som søker etter et enkelt tegn eller en delstreng. Søking forfra: –public int indexOf(int tegn) –public int indexOf(int tegn, int fraIndeks) –public int indexOf(String delStreng) •Metoder som søker etter et enkelt tegn eller en delstreng. Søking bakfra: –public int lastIndexOf(int tegn) –public int lastIndexOf(int tegn, int fraIndeks) –public int lastIndexOf(String delStreng) –public int lastIndexOf(String delStreng, int fraIndeks)

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 3, side 19 import mittBibliotek.*; class TestString { public static void main(String[] args) { JavabokGUI gui = new JavabokGUI("Prøver String-metoder"); gui.show(); String tekst = gui.lesTekst("", "Skriv en tekst: "); String utenBlankeForanOgbak = tekst.trim(); gui.skrivResultater("Blanke fjernet: " + utenBlankeForanOgbak); String store = tekst.toUpperCase(); gui.skrivResultater("Bare store bokstaver: " + store); String små = tekst.toLowerCase(); gui.skrivResultater("Bare små bokstaver: " + små); char førsteBokstav = tekst.charAt(0); gui.skrivResultater("Første bokstav: " + førsteBokstav); char andreBokstav = tekst.charAt(1); gui.skrivResultater("Andre bokstav: " + andreBokstav); int antTegn = tekst.length(); gui.skrivResultater("Lengden til teksten: " + antTegn); } /* Utskriftvindu: ***Inndata: Skriv en tekst: Anne Katrine Ås Blanke fjernet: Anne Katrine Ås Bare store bokstaver: ANNE KATRINE ÅS Bare små bokstaver: anne katrine ås Første bokstav: A Andre bokstav: n Lengden til teksten: 15 */ tekst Anne Katrine Ås store ANNE KATRINE ÅS små anne katrine ås A førsteBokstav n andreBokstav 15 antTegn Eksempel på bruk av klassen String Gjør oppgave 1-3 side 80.