Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Youtube tuto tehtävä

Sivun loppuun

ItEliasPro [24.04.2011 21:57:47]

#

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)

Jokotai [24.04.2011 22:04:14]

#

Rivillä 8, mitä oikein yrität tehdä siinä. Mitä ovat nuo mina ja unknown.

Triton [24.04.2011 22:16:45]

#

Tuossa on hieman enemmän oikeaa tieto Javan enumista: http://download.oracle.com/javase/tutorial/java/javaOO/enum.html.

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.

Metabolix [24.04.2011 22:21:29]

#

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.

ItEliasPro [24.04.2011 22:37:03]

#

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

Grez [24.04.2011 22:58:17]

#

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.

ItEliasPro [24.04.2011 23:21:59]

#

Tiedätkö tyypin thenewboston
ja joo joskus 10 vuotiaan koodi
voi olla aikamoist sotkua

Grez [24.04.2011 23:27:45]

#

Niin, eli siis ilmeisesti tutoriaali oli tämä: http://www.youtube.com/watch?v=uFGrL5vyp54

ItEliasPro [24.04.2011 23:32:27]

#

Joo toi on hyvä tutoriaali sarja jos osaa englantia


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta