Lista luokan sisällä

Samankaltaiset tiedostot
Listarakenne (ArrayList-luokka)

YHTEYSSUHDE (assosiation)

public static void main (String [] args)

Rajapinta (interface)

Luokan muodostimet (Constructors)

Olio-ohjelmointi Javalla

Metodien tekeminen Javalla

Periytyminen (inheritance)

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

Mikä yhteyssuhde on?

KOHDELUOKAN MÄÄRITTELY

Vahva koostumussuhde (Composition)

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

Taulukoiden käsittely Javalla

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

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)

Java-kielen perusteita

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

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Java-kielen perusteita

Ehto- ja toistolauseet

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

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

Ohjelmoinnin jatkokurssi, kurssikoe

Metodien tekeminen Javalla

Poikkeustenkäsittely

Mitä poikkeuskäsittely tarkoittaa?

Luokan sisällä on lista

Ohjelmointityö 3. Mikko Laamanen

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Tietokannat II -kurssin harjoitustyö

11. Javan valintarakenteet 11.1

Java kahdessa tunnissa. Jyry Suvilehto

11. Javan valintarakenteet 11.1

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

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 )

Java-kielen perusteita

14. Poikkeukset 14.1

1 Tehtävän kuvaus ja analysointi

Javan GUI Scratchaajalle

14. Poikkeukset 14.1

UML ja luokkien väliset suhteet

Ohjelmoinnin perusteet, kurssikoe

Javan perusteita. Janne Käki

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 2 / 2010 Välikoe / 26.3

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

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

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

Ohjelmistotekniikan menetelmät, koe

Java-kielen perusteet

Merkkien ja merkkijonojen käsittelyä Javalla

Ohjelmointi 2, välikoe

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

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

1. Mitä tehdään ensiksi?

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

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

Luokat ja oliot. Ville Sundberg

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

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

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

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

TIETORAKENTEET JA ALGORITMIT

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

OHJ2k12 välikoe

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

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Java-kielen perusteet

Tietorakenteet, laskuharjoitus 7,

C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PP1\TokaPisin.cs 1 using System; 2 using System.Collections.Generic; 3 using System.

7. Näytölle tulostaminen 7.1

2. Olio-ohjelmoinista lyhyesti 2.1

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

Interaktiivinen tarinankerronta

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

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

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

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

7. Oliot ja viitteet 7.1

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

9. Periytyminen Javassa 9.1

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

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

19. Olio-ohjelmointia Javalla 19.1

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

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

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

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

Muuttujat ja kontrolli. Ville Sundberg

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

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

20. Javan omat luokat 20.1

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

ITKP102 Ohjelmointi 1 (6 op)

Transkriptio:

Lista luokan sisällä Luokan sisällä on lista Joukkue-luokka, joka sisältää listän joukkueen pelaajista Pelaaja Joukkueen metodit, jotka käyttävät listaa Ohjelmaluokka

Luokan sisällä on lista Tarkoitta sitä, että luokan attribuuttina on lista ja luokka lisää, poistaa ja muuttaa listan sisältöä Kun luokan olio luodaan, luokan muodostin luo myös listan Kun olio tuhoutuu, tuhoutuu myös lista Esim. Joukkue luokan sisällä on lista pelaajat, joka sisältää joukkueen Pelaaja-oliot Joukkue-luokan muodostin luo pelaajat lista-olion 2

Joukkue-luokka, joka sisältää listan joukkueen pelaajista public class Joukkue { private String nimi; private int perustamisvuosi; private List<Pelaaja> pelaajat; public Joukkue() { nimi = null; perustamisvuosi = 0; pelaajat = new ArrayList<Pelaaja>(); public Joukkue(String nimi, int vuosi){ this.nimi = nimi; perustamisvuosi = vuosi; pelaajat = new ArrayList<Pelaaja>(); 3

Pelaaja public class Pelaaja { private int numero; private String etunimi; private String sukunimi; private String puh; public Pelaaja() { numero = 0; etunimi= sukunimi = null; public Pelaaja(int numero, String etunimi, String sukunimi, String puh) { this.numero = numero; this.etunimi = etunimi; this.sukunimi = sukunimi; this.puh = puh; Pelaaja-luokalla on normaalit get- ja setattribuutti metodit sekä tostring()- metodi. 4

Joukkueen metodit, jotka käyttävät listaa //vaihtaa pelaajan kohdassa i public void setpelaaja ( int i, Pelaaja pelaaja) { if (pelaaja!= null && i >= 0 && i < pelaajat.size()) { pelaajat.set (i, pelaaja); // lisää Pelaajan listan loppuun public void addpelaaja(pelaaja pelaaja){ if (pelaaja!= null) pelaajat.add(pelaaja); // palauttaa pelaajan kohdassa i public Pelaaja getpelaaja (int i) { Pelaaja paluu = null; if (i >= 0 && i < pelaajat.size()) paluu = pelaajat.get(i); return paluu; 5

Joukkueen metodit, jotka käyttävät listaa // poistaa pelaajan kohdasta i public Pelaaja removepelaaja(int i) { Pelaaja pelaaja = null; if ( i >= 0 && i <pelaajat.size()) { pelaaja = pelaajat.remove(i); return pelaaja; 6

Joukkueen metodit, jotka käyttävät listaa // tulostaa joukkueen public String tostring(){ String paluu= "Joukkue: " + nimi + " perustamisvuosi: " + perustamisvuosi; if (pelaajat.isempty() == false) { paluu = paluu + "\npelaajat:"; for (int i = 0;i <pelaajat.size();i++) paluu = paluu + "\n" + pelaajat.get(i).tostring(); return paluu; 7

Ohjelmaluokka public class JoukkueOhjelma { private Scanner input; private Joukkue joukkue; // ohjelma käsittelee yhtä joukkuetta public JoukkueOhjelma() { input = new Scanner(System.in); joukkue = null; public static void main(string[] args) { JoukkueOhjelma ohj = new JoukkueOhjelma(); ohj.aja(); 8

Ohjelmaluokka jatkuu public void aja() { int valinta = -1; do { System.out.println("1) lisää joukkue"); System.out.println("2) lisää joukkueeseen pelaaja"); System.out.println("3) etsi joukkueen pelaaja"); System.out.println("4) poista joukkueen pelaaja"); System.out.println("5) tulosta joukkue"); System.out.println("0) lopeta"); System.out.print("Valitse: "); valinta = input.nextint(); input.nextline(); // tyhjennä syöttöpuskuri switch (valinta) { case 0: break; case 1: lisaajoukkue(); break; case 2: lisaapelaaja(); break; case 3: etsipelaaja(); break; case 4: poistapelaaja(); break; case 5: tulostajoukkue(); while (valinta!= 0); 9

Ohjelmaluokka jatkuu private void lisaajoukkue() { if (joukkue!= null) { System.out.println("olet jo lisännyt joukkueen"); else { String nimi; int vuosi; System.out.print("Anna joukkueen nimi: "); nimi = input.nextline(); System.out.print("Anna joukkueen perustamisvuosi:"); vuosi = input.nextint(); joukkue = new Joukkue(nimi, vuosi); // luo Joukkue-olio 10

Ohjelmaluokka jatkuu private void lisaapelaaja() { int numero; String etu, suku, puh; Pelaaja pelaaja; if (joukkue!= null) { System.out.print("Anna pelaajan numero: "); numero = input.nextint(); pelaaja = etsipelaaja(numero); // etsi pelaaja if (pelaaja == null) { System.out.println("Anna pelaajan etunimi sukunimi: "); etu = input.next(); suku = input.next(); System.out.println("Anna pelaajan puhelinnumero:"); puh = input.next(); pelaaja = new Pelaaja(numero, etu, suku, puh); joukkue.addpelaaja(pelaaja); // vie Pelaaja joukkueeseen else { // pelaaja on jo lisätty System.out.println("Numerolla " + numero + " on jo pelaaja " + pelaaja.tostring()); // tutkii onko annettu pelaajan numero jo varattu else System.out.println("Ei joukkuetta ei pelaajaa!"); 11

Ohjelmaluokka jatkuu // etsii pelaajan, jonka numero on sama kuin parametrin nro arvo private Pelaaja etsipelaaja(int nro) { Pelaaja pelaaja = null, paluu = null; int i = 0; pelaaja = joukkue.getpelaaja(i); while (pelaaja!= null) { if (nro == pelaaja.getnumero()) { paluu = pelaaja; break; // ulos silmukasta i++; pelaaja = joukkue.getpelaaja(i); return paluu; 12

Ohjelmaluokka jatkuu private void etsipelaaja() { String etu, suku; // etsitään pelaajat nimen perusteella Pelaaja pelaaja; int i = 0; if (joukkue!= null) { System.out.print("Anna pelaaja etunimi ja sukunimi: "); etu = input.next(); suku = input.next(); pelaaja = joukkue.getpelaaja(i); while (pelaaja!= null) { if (etu.equalsignorecase(pelaaja.getetunimi()) && suku.equalsignorecase(pelaaja.getsukunimi())) { System.out.println(pelaaja.toString()); i++; pelaaja = joukkue.getpelaaja(i); 13

Ohjelmaluokka jatkuu private void poistapelaaja() { int nro; Pelaaja pelaaja; int i = 0; if (joukkue!= null) { System.out.print("Anna pelaajan numero: "); nro = input.nextint(); pelaaja = joukkue.getpelaaja(i); // etsi pelaaja while (pelaaja!= null && pelaaja.getnumero()!= nro) { i++; pelaaja = joukkue.getpelaaja(i); if (pelaaja!= null){ // pelaaja löytyi pelaaja = joukkue.removepelaaja(i); // pyytä poistettavan Pelaajan numeron, etsii sen ja poistaa System.out.println("poistetaan pelaaja " + pelaaja.tostring()); 14

Ohjelmaluokka jatkuu private void tulostajoukkue() { if (joukkue!= null) System.out.println(joukkue); 15