Ladda ner presentationen
Presentation laddar. Vänta.
1
Objektorienterad programmering DAT050 DAI2 lp1 2016/2017
Uno Holmer Andreas Wieden Robin Åstedt Replace this with your course title and your name/contact details. DAT050, 16/17, lp 2
2
Objektorienterad programmering d2
Course Contents Introduction to object-oriented programming… …with a strong software engineering foundation… …aimed at producing and maintaining large, high-quality software systems. Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
3
Objektorienterad programmering d2
Buzzwords responsibility-driven design inheritance encapsulation overriding coupling iterators javadoc interface abstraction cohesion refactoring mutator methods collection classes A few buzzwords - I use that among other things to address students who have prior programming experience (and often think they know everything already). This shows them that they can still learn a lot in this course. design patterns regression testing polymorphic method calls Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
4
Objektorienterad programmering d2
Goals Sound knowledge of programming principles Sound knowledge of object-orientation Able to critically assess the quality of a (small) software system Able to implement a small software system in Java Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
5
Objektorienterad programmering d2
Book David J. Barnes & Michael Kölling Objects First with Java A Practical Introduction using BlueJ 6th edition, Pearson Education, 2016 ISBN Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
6
Objektorienterad programmering d2
Course overview (1) Objects and classes Class definitions Object cooperation Collections of objects Class libraries Class documentation methods Well-behaved objects – automatic testing and debugging Well-designed programs - Hur många har programmerat i Java? Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
7
Objektorienterad programmering d2
Course overview (2) Handling errors Inheritance Polymorphism Abstract classes and interfaces How to build flexible and extendable class structures using inheritance Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
8
Objektorienterad programmering d2
Course overview (3) OOA DAT055 lp III Design process and modelling Graphical user interfaces Design patterns Streams and files Parallel computing with threads Communication Reflection and meta programming Software project Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
9
Objektorienterad programmering d2
Activities Lectures Supervised class excercises Laborations (5) Your own work (plenty) Skicka runt lablistorna! Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
10
Objektorienterad programmering d2
V. Föreläsning BK kap. Laboration/Deadline 35 Mån: F1 Ons: F2 Introduktion till kursen och OOP Objekt och klass, instansvariabler, konstruktorer och metoder App. A, B, C, D 1 2 Lab 1 Java och BlueJ Deadline Sön 8/9 36 Mån: F3 Ons: F4 Objektinteraktion, objektsamlingar Objektsamlingar forts. 3, Lab 2 Objektinteraktion Sön 15/9 37 Mån: F5 Ons: F6 Associativa objektsamlingar och mängder, likhet och identitet, klassvariabler, konstanter Testning, enhetstestning, regressionstestning, JUnit, testautomatisering, avlusning 5 7, App. G Lab 3 Objektsamlingar Sön 22/9 38 Mån: F7 Ons: F8 Dokumentation av program, JavaDoc, kompilering, modularisering av program Designprinciper, koppling, kohesion, refaktorering App. I, J, K App. E, F. OH 6 Lab 4 Testning Sön 2/10 39 Mån: F9 Ons: F10 Arv, subtypning, substitutionsprincipen Polymorfism, statisk och dynamisk typ, dynamisk bindning 8 9 40 Mån: F11 Ons: F12 Abstrakta klasser och gränssnitt Kopiering av objekt, grund och djup kopiering 10 OH Lab 5 Arv Sön 16/10 41 Mån: F13 Ons: F14 Strukturerad felhantering Likhets- och jämförelserelationer för objekt, hashfunktioner 12 42 Ons Repetition 43 Tentamen: Tor 27/10 Objektorienterad programmering d2 Inlämningsuppgift 1 in senast v.44 DAT050, 16/17, lp 2
11
Objektorienterad programmering d2
Demo Here, I start discussing objects and classes. I talk to the students about it for a while, then I do an extensive demo of the shapes example in BlueJ. All important points of this lecture are encountered and pointed out during this demo. All following slides serve only as summary, or reminder. No new material is introduced after the demo. Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
12
Objektorienterad programmering d2
Fundamental concepts object class method parameter data type You don’t always need to show all these slides in class. These are intended as summaries. Discuss these topics with a demo, or in a dialog, or in any way you like. Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
13
Objektorienterad programmering d2
Objects and classes objects represent ‘things’ from the real world, or from some problem domain (example: “the red car down there in the car park”) classes represent all objects of a kind (example: “car”) Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
14
Methods and parameters
Objektorienterad programmering d2 Methods and parameters Objects have operations which can be invoked (Java calls them methods). Methods may have parameters to pass additional information needed to execute. Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
15
Objektorienterad programmering d2
Other observations Many instances can be created from a single class. An object has attributes: values stored in fields. The class defines what fields an object has, but each object stores its own set of values (the state of the object). Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
16
Objektorienterad programmering d2
State Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
17
Objektorienterad programmering d2
Two circle objects Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
18
Objektorienterad programmering d2
Source code Each class has source code (Java code) associated with it that defines its details (fields and methods). Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
19
Objektorienterad programmering d2
Return values Methods may return a result via a return value. Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
20
Objektorienterad programmering d2
FunktionsOrientering och ObjektOrientering (OO) ObjektOrienterad programutveckling Analys (OOA) Design (OOD) Programmering (OOP) Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
21
Objektorienterad programmering d2
Funktionsorienterat synsätt Sätter systemets funktioner i centrum stanna(hissen); Objektorienterat synsätt Sätter systemets objekt i centrum hissen.stanna(); stanna hissen hissen’ stanna! hissen Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
22
Objektorienterad programmering d2
Det FunktionsOrienterade synsättet Analysen fokuserar på systemets funktionalitet: Funktioner verkar på data ”Top-Down design”, stegvis förfining, algoritmisk dekomposition, ... I fokus Underordnade Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
23
Objektorienterad programmering d2
Funktionsorienterad bankomatdesign Skriv ledtext Läs siffror Meddela fel Ring upp centraldator Lucka ner upp Stäng lås Öppna Mata ut sedlar Manövrera Begär kort Verifiera belopp PIN-kod Kontantuttag Dataformaten är troligen kända i flera funktioner => svårt att lokalisera och ändra datarepresentation (Y2K…) Bankomatens sekventiella beteende är ”inkodat” i strukturen => svårt att lägga till nya tjänster (t.ex. saldoförfrågan) Olika begrepp hanteras utspritt, t.ex. hanteringen av displayen => svårt att lokalisera vid förändringar Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
24
Objektorienterad programmering d2
Det ObjektOrienterade synsättet Systemet analyseras med avseende på ”verkliga ting” Tingen modelleras som objekt VAD hanteras i systemet (vilka objekt)? Vilka relationer finns mellan objekten? Hur kan objekten samarbeta för att ge önskade tjänster? Vilka operationer måste finnas i objekten? interaktion mellan Objekt - Tillstånd - Operationer Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
25
Objektorienterad programmering d2
Objektorienterad bankomatdesign Styrenhet Sedel- utmatare Skrivare Central- dator Tangent- bord Display Luck- motor lås Upp Ner TangentHändelse Meddelande KopplaNer KopplaUpp MinskaSaldo SedlarSlut VerifieraKort SkrivKvitto MataUtSedlar LäsTangent KortInmatat MataUtKort Öppna Stäng Kort- enhet Objektorienterad programmering, DAT050, DAI2, 16/17, lp 1 DAT050, 16/17, lp 2
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.