Luokat ja oliot. Ville Sundberg

Samankaltaiset tiedostot
Mikä yhteyssuhde on?

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Javan perusteita. Janne Käki

Olio-ohjelmointi Javalla

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Metodien tekeminen Javalla

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

9. Periytyminen Javassa 9.1

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

1 Tehtävän kuvaus ja analysointi

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjelmointi 2 / 2010 Välikoe / 26.3

1. Omat operaatiot 1.1

Periytyminen (inheritance)

4. Luokan testaus ja käyttö olion kautta 4.1

19. Olio-ohjelmointia Javalla 19.1

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

7. Näytölle tulostaminen 7.1

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

9. Periytyminen Javassa 9.1

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Tietokannat II -kurssin harjoitustyö

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

5. HelloWorld-ohjelma 5.1

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Luokan sisällä on lista

Ohjelmointi 2, välikoe

1. Olio-ohjelmointi 1.1

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Rajapinta (interface)

public static void main (String [] args)

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Java-kielen perusteet

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Aalto Yliopisto T Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Ohjelmistojen mallintaminen, sekvenssikaaviot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

YHTEYSSUHDE (assosiation)

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

5. HelloWorld-ohjelma 5.1

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Metodien tekeminen Javalla

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

2. Olio-ohjelmoinista lyhyesti 2.1

Java kahdessa tunnissa. Jyry Suvilehto

Sisältö. 22. Taulukot. Yleistä. Yleistä

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

KOHDELUOKAN MÄÄRITTELY

Oliot viestivät metodeja kutsuen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

8. Näppäimistöltä lukeminen 8.1

12. Näppäimistöltä lukeminen 12.1

812347A Olio-ohjelmointi, X Reflektiivisyys

7. Oliot ja viitteet 7.1

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

Listarakenne (ArrayList-luokka)

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Muuttujat ja kontrolli. Ville Sundberg

16. Javan omat luokat 16.1

Olio-ohjelmointi Virhetilanteiden käsittely

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Javan GUI Scratchaajalle

Sisältö. 2. Taulukot. Yleistä. Yleistä

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet, 1. välikoe

4. Olio-ohjelmoinista lyhyesti 4.1

TyontekijaOhjelma. +main() (käyttää) + = public - = private

Lista luokan sisällä

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

UML ja luokkien väliset suhteet

Ohjelmointi 2 / 2011 Välikoe / 25.3

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

58131 Tietorakenteet ja algoritmit (syksy 2015)

8. Näppäimistöltä lukeminen 8.1

Pakkauksen kokoaminen

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Interaktiivinen tarinankerronta

ITKP102 Ohjelmointi 1 (6 op)

Transkriptio:

Luokat ja oliot Ville Sundberg 12.9.2007

Maailma on täynnä olioita

Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й

Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi puolta Olioon liittyvä tieto eli attribuutit Olioon liittyvä toiminnallisuus eli metodit Oliot sijaitsevat tietokoneen muistissa ohjelman suorituksen aikana

Miksi tietokoneohjelmia on? -Jokaisella on tehtävä

Myös jokaisella oliolla on oma tehtävänsä

Kuva: http://www.dailyclipart.net Kukkia Brasiliaan?

Mihin olioita tarvitaan? Σ Μ υ φ Ο ω ς Ϊ ψ Є χ Φ Θ Љ Ύ Й

Olio kuuluu luokkaan... Jaakko on Kukkakauppias Olio Luokka...toisin sanoen: Olio on luokan ilmentymä.

Luokilla on yläluokkia Ihminen Kauppias Opettaja Taiteilija Kukkakauppias Lihakauppias Kemianopettaja Kirjailija Näyttelijä Jaakko

Tarkennus: olio kuuluu luokkaan... Ihminen Jaakko Kukkakauppias...ja kaikkiin sen yläluokkiin!

Luokka: olion piirustukset Luokassa määritellään ominaisuudet eli attribuutit taidot eli metodit Kauppias Ominaisuudet Nimi Kaupan osoite Taidot Osaa myydä

Olio: valmis talo Kauppias Jaakko Pedro Ominaisuudet Nimi: Jaakko Kaupan osoite: Merenkäynti 5 Taidot Osaa myydä Ominaisuudet Nimi: Pedro Kaupan osoite: Rio Branco 42 Taidot Osaa myydä

Java-luokka käytännössä.java-tiedosto Luokka Attribuutit Metodit

Pintaa syvemmältä Jaakko Ominaisuudet Nimi: Jaakko Kaupan osoite: Merenkäynti 5 Mitä nämä ovat? Taidot Osaa myydä

Yksinkertainen luokka class Ihminen { String nimi; String annanimi() { return nimi; Tämä on luokka (class). Luokan nimi on Ihminen. Joka ihmisellä on nimi. Nimi on merkkijono, Javassa String. Ihminen osaa kertoa nimensä. Luokka alkaa aaltosulkeesta ja päättyy sellaiseen.

Metodi String annanimi() { return nimi; Kun tätä metodia kutsutaan, se palauttaa jonkin merkkijonon (String). Metodin nimi on annanimi. Metodia voi kutsua vain yhdellä tavalla ilman parametreja. Metodi palauttaa ihmisen nimen. Metodi alkaa aaltosulkeesta ja päättyy sellaiseen.

Konstruktori class Ihminen { String nimi; Ihminen(String s) { nimi = s; String annanimi() { return nimi; Metodi, jonka nimi on sama kuin luokan nimi, on konstruktori. Metodille annetaan parametrina jokin merkkijono, jota merkitään tunnuksella s. Ihminen saa nimekseen merkkijonon s.

Pääohjelmametodi class Ihminen { String nimi; Ihminen(String s) { nimi = s; String annanimi() { return nimi; public static void main(string[] args) { Ihminen joku = new Ihminen( Jaakko ); Metodi, jolla on täsmälleen nämä määreet, on pääohjelmametodi. Luodaan uusi ihmisolio, jonka nimi on Jaakko...... ja tallennetaan se muuttujaan, jonka nimi on joku.

Metodin kutsuminen public static void main(string[] args) { Ohjelman suoritus alkaa pääohjelmametodista ja jatkuu rivi kerrallaan. Ihminen joku = new Ihminen( Jaakko ); String jonkunnimi = joku.annanimi(); Metodin kutsuminen siirtää suorituksen kutsuttuun metodiin, mistä suoritus palaa metodin päätyttyä. Tässä kutsutaan ihmisen konstruktoria. Tässä taas annanimi-metodia. Piste toimii erotinmerkkinä.

Tulostaminen public static void main(string[] args) { Ihminen joku = new Ihminen( Jaakko ); Tähän saakka ohjelman suoritus on ollut näkymätöntä. System.out on Java-olio, joka osaa kirjoittaa tekstikonsoliin. String jonkunnimi = joku.annanimi(); System.out.println(jonkunNimi); Metodi println (print line) kirjoittaa konsoliin rivin. println ottaa parametrina jonkin, minkä tahansa, merkkijonon.

Toimiva ohjelma class Ihminen { String nimi; Ihminen(String s) { nimi = s; Mitä ohjelmamme tulostaa? Ohjelma toimii, mutta tavallaan se ei ole vielä valmis. String annanimi() { return nimi; public static void main(string[] args) { Ihminen joku = new Ihminen( Jaakko ); String jonkunnimi = joku.annanimi(); System.out.println(jonkunNimi);

Näkyvyysmääreet public class Ihminen { Näkyvyysmääre ilmoittaa, kenellä on oikeus käyttää oliota tai sen osaa. private String nimi; public String annanimi() { return nimi; Tätä luokkaa saa käyttää kuka tahansa. Ihmisen nimen näkee vain ihmisolio itse (ja vain ihminen itse voi muuttaa sitä) Tätä metodia voi käyttää kuka tahansa. Nyrkkisääntö: Luokat ovat julkisia. Attribuutit ovat yksityisiä. Metodit ovat julkisia, jos ne tuottavat ulkopuolelle jonkin palvelun.

Tehtävä: essee Aihe: luokat ja oliot Javassa Deadline 22.9. klo 18 Kirjoittakaa huolella ja muistakaa lähdeviitteet! http://www2.cs.hut.fi/~studio1/tehtavat/essee_cmap_1