Olio-ohjelmointi Olio-ohjelmoinnissa keskeisiä käsitteitä ovat luokka ja olio. Olio on abstraktio jostakin ongelma- tai ratkaisualueen käsitteestä. Oliolla.

Slides:



Advertisements
Samankaltaiset esitykset
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Advertisements

1 Sektorin nimi. 2 Reading times of magazines NRS Finland 2012.
Muutamia käsitteitätMyn1 Muutamia käsitteitä •Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan,
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
ohje kuunteluanalyysiin
Arkkitehtuuri-suunnittelu
Development Association SEPRA How to involve youth into strategic rural development work? Budapest, 8th November 2011 Euroopan maaseudun kehittämisen maatalousrahasto:
Suomalaisia perinneleikkejä
A solution for flexible bicycle transportation
OLIO-OHJELMOINTI PERUSTEET PERUSTIETOTYYPIT
1 Sektorin nimi. 2 Reading times of magazines NRS Finland 2011.
Luokan muodostintMyn1 Luokan muodostin Olioihin kohdistuvia automaattisia toimintoja ovat luonti, alustus, kopiointi, sijoitus, tyhjennys ja tuhoaminen.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
Laadukkaita palveluja vaivattomasti Pohjois-Pohjanmaan maistraatti Oulun yksikkö Registration of foreign citizens.
Today’s Special ENA5 Fall älä jaa sanoja otsikon numero (älä muuta otsikkoa) sanamäärä ei saa ylittyä liikaa! sanaston monipuolisuus! ajattelun.
Johdetun luokan olion esittely... tMyn1 Johdetun luokan olion esittely ja määrittely Esittelyluokka tarkoittaa olion tunnuksen luokkaa. Määrittelyluokka.
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
Today’s Special ENA5 Spring 2015 kirjoita paperiin nimesi kirjoita nimesi oikein älä jaa sanoja otsikon numero on oltava (älä muuta otsikkoa) kirjoita.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Irmeli Sinkkonen TkL, tutkija
Kantaluokan määrittely tMyn1 Kantaluokan määrittely Perinnän käyttöön liittyvät varatut sanat private, protected, public, final ja abstract. Ne tarkoittavat.
International pages?. Comments yhteystiedot / contact –information ei resursseja kaiken kääntämiseen – linkit vastuuhenkilöille / no enough resources.
Cisco Networking Academy Program CCNP ROUTE: Implementing IP Routing
Today’s Special Päivän pannu ENA otsikon numero on oltava; jos kirjoitat myös otsikon, sitä ei saa muuttaa älä koskaan kirjoita marginaaliin.
ENG Masters, part 2, Citing
Fiksu Opiskelija. Opetusaineisto jätteen synnyn ehkäisystä HSY Jätehuolto. Thoughts about Good Life Collected by Tuovi Kurttio, Pääkaupunkiseudun.
SoberIT Ohjelmistoliiketoiminnan ja –tuotannon instituutti TEKNILLINEN KORKEAKOULU T Käyttöliittymien ja käytettävyyden seminaari Kontekstiherkkyydestä.
INFRA ry Vastuuhenkilö Eija Ehrukainen Ottaa käsiteltäväkseen myös asfalttialan ympäristöasiat Seurataan, vaikutetaan ja ohjeistetaan: Lainsäädännön muutokset.
Genetics Dihybrid Crosses.
Prosessiongelmien analysointi- ja ratkaisupohjia Qualitas Fennica Oy Työkaluja | Qualitas Fennica Oy.
Ohjelmistotekniikka Vaatimustenhallinta Kevät 2002 Päivi Ovaska LTKK/Tite.
Esityksen nimi Esityksen pitäjä / organisaatio tilaisuus, päivämäärä TFEIP 12 May 2015 Use of Point Source Data in the Emission Inventory Example Finland.
CAF eTool Rekisteröitymisen kautta maksutta käyttöön Kansallinen laatuhanke /TjV 1.
Toiminta-arkkitehtuurin palvelut Outi Tasala
Olio-ohjelmointi Olio-ohjelmoinnissa keskeisiä käsitteitä ovat luokka ja olio. Olio on abstraktio jostakin ongelma- tai ratkaisualueen käsitteestä. Oliolla.
Reports in Apply / eAge system
Kehittää skenaarioita tulevaisuuden oppimaisemista ja niiden mahdollisista vaikutuksista koulutukseen kansallisesti ja yleiseurooppalaisesti. Toimii ideapajana.
Edustajiston kokous 10/2016 Council meeting 10/2016
Words of quantity Open Road 6 pp
Poikkeustenkäsittelylohkot try-catch
RELATIIVI- JA INDEFINIITTIPRONOMINIT
How should I ask my questions?
MyData – asiakas keskiöön
YLIOPISTOTENTTI / UNIVERSITY EXAM
Kantaluokan määrittely
vedestä, ilmasta ja tulesta.
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Kantaluokan määrittely
Tulevaisuussuunnitelma Osa 3
Introduction to decision analysis
Risk analysis, risk attitudes
Muutamia käsitteitä Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass,
Vesikemian Professori
Probability models and decision analysis
Probability models and decision analysis : introduction
Probability models and decision analysis : introduction
Hierarchical models Biotieteellinen tiedekunta / Henkilön nimi / Esityksen nimi
DIC and BMA in BUGS Biotieteellinen tiedekunta / Henkilön nimi / Esityksen nimi
Probability models and decision analysis
Introduction to decision analysis
vedestä, ilmasta ja tulesta.
vedestä, ilmasta ja tulesta.
vedestä, ilmasta ja tulesta.
SALASSAPITOSOPIMUS NON-DISCLOSURE AGREEMENT
X-ROAD ENVIRONMENTAL MONITORING
Implementing a System for Intentional Concurrency in Jikes RVM
Information for teachers
Lecture slides start on the next page.
Kari Systä Tampere University of Technology / Software Systems
Esityksen transkriptio:

Olio-ohjelmointi Olio-ohjelmoinnissa keskeisiä käsitteitä ovat luokka ja olio. Olio on abstraktio jostakin ongelma- tai ratkaisualueen käsitteestä. Oliolla on identiteetti (identity), joka erottaa sen kaikista muista olioista. Oliolla on tila (state), joka muodostuu olion tietojäsenten (data member, attribute) arvoista. Olio-ohjelmointi tMyn

Oliolla on käyttäytyminen (behaviour), joka määrää miten olio toimii ja reagoi tilamuutoksiin ja vuorovaikuttaa muiden olioiden kanssa vastineena saamiinsa palvelupyyntöihin. Olion rajapinta (interface) koostuu jäsenfunktioista (member function, method). Luokka on keskenään samankaltaisten olioiden - samat tietojäsenet, yhteydet ja palvelut sekä semantiikka eli merkitys - määrittely. Luokka määrittelee ne yhteiset ominaisuudet, jotka kaikilla sen jäsenillä, ilmentymillä, on. Olio-ohjelmointi tMyn

Pelkistäminen (abstraction) on yksi kompleksisuuden hallinnan perusmenetelmistä. Pelkistäminen on kulloisenkin tarkastelukulman kannalta oleellisen korostamista ja epäoleellisen unohtamista. Wikipedia: In computer science, abstraction is a mechanism and practice to reduce and factor out details so that one can focus on a few concepts at a time. Olio-ohjelmointi tMyn

Kapselointi (encapsulation) kätkee ja suojaa yksityisen sisäisen rakenteen ja toteutuksen paljastamalla muulle järjestelmälle ainoastaan julkisen liittymän. Kaikki kommunikointi tapahtuu ainoastaan julkisen liittymän kautta (jäsenfunktiot). Olio-ohjelmointi tMyn

Wikipedia: The term encapsulation is often used interchangeably with information hiding, while some make distinctions between the two. It seems that people, however, fail to agree on the distinctions between information hiding and encapsulation though one can think of information hiding as being the principle and encapsulation being the technique. A software module hides information by encapsulating the information into a module or other construct which presents an interface. Olio-ohjelmointi tMyn

Kapseloinnin perusidea, kuva 1. Kapselointi on pelkistämistä täydentävä mekanismi: kun pelkistäminen keskittyy tarkasteltavan olion ulospäin näkyvään käyttäytymiseen, keskittyy kapselointi sen sisäiseen toteutukseen. Kapselointi suojaa tietyllä abstraktiotasolla olevat asiat alempien abstraktiotasojen toteutuksen yksityiskohdilta. Pelkistäminen ja kapselointi yhdessä merkitsevät, että jokaisella luokalla on kaksi osaa: rajapinta (interface) ja toteutus (implementation). Kapseloinnin perusidea, kuva 1. Olio-ohjelmointi tMyn

Lainatili-luokka Olion tietojäsenet (data members) tase korkoprosentti laskekorko() Olion tietojäsenet (data members) määräävät olion tilan. Jokaisella luokan Lainatili oliolla on kaksi tietojäsentä ja yksi jäsenfunktio. Olion jäsenfunktiot (member functions) kertovat sen, mitä oliolla voi tehdä. Kuva 1. Kapselointi on ohjelmointitekniikka, joka määrää sekä ohjelmien modularisoinnin että tietojen ja toteutustavan piilotuksen periaatteet. Olio-ohjelmointi tMyn

Tiedon piilotuksen perusteet, kuva 2. Tiedon piilotuksella (data hiding) tarkoitetaan sitä, että luokassa määriteltyjä tietoja voi käsitellä vain kyseisessä luokassa määritellyillä jäsenfunktioilla. Olion tietojäseniä voi katsella tai muuttaa niiden arvoja vain olion jäsenfunktioiden kautta. Tämä on tärkeätä, koska näin varmistetaan olion eheys olio-ohjelmoinnin filosofia (= ei mahdollisuutta käsitellä olion tietojäseniä muuten kuin julkisen liittymän kautta) Tiedon piilotuksen perusteet, kuva 2. Olio-ohjelmointi tMyn

Lainatili-luokka Olion tietojäseniä ei tulisi voida käsitellä ulkoa päin tase korkoprosentti Olion tietojäsenet tulisi olla piilotettuja. Jäsenfunktio tarjoaa mahdollisuuden katsella tai muuttaa tietojäsenen arvoa. Olion jäsenfunktio tarjoaa hallitun tavan käsitellä tietojäseniä. laskeKorko() Kuva 2. Tiedon piilottaminen edesauttaa olion eheyden säilyttämisessä. Olio-ohjelmointi tMyn

Wikipedia: In computer science, the principle of information hiding is the hiding of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from change if the design decision is changed. Protecting a design decision involves providing a stable interface which shields the remainder of the program from the implementation (the details that are most likely to change). In modern programming languages, the principle of information hiding manifests itself in a number of ways, including encapsulation (given the separation of concerns) and polymorphism. Olio-ohjelmointi tMyn

Erikoistunut luokka saa sisältää vain lisää tietoa, ei vähempää. Yleistys (generalisation/specialization) on suhde yleisen ja erikoistuneen luokan välillä. Erikoistunut luokka saa sisältää vain lisää tietoa, ei vähempää. Erikoistuneen luokan ilmentymää voidaan käyttää koska tahansa silloin kun yleisempi luokka kelpaa. Erikoisempi luokka, jota kutsutaan johdetuksi luokaksi (subclass, derived class), perii (inherit, inheritance) yleiseltä luokalta eli kantaluokalta (superclass, base class) kaikki sen ominaisuudet. Yleistys kuvataan yhtenäisellä viivalla luokkien välillä, jonka kantaluokan puoleisessa päässä on ontto kolmio, kuva 3. Olio-ohjelmointi tMyn

Moottori siirrytään(d: suunta, s:nopeus) pysähdytään() annetaanStatus() Ohjausmoottori Päämoottori Kuva 3. Johdetut luokat perivät kaikki kantaluokan tietojäsenet ja jäsenfunktiot. Olio-ohjelmointi tMyn

Wikipedia: Inheritance is a way to form new classes using classes that have already been defined. The new classes, known as derived classes, take over (or inherit) attributes and behaviour of the pre-existing classes, which are referred to as base classes. It is intended to help reuse of existing code with little or no modification. Olio-ohjelmointi tMyn

Inheritance is also sometimes called generalization, because the is-a relationships represent a hierarchy between classes of objects. For instance, a "fruit" is a generalization of "apple", "orange", "mango" and many others. One can consider fruit to be an abstraction of apple, orange, etc. Conversely, since apples are fruit (i.e. an apple is-a fruit), apples may naturally inherit all the properties common to all fruit, such as being a fleshy container for the seed of a plant. Olio-ohjelmointi tMyn

One common reason to use inheritance is to create specializations of existing classes. In specialization, the new class has data or behavior aspects that are not part of the inherited class. For example, a "Bank Account" class might have data for an "account number", "owner", and "balance". An "Interest Bearing Account" class might inherit "Bank Account" and then add data for "interest rate" and "interest accrued" along with behavior for calculating interest earned. Olio-ohjelmointi tMyn

Abstrakti luokka on luokka, jolla ei voi olla olioita. Abstraktia luokkaa voidaan vain periä, sillä abstrakti luokka esittelee yhteisiä tietojäseniä ja jäsenfunktioita muille luokille. Yleistykselle määritelty rajoitus (constraint) antaa lisätietoa yleistyksen jatkokäytöstä. Seuraavat rajoitukset on määritelty valmiiksi yleistyksille, joihin liittyy useampi kuin yksi johdettu luokka: päällekkäinen (overlapping) erillinen (disjoint) täydellinen (complete) epätäydellinen (incomplete) Olio-ohjelmointi tMyn

Monimuotoisuus (polymorphism) tarkoittaa eri olioiden kykyä vastata samaan viestiin eri tuloksella. Monimuotoisuutta hyväksi käytettäessä olion käyttäytymistavan määrää olion määrittelyluokkaan toteutettu jäsenfunktio. Olio-ohjelmointi tMyn

Wikipedia: Polymorphism is the ability of objects belonging to different types (classes) to respond to method calls (member function calls) of methods of the same name, each one according to an appropriate type-specific behaviour. The programmer (and the program) does not have to know the exact type of the object in advance, so this behavior can be implemented at run time (this is called late binding or dynamic binding). Olio-ohjelmointi tMyn

In practical terms, polymorphism means that if class B inherits from class A, it doesn’t have to inherit everything about class A; it can do some of the things that class A does differently. This means that the same member function can result in different actions as appropriate for a specific class. Olio-ohjelmointi tMyn