Luokan sisällä on lista



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

Olio-ohjelmointi Javalla

Mikä yhteyssuhde on?

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

Periytyminen (inheritance)

Listarakenne (ArrayList-luokka)

Vahva koostumussuhde (Composition)

YHTEYSSUHDE (assosiation)

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

Metodien tekeminen Javalla

public static void main (String [] args)

Rajapinta (interface)

Ohjelmoinnin jatkokurssi, kurssikoe

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

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

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

1 Tehtävän kuvaus ja analysointi

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Ohjelmointi 2 / 2010 Välikoe / 26.3

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Ohjelmoinnin perusteet, kurssikoe

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

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++?

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

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

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

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

KOHDELUOKAN MÄÄRITTELY

UML ja luokkien väliset suhteet

7. Oliot ja viitteet 7.1

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

Lista luokan sisällä

Oliot viestivät metodeja kutsuen

Java kahdessa tunnissa. Jyry Suvilehto

Testivetoinen ohjelmistokehitys

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

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

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

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

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

Metodien tekeminen Javalla

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

Luokat ja oliot. Ville Sundberg

Luokan muodostimet (Constructors)

16. Javan omat luokat 16.1

Olio-ohjelmointi Syntaksikokoelma

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Poikkeustenkäsittely

20. Javan omat luokat 20.1

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

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

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

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

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

Ehto- ja toistolauseet

Javan GUI Scratchaajalle

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

Java-kielen perusteet

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2

7. Näytölle tulostaminen 7.1

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

Javan perusteita. Janne Käki

Rinnakkaisohjelmointi, Syksy 2006

Javan GUI Scratchaajalle

9. Periytyminen Javassa 9.1

TIETORAKENTEET JA ALGORITMIT

17. Javan omat luokat 17.1

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

9. Periytyminen Javassa 9.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 )

19. Olio-ohjelmointia Javalla 19.1

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

Projekti 1 Säikeet ja kriittisen vaiheen kontrollointi javalla

Java-API, rajapinnat, poikkeukset, UML,...

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

1. Omat operaatiot 1.1

14. Poikkeukset 14.1

ITKP102 Ohjelmointi 1 (6 op)

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Java ja tietokannan käsittely (JDBC)

Ohjelmointi 2, välikoe

14. Poikkeukset 14.1

Tietorakenteet, laskuharjoitus 7,

Olio-ohjelmointi Käyttöliittymä

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Ohjelmoinnin perusteet Y Python

Tietokannat II -kurssin harjoitustyö

11. Javan valintarakenteet 11.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

2. Olio-ohjelmoinista lyhyesti 2.1

Taulukoiden käsittely Javalla

18. Abstraktit tietotyypit 18.1

13. Loogiset operaatiot 13.1

Ohjelmointi 2 / 2011 Välikoe / 25.3

Olio-ohjelmointi 2. välikoe HYV5SN

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

13. Loogiset operaatiot 13.1

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

Transkriptio:

1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä lista tarkoitetaan sitä, että luokan sisällä on lista. Luokka lisää, poistaa ja muuttaa listan sisältöä. Kun luokasta tehdään olio samalla tehdään myös tyhjä lista. Kun olio tuhoutuu, samalla tuhoutuu myös sen sisällä oleva lista. Esimerkiksi Tili-luokan sisällä on lista Tilitapahtuma-luokan olioita Tili-luokan muodostin voi lisätä Tilitapahtuma-luokan olio listaan otto ja pano lisää Tilitapahtuma-luokan olion listaan Tili-luokasta listaa käsitellään List-luokan metodeilla. Listan sisässä olevaa Tilitapahtuma-luokan oliota käsitellään Tilitapahtuma-luokan metodeilla. 2

2 public class Tili { private String ; private double ; Listan sisältävä luokka Tili-luokassa on lista Tilitapahtumaluokan olioita listan alustaminen private List<Tilitapahtuma> = new ArrayList <Tilitapahtuma>(); Esimerkki Tili-luokan oliosta, kun listaan on laitettu tapahtumia eli tilille on tullut tapahtumia Fi65123 4 200.0 300-100 3 import java.util.arraylist; import java.util.list; Konstruktorit public class Tili { Luodaan ja alustetaan lista private List<Tilitapahtuma> = new ArrayList <Tilitapahtuma>(); public Tili() { Listalle ei tehdä mitään, koska ei ole tapahtumaa Luodaan Tilitapahtuma-luokan olio Tilitapahtumaluokan parametrillisella konstruktorilla public Tili(String, double ) { Tilitapahtuma tilitapahtuma = new Tilitapahtuma();.add(tilitapahtuma); Lisätään luotu olio listaan List-luokan add-metodilla 4

3 public class Tilitapahtuma { private Date ; private double ; public Tilitapahtuma() { = new Date(); = 0.0; public Tilitapahtuma(double ) { = new Date(); this. = ; // get-, set- ja tostring-metodit puuttuvat tästä kalvosta 5 Parametriton konstruktori ei tee tilitapahtumaa Tili tili = new Tili(); tili 0 Parametrillinen konstruktori tekee tilitapahtuman Tili tili = new Tili("Fi65123", 200.0); tili Fi65123 200.0 200 6

4 get-metodi Luokkaan tehdään metodi listan saamista varten (getxx ). Luokkaan ei tehdä set-metodia, koska koko listaa ei korvata luokassa. public class Tili { private List<Tilitapahtuma> = new ArrayList <Tilitapahtuma>(); public List<Tilitapahtuma> gettilitapahtumat() { return ; palauttaa viitteen listaan Tili tili = new Tili("Fi65123", 200.0); List<Tilitapahtuma> tapahtumalista = tili.gettilitapahtumat(); for (int i=0; i < tapahtumalista.size(); i++) { Tilitapahtuma tilitapah=tapahtumalista.get(i); System.out.println(tilitapah.toString()); listaa käytetään Listluokan metodeilla listasta haettua oliota käsitellään Tilitapahtuma-luokan metodeilla 7 Lista muissa metodeissa luodaan Tilitapahtuma-luokan olio Tilitapahtuma-luokan parametrillisella konstruktorilla public void pano(double ) { = + ; Tilitapahtuma tilitapahtuma = new Tilitapahtuma();.add(tilitapahtuma); lisätään listaan viite luotuun olioon List-luokan add-metodilla public boolean otto(double ) { if ( >= ) { oton vuoksi on negatiivinen = - ; Tilitapahtuma tilitapahtuma = new Tilitapahtuma(-);.add(tilitapahtuma); return true; else { return false; 8

5 Tili tili = new Tili("Fi65123", 200.0); tili.otto(-100); tili Fi65123 100.0 200-100 9 addxx-metodi Luokkaan voidaan koodata metodi, millä luokan sisässä olevaan listaan voidaan laittaa tietoa. public void addtilitapahtuma(tilitapahtuma tilitap) { Tilitapahtuma uusi=new Tilitapahtuma(tilitap.getTapahtumapaiva(), tilitap.getmaara());.add(uusi); tehdään kopio parametrina tulleesta oliosta lisätään metodissa luotu olio (kopio parametrina tulleesta oliosta) luokan sisässä olevaan listaan List-luokan addmetodilla Huom. tätä metodia ei kannattaisi koodata tässä luokassa, koska tilille ei voida tehdä pelkkää tilitapahtumaa 10

6 Yksinkertainen pääohjelma public static void main(string[] args) { Tili tili = new Tili("Fi65123", 200); tili.otto(-100); List<Tilitapahtuma> tapahtumalista = tili.gettilitapahtumat(); for (int i=0; i < tapahtumalista.size(); i++) { Tilitapahtuma tilitapahtuma = tapahtumalista.get(i); System.out.println(tilitapahtuma.toString()); 11 Kertauksena List-luokan metodeja List-luokan metodi Luokka get(int index) boolean add(luokka olio) Luokka remove(int index) boolean remove(luokka olio) int size() Selitys Palautetaan listasta viite indexillä i olevaan olioon. Indeksointi alkaa nollasta (0) Lisätään listan loppuun viite parametrina annettuun olioon. Palauttaa true, jos lisäys onnistui Poistetaan listasta viite indexillä i olevaan olio. Palauttaa poistetun olioon Poistetaan listasta viite parametrina olevaan olioon. Palauttaa true, jos olio poistettiin Palautta listassa olevien viitteiden määrän 12