Eli ohjelma, jossa kysytään ikää, etunimeä ja sukunimeä. Iän, etunimen ja sukunimen kysymiset omassa luokassa. Tuolta ne pitäisi saada Henkilö-oliolle. Henkilö olion tiedot pitäisi tallettaa tiedostoon ja sitten lukea tiedosto (C:\..) ja tulostaa tiedot näytölle.
Eli näin olen lähtenyt kehittämään:
---ALKAA----
import java.util.Scanner;
import java.io.*;
public class HarjoitusHenkilot {
private static final Scanner lukija = new Scanner(System.in);
public class Henkilotiedot implements Serializable{
int ika;
String etunimi;
String sukunimi;
}
public static void main(String[] args) {
TietojenSyottaminen henkilotietojensyotto;
henkilotietojensyotto=new TietojenSyottaminen();
int ika=henkilotietojensyotto.KysyIka();
String etunimi=henkilotietojensyotto.KysyEtuNimi();
String sukunimi=henkilotietojensyotto.KysySukuNimi();
System.out.println("\nIka: " ika);
System.out.println("Etunimi: " etunimi);
System.out.println("Sukunimi: " sukunimi);
}
---TÄHÄN LOPPUU NYT-------
Nuo KysyIka ym. on omassa luokassa nimeltä TietojenSyottaminen ja se toimii eli kysymykset tulee ja voin siihen syöttää
Miten nuo tiedot saan tuonne Henkilotiedot -olioon? Onhan tuo muuten olio?
seuraavaan ongelmaan apuja
4
364
Vastaukset
- jo--
Ensin pitää luoda olio jotta olioon voisi siirtää jotain. Olion luonti tapahtuu new käskyllä, jossa new sanan jälkeen kerrotaan olion luokkan nimi. Esim. seuravaasti.
--- ALKAA ---
System.out.println("\nIka: " ika);
System.out.println("Etunimi: " etunimi);
System.out.println("Sukunimi: " sukunimi);
Henkilotiedot henkio = new Henkilotiedot();
henkio.ika = ika;
henkio.etunimi = etunimi;
henkio.sukunimi = sukunimi;
--- LOPPUU ---
Tuo yllä oleva esimerkki toimii vain, jos tuo esimerkkisi Henkilotiedot luokka on siirrettynä omaan "Henkilotiedot.java" -tiedostoon. Tuon esimerkkisi kaltaisia sisäkkäisiä luokka rakenteita ei muutoinkaan kanatta luoda ellei siihen näe jotain erittäin hyvää syytä tai tarvetta, eli kaikki luokat kannattaa tehdä omiin tiedostoihinsa.- tiedostoon luokan
olenkin aikaisemmin tehnyt erilliseen tiedostoon luokan, mutta oli eräässä esimerkissä samassa niin kokeilin sitten myös samassa.
- fidel1
tiedostoon luokan kirjoitti:
olenkin aikaisemmin tehnyt erilliseen tiedostoon luokan, mutta oli eräässä esimerkissä samassa niin kokeilin sitten myös samassa.
Yhdessä käännösyksikössä, eli java-tiedostossa voi olla vain yksi public:ksi määritelty luokka ja sen pitää olla samanniminen kuin java-tiedosto. Muita luokkia voi sitten olla kuinka monta vain.
- tuo
Suosittelen että luot HarjoitusHenkilöt-luokkaan get- ja set-metodit jokaiselle muuttujalle. Esimerkiksi public void setIka(int ika){this.ika = ika;} ja public int getIka(){return this.ika;}
Tämän jälkeen voit käyttää HarjoitusHenkilöt luokaa seuraavasti: HarjoitusHenkilö hh = new HarjoitusHenkilö(); hh.setIka(henkilotietojensyotto.KysyIka());
System.out.println("\n Ika :" hh.getIka());
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 1017453
Siekkilässä ajettu ihmisten yli- mitä tapahtui? Länsi-Savo ei ole uutisoinut asiata
Manneja, vaiko matuja?835082- 794879
- 1324278
Alavuden sairaala
Säästääkö Alavuden sairaala sähkössä. Kävin Sunnuntaina vast. otolla. Odotushuone ja käytävä jolla lääkäri otti vastaan103068- 522709
- 402616
- 532257
Törkeää toimintaa
Todella törkeitä kaheleita niitä on Ylivieskassakin. https://www.ess.fi/uutissuomalainen/8570818102231Suudeltiin unessa viime yönä
Oltiin jossain rannalla jonkun avolava auton lavalla, jossa oli patja ja peitto. Uni päättyi, kun kömmit viereeni tähtit211850