I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.

Slides:



Advertisements
Lignende præsentationer
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Advertisements

Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Selve objektet versus referencen til objektet Nedarvning
Grundlæggende programmering Efterår 2001
Hvordan man skriver koden.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Forelæsning 3.1 Collections Javas for-each løkke
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
GP6, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 6 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
Procestræ under afvikling af cp init login shell cp cp src dest.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
Forelæsning 7.1 – repetition
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
Variabler, klassevariabler, identitet og lighed, collections
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Klassevariable- og metoder Tilstand og opførsel på klasseniveau.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering1.1 Turtlemaskinen Arkitektur, instruktionssæt og eksempler.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering12A.1 Moduler Packages i Java.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
Indledende Programmering Uge 6 - Efterår 2006
I o p o DAIMI, AU, Marts 1999Introducerende objektorienteret programmering5B.1 Et lille banksystem Modellering ved hjælp af UML.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering6C.1 OOP – Hvorfor nu det? Funktionsorienteret versus objektorienteret systemudvikling.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Klassevariable- og metoder Funktionalitet på klasseniveau.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.1 Rekursive skildpadder Supertrekanter....
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5B.1 Sweep-algoritmer Programmering med invarianter og uden kaniner.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.1 Syntaksbeskrivelse Udtryk og Java-programmer.
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering7B.1 Søgning.
Parallel programming Rasmus D. Lehrmann DM
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Forelæsning Uge 4 – Torsdag
Forelæsning Uge 4 – Torsdag
Forelæsning Uge 6 – torsdag – repetition
Quiz – Uge 4 – torsdag – første time
Klasser og objekter (Afsnit i manualen).
Quiz – Uge 3 – torsdag – første time
Quiz – Uge 4 – torsdag – første time
Quiz – Uge 4 – torsdag – første time
Quiz – Uge 4 – torsdag – første time
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.2 “What’s in a name?” Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at...  Et navn fortolkes i en kontekst og konteksten er med til at definere navnets betydning.  Beskeden “Ring til Kirsten og sig at...” fortolkes vidt forskelligt på arbejde og hjemme!

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.3 Navne i Java Hvad betyder følgende? i = i + 1; Det kommer an på hvilken af følgende erklæringer der gælder: class Scope { int i; public void pip() { String i; i = i + 1; }

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.4 Erklæringer i Java Reglen i Java er at alle navne skal erklæres (eller importeres) før de kan bruges. Eneste undtagelse er navne fra java.lang der automatisk importeres til alle filer (String, Math, Thread,...). Navne kan erklæres i filer (gælder dog kun navne på klasser), i klasser og i metoder. I denne sammenhæng skal vi indskrænke os til at betragte navne på variabler erklæret i klasser og metoder. Som vi skal se i det følgende, er der lidt forskel på reglerne for variabler erklæret i klasser og variabler erklæret i (blokke i) metoder.

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.5 Variabler erklæret i klasser class Scope { Scope() { i = 0; } public void addOne() { i = i + 1; } int i; public void addTwo() { i = i + 2; } public int value() { return i; } } En klasse definerer et navnerum hvor alle navne erklæret i klassen er tilgængelige overalt i klassen.

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.6 Variabler erklæret i metoder public void pip() { x = x++; // error! int x = 0; x++; } I en metode (funktion) definerer en blok {...} et navnerum hvor alle navne erklæret i blokken er tilgængelige efter erklæringen (og indtil blokkens afslutning).

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.7 Indre blokke public void pip() { i = 0; { i++; System.out.println(i); int x = 0; x = i; x++; i++; System.out.println(x); } System.out.println(i); } I en blok kan man erklære indre blokke { {... } }. Reglen for indre blokke er den samme som reglen for blokke i metoder (forrige slide). Virkefelt for x

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.8 Et navn virker i indre blokke public void pip() { i = j; // Fejl, j virker ikke her! int j = 0;... { i++; System.out.println(i); j++; System.out.println(j); }... } Hvad er virkefeltet for int j ? Virkefelt for j

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.9 Og dog... class Scope { Scope() { i = 0; } public void pip() { i++; { i++; System.out.println(i); int i = 0; i++; System.out.println(i); } public static void main(String args[]) { Scope s = new Scope(); s.pip(); } int i; } Hvad sker der når vi oversætter (og evt. afvikler) følgende program?

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.10 En forklaring class Scope { Scope() { i = 0; } public void pip() { i++; { i++; System.out.println(i); int i = 0; i++; System.out.println(i); } public static void main(String args[]) { Scope s = new Scope(); s.pip(); } int i; } Hvad er virkefelterne for de to int i ’er ? Virkefelt for ydre i Virkefelt for indre i

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.11 Virkefeltsregler i Java En variabel erklæret i en klasse virker overalt i klassen med undtagelse af –virkefeltet for eventuelle ens-benævnte variabler erklæret i (blokke i) klassens metoder. En variabel erklæret i en blok virker overalt i blokken med undtagelse af –den del af blokken der går forud for erklæringen samt –virkefeltet for eventuelle ens-benævnte variabler erklæret i indre blokke.

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.12 { int i; int j; Sequence s; { int i; String s; i = i+j; { int i; int j; Sequence s; { String t; int k; int j; } Sådan!