en tunnu millään saavan seuraavaa koodia toimimaan.en vain tajua.
public class Vene { private String merkki; private int vuosimalli; private int hinta; public Vene(String merkki,int vuosimalli,int hinta){ this.merkki= merkki; this.vuosimalli = vuosimalli; this.hinta = hinta; } public void setMerkki(String merkki) { merkki = Buster; } public void setVuosimalli(int vuosimalli) { vuosimalli = 1999; } public void setHinta(int hinta) { hinta = 7800; } public String getMerkki(){ return merkki; } public int getHinta(){ return hinta; } public int getVuosimalli(){ return vuosimalli; } void tulosta() { System.out.println("Merkki: " + merkki + " vuosimalli: " + vuosimalli + "\n" + "hinta€:" + hinta); } public static void main(String[] args){ Auto Buster= new Auto(); Buster.merkki = this.merkki; Buster.vuosimalli = this.vuosimalli; Buster.hinta = this.hinta; Buster.tulosta(); } }
tos on paljon vikaa mut olis kiva ku joku näyttäis miten ton sais tulostaa noi tiedot
1. Otsikko
2. Kooditagit
3. Ois sitä voinu sanoa, mitä virheitä, ei kiinnosta itte ruveta kääntää.
Noh, pitäsköhän tuossa kenties olla merkkijonoissa ne ""? merkki = "Buster";? Ja mitä järkeä noissa metodeissa edes on olla parametrit kun et niitä edes sijoita muuttujiin set-metodeissa? Ja hinta kannattaisi olla double.
Hmm... Olisiko Vene-luokka jotakuinkin tällainen:
class Vene { private String merkki; private int vuosimalli; private int hinta; public Vene(String merkki,int vuosimalli,int hinta){ this.merkki= merkki; this.vuosimalli = vuosimalli; this.hinta = hinta; } public void setMerkki(String merkki) { this.merkki = merkki; } public void setVuosimalli(int vuosimalli) { this.vuosimalli = vuosimalli; } public void setHinta(int hinta) { this.hinta = hinta; } public String getMerkki(){ return merkki; } public int getHinta(){ return hinta; } public int getVuosimalli(){ return vuosimalli; } void tulosta() { System.out.println("Merkki: " + merkki + " vuosimalli: " + vuosimalli + "\n" + "hinta€:" + hinta); } }
Eli tuolla oli mm. seuraavanlaisia virheitä:
- Set-metodit asettivat jonkin taikaluvun eivätkä parametriään?
- Luot main-metodissa Auto-olion?
- Et käytä konstruktorin parametrejä?
Ohessa vielä Main-luokka, joka käyttää Vene-luokkaa:
public class Main { public static void main(String[] args){ Vene Buster= new Vene("Suvi",1973,20000); Buster.tulosta(); } }
EDIT: tsuriga jo kerkesikin hieman aiemmin.
Joo sen verran tarkennan vielä edellisiä että:
1. main:ista et voi asettaa tai käyttää luokan muuttujia suoraan elleivät ne ole static:eja. (Eli siis jos luokka sisältää main:in niin main on se joka ajetaan käynnistettäessä sovellus, jolloin itse luokan ilmentymää ei ole edes vielä luotu, saatikka luokalle annettu parametrejä.))
2. Luokan ilmentymää ei voi luoda muodostajalla jota Luokalle ei ole esitelty. (Paitsi jos luokalle ei ole esitelty yhtään constructoria niin silloin käytetään oletus constructoria joka on Luokka();).
3. Luokan omat muuttujat (paitsi vakiot) määritellään yleensä private:ksi joten niitä EI käytetä muuten kuin gettereillä ja settereillä(muuttujat oletkin luonut privateksi mutta et käytä niitä gettereillä ja settereillä!).
4. Et voi muodostaa luokkaa jota ei ole olemassakaan!!!
5. Luokan ilmentymät ja muuttujat nimetään yleensä siten että ne alkavat pienellä kirjaimella. (ei aiheuta käännös virhettä mutta on hyvän tavan mukaista).
Aihe on jo aika vanha, joten et voi enää vastata siihen.