kun yritän opetella enumeita kopsasin 100% youtube videosta mutta ei toimi
mistä kiikastaa
Enum
public enum kaksi { mina("itelias", "10"); unknown("unknown", "unknown"); private final String desc; private final String age; kaksi(String dc, String ae) { desc = dc; age = ae; public String getDesc() { return desc; } public String getAge() { return age; } } }
Main:
class testi { public static void main(String args[]) { for(kaksi people: kaksi.values()) { System.out.printf("%s %s %s", people, people.getDesc(), people.getAge() ); } } }
Virhe ilmoitus:
javac "testi.java" (kansiossa /home/elias/Ohjelmointi/Java/testi) /home/elias/Ohjelmointi/Java/testi/kaksi.java:2: error: Syntax error on token ";", { expected after this token mina("itelias", "10"); ^ /home/elias/Ohjelmointi/Java/testi/kaksi.java:3: error: Syntax error on token(s), misplaced construct(s) unknown("unknown", "unknown"); private final String desc; private final String age; kaksi(String dc, String ae) { desc = dc; age = ae; public String getDesc() { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /home/elias/Ohjelmointi/Java/testi/kaksi.java:10: error: Syntax error, insert "}" to complete MethodBody age = ae; ^ /home/elias/Ohjelmointi/Java/testi/kaksi.java:12: error: Syntax error on token "String", @ expected public String getDesc() { ^^^^^^ /home/elias/Ohjelmointi/Java/testi/kaksi.java:21: error: Syntax error on token "}", delete this token } Käännös epäonnistui. ^ 5 problems (5 errors)
Rivillä 8, mitä oikein yrität tehdä siinä. Mitä ovat nuo mina ja unknown.
Tuossa on hieman enemmän oikeaa tieto Javan enumista: http://download.oracle.com/javase/tutorial/java/
Edit. Kannattaa huomata, että Javassa enum-rakenne on hieman poikkeuksellinen kuin useimmissa muissa kielissä, sillä siihen pystyy määrittelemään tavallisten luokkien tapaan metodeja ja attribuutteja, tosin periä se ei voi ainuttakaan luokkaa, koska se on jo oletuksena perinyt java.lang.Enum-luokan.
Edit2. Suosittelisin, että ItEliasPro alkaa nimeämään luokat, metodit ja muuttujan paremmin, sillä koodi selkeytyy sen ansiosta huomattavasti. Samoin Javassa on tapana nimetä luokat, rajapinnat, enumit jne... isolla alkukirjaimella.
Ehkä kannattaisi ennemmin katsoa mallia Javan dokumentaatiosta. (Grezille muistutukseksi: Javan enum ei ole kovinkaan kaukana tavallisesta luokasta, eli suurin osa koodista ei sinänsä ole väärin.)
Millä ihmeen ilveellä onnistut saamaan tuollaisia virheilmoituksia? Ihan tapotavallinen Sunin Java-kääntäjä antaa tällaiset ilmoitukset:
kaksi.java:3: invalid method declaration; return type required unknown("unknown", "unknown"); ^ kaksi.java:3: illegal start of type unknown("unknown", "unknown"); ^ kaksi.java:3: illegal start of type unknown("unknown", "unknown"); ^ kaksi.java:12: illegal start of expression public String getDesc() { ^ kaksi.java:12: ';' expected public String getDesc() { ^ kaksi.java:16: illegal start of expression public String getAge() { ^ kaksi.java:16: ';' expected public String getAge() { ^
Tarvittavat korjaukset: vaihda ensimmäinen puolipiste (;) pilkuksi (,) ja ota funktiot pois konstruktorin sisältä eli siirrä yhtä }-merkkiä muutama rivi ylemmäs.
Grez minä aina vähän muuntelen nimiä en halua laittaa samoja juttuja kuin tutoissa ja katsoin väärin että tutossa muka siinä olisi puoli piste
ja ajattelin väärin kun laitoin nuo metodit konstruktorin sisään
ja Grez jos se on pila miksi se on tyypin jolla on yli 100000 subbaajaa
tutoriaalissa
No voit jättää huomiotta sen vastaukseni, lähinnä avauduin siitä että en uskonut koodin olevan 100% kopio (niinkuin ei ollutkaan) ja toisaalta siitä, että et vaivautunut laittamaan mitään linkkiä siihen tutoriaaliin, että olisi voinut tarkistaa mitä eroja eli virheitä omassasi oli siihen verrattuna.
Ottaen huomioon, että sitä linkkiä ei ollut, niin vähän vaikea tietää kuinka maineikas tutoriaalin tekijä on.
Se että sanoin tutoriaalia käytännön pilaksi oli lähinnä sarkasmia perustuen väitteeseesi, että koodisi oli 100% kopio ja olisi aika källi laittaa tutoriaali jonka ohje ei toimi. Poistinkin jo viestini tuossa aikaisemmin, koska olit saanut parempia vastauksia ja sarkasmi ei usein tunnu toimivan.
Tiedätkö tyypin thenewboston
ja joo joskus 10 vuotiaan koodi
voi olla aikamoist sotkua
Niin, eli siis ilmeisesti tutoriaali oli tämä: http://www.youtube.com/watch?v=uFGrL5vyp54
Joo toi on hyvä tutoriaali sarja jos osaa englantia
Aihe on jo aika vanha, joten et voi enää vastata siihen.