tummair Skrevet 12. november 2006 Del Skrevet 12. november 2006 Hallo! Vil først si at det er første gang jeg skriver her... så om jeg formulerer spørsmålet mitt litt klønete så sier jeg unskyld på forhånd .... Da hopper vi rett på saken..Sitter fast med en liten ting her i oblig 4. Jeg prøver å kalle på en metode i en annen klasse, det går ikke.. Feilmeldingen er. cannot find symbol symbol : method Måned() location: class Analyse Måned(); ^ Jeg skifter navn på metoden og flytter den over til klassen jeg jeg egentlig jobber i metoden til klassen jeg driver å jobber med , da får jeg en feilmelding som heter: invalid method declaration; return type required sjekkMåned (int mnd) { ^ ________________________________________________________________ Koden for sjekkingen i klasse Måned ser slik ut: Måned (int mnd) { if ( mnd == 2 ) {dagInfo = new Dager[28];} else if ( mnd == 4 || mnd == 6){dagInfo = new Dager[30];} else if ( mnd == 3 || mnd == 5){dagInfo= new Dager[31];}else{System.out.println();System.out.println("Feil Måned ");} }//metode måned Denne koden skal brukes til å fiske opp verdier for vind / nedbør for en spesifikk måned... Jeg får det ikke til HJELP .. Lenke til kommentar
qualbeen Skrevet 12. november 2006 Del Skrevet 12. november 2006 du har ikke oppgitt hva metoden din skal returnere. her er noen eksempler på hva som kan returneres, bare fantasien setter grenser for hva du kan returnere... Ønskes ingen retur, brukes ordet "void". //ingen retur: void metodeNavn(){ /* din kode her */ } //returnerer en int-verdi: int metodeNavn(){ /* din kode her */ } //returnerer String-objekt: String metodeNavn(){ /* din kode her */ } Lenke til kommentar
tummair Skrevet 12. november 2006 Forfatter Del Skrevet 12. november 2006 Mornsann!! Takk for svaret, programmet vil nå kompilere, men nå jeg kaller på metoden i samme klasse, så får jeg enda en ny feilmelding som er : sjekkMåned(int) in Analyse cannot be applied to () sjekkMåned(); ^ mvh Tahir. Lenke til kommentar
qualbeen Skrevet 12. november 2006 Del Skrevet 12. november 2006 hvordan ser egentlig denne metoden din ut? og hvis du tar et kurs på universitet/høyskole/lignende, er det ikke instanser der som skal bistå med slike problemer? (ikke at jeg har noe imot å hjelpe her, men av egen erfaring er det enklere å forstå java når man kan snakke med noen ansikt til ansikt, framfor krumlete formuleringer på et forum) Lenke til kommentar
tummair Skrevet 12. november 2006 Forfatter Del Skrevet 12. november 2006 int sjekkMåned(int mnd) { if ( mnd == 2 ) {dagInfo = new Dager[28];} else if ( mnd == 4 || mnd == 6){dagInfo = new Dager[30];} else if ( mnd == 3 || mnd == 5){dagInfo= new Dager[31];}else{System.out.println();System.out.println("Feil Måned ");} return mnd; }//metode sjekkMåned // også leser jeg inn data fra brukeren void finnAntallUværsdager(){ skjerm.out("\tVenneligst tast stasjonsnummer:\t"); String stasjnr= tast.inLine(); if (hashNrStasjon.containsKey(stasjnr) == true) { skjerm.out("\tVenneligst tast inn maaneden du vil ha dataene for(1-6):\t"); int mnd = tast.inInt(); sjekkMåned();// her tryner programmet. } //et annet alternativ var å ha denne if testen i en annen klasse som heter Måned.. da ville koden sett slik ut class Måned{ Dager[] dagInfo; int mnd; // boolean februar() {if (mnd == 2) { // dagInfo = new Dager[31];return true; } // else {return false;} // } Måned(int mnd) { if ( mnd == 2 ) {dagInfo = new Dager[28];} else if ( mnd == 4 || mnd == 6){dagInfo = new Dager[30];} else if ( mnd == 3 || mnd == 5){dagInfo= new Dager[31];}else{System.out.println();System.out.println("Feil Måned ");} }//metode måned }// klasse måned // ved å bruke denne metoden får jeg ihvertfall ikke noe til... det er den jeg helst vil bruke, ellers så vil klassen Måned være helt tom hvis jeg klipper ut dens metoder og putter dem i andre klasser.. .. Lenke til kommentar
Qwark Skrevet 12. november 2006 Del Skrevet 12. november 2006 (endret) Metoden din krever et argument , int mnd, så int mnd = tast.inInt(); sjekkMåned(); Skal være int mnd = tast.inInt(); sjekkMåned(mnd); Og om du vil ha sjekkMnd() metoden i en annen klasse, så må du enten lage denne static eller så må du oppprette et objekt av denne klassen. Eks class klasse1{ public klasse1(){ public int enMetodeSomReturnererInt(int enInt){ /* Noe kode her*/ int enEllerAnnenInt = enInt *3; return enEllerAnnenInt; } } } I main oppretter man et objekt av klasse1 class main{ public static void main[String[]args){ /* oppretter objekt av klasse1*/ klasse1 enKlasse = new klasse1(); /*bruker metoden*/ int returInt = enKlasse.enMetodeSomReturnererInt(28); system.out.println(returInt); } } Endret 12. november 2006 av Qwark Lenke til kommentar
tummair Skrevet 12. november 2006 Forfatter Del Skrevet 12. november 2006 Jøss ... Det funket jo ... Takk skal du ha ... God Søndag ! Lenke til kommentar
tummair Skrevet 12. november 2006 Forfatter Del Skrevet 12. november 2006 Metoden din krever et argument , int mnd, så int mnd = tast.inInt(); sjekkMåned(); Skal være int mnd = tast.inInt(); sjekkMåned(mnd); Og om du vil ha sjekkMnd() metoden i en annen klasse, så må du enten lage denne static eller så må du oppprette et objekt av denne klassen. Eks class klasse1{ public klasse1(){ public int enMetodeSomReturnererInt(int enInt){ /* Noe kode her*/ int enEllerAnnenInt = enInt *3; return enEllerAnnenInt; } } } I main oppretter man et objekt av klasse1 class main{ public static void main[String[]args){ /* oppretter objekt av klasse1*/ klasse1 enKlasse = new klasse1(); /*bruker metoden*/ int returInt = enKlasse.enMetodeSomReturnererInt(28); system.out.println(returInt); } } 7267741[/snapback] Heisann.. Den klammeparantesen ble fjernet ved et uhell.. Jeg leste den oppdaterte posten din ja, men valgte å flytte hele metoden til samme klasse. Om jeg setter public bak boolean så vil det fortsatt ikke fungeren om jeg kaller den fra en annen klasse ( ikke main ) klassen jeg skal kalle den ifra heter Analyse.. og jeg kaller på metoden slik uværDag(); kanskje kallet feilen ligger i ?? ikke vet jeg !! legger forøvrig litt av koden her inne , da jeg er så stressa at jeg ikke vet hvor jeg egentlig gjør feil.. void finnAntallUværsdager(){ skjerm.out("\tVenneligst tast stasjonsnummer:\t"); String stasjnr= tast.inLine(); if (hashNrStasjon.containsKey(stasjnr) == true) { skjerm.out("\tVenneligst tast inn maaneden du vil ha dataene for(1-6):\t"); int mnd = tast.inInt(); sjekkMåned(mnd); uværDag(); }else { luft(); skjerm.outln("\tFeilmelding: "); skjerm.outln("*\tDette er ikke et riktig stasjonsnummer"); skjerm.outln("*\tKontroller din inntasting");} }//uværsdager klasse Dager ser slik ut.. class Dager { double maksVindHastighet; double tempraturMin; double tempraturMaks; double nedbørsMengde; Dager(double maksVindHastighet, double tempraturMin, double tempraturMaks, double nedbørsMengde) { this.maksVindHastighet = maksVindHastighet; this.tempraturMaks = tempraturMaks; this.tempraturMin = tempraturMin; this.nedbørsMengde = nedbørsMengde; }//avslutter dagkonstruktøren public boolean uværDag(){//legger denne testen her for å henge med definisjonen til å være O.O... if (maksVindHastighet!= -99 && nedbørsMengde != -99 && maksVindHastighet>=12 && nedbørsMengde >=10 ) {return true; }else {return false;} }//boolean metode }//avslutter klassen dag Lenke til kommentar
Qwark Skrevet 12. november 2006 Del Skrevet 12. november 2006 Ser ikke at du har opprettet et objekt av dager, når du skal sjekke uværsdager så må du ha data som ligger i et dager-objekt å sjekke med. Lenke til kommentar
tummair Skrevet 12. november 2006 Forfatter Del Skrevet 12. november 2006 Ser ikke at du har opprettet et objekt av dager, når du skal sjekke uværsdager så må du ha data som ligger i et dager-objekt å sjekke med. 7268349[/snapback] dagobjektet ligger i klassen måned class Måned{ // februar har 28 dager... april og juni har 30 dager og jannuar ,mars og mai har 31 dager, denne informasjonen //burde lagres i en metode her og bli kalt på fra et eller annet sted ... Dager[] dagInfo; int mnd; // boolean februar() {if (mnd == 2) { // dagInfo = new Dager[31];return true; } // else {return false;} // } Måned(int mnd) { if ( mnd == 2 ) {dagInfo = new Dager[28];} else if ( mnd == 4 || mnd == 6){dagInfo = new Dager[30];} else if ( mnd == 3 || mnd == 5){dagInfo= new Dager[31];}else{System.out.println();System.out.println("Feil Måned ");} }//metode måned }// klasse måned Lenke til kommentar
pgdx Skrevet 12. november 2006 Del Skrevet 12. november 2006 Jeg ville så godt jeg kunne prøvd å holde meg unna metode- og variabelnavn med norske særtegn i (æ, ø og å). Lenke til kommentar
Qwark Skrevet 12. november 2006 Del Skrevet 12. november 2006 Klikk for å se/fjerne innholdet nedenfor Ser ikke at du har opprettet et objekt av dager, når du skal sjekke uværsdager så må du ha data som ligger i et dager-objekt å sjekke med. 7268349[/snapback] dagobjektet ligger i klassen måned class Måned{ // februar har 28 dager... april og juni har 30 dager og jannuar ,mars og mai har 31 dager, denne informasjonen //burde lagres i en metode her og bli kalt på fra et eller annet sted ... Dager[] dagInfo; int mnd; // boolean februar() {if (mnd == 2) { // dagInfo = new Dager[31];return true; } // else {return false;} // } Måned(int mnd) { if ( mnd == 2 ) {dagInfo = new Dager[28];} else if ( mnd == 4 || mnd == 6){dagInfo = new Dager[30];} else if ( mnd == 3 || mnd == 5){dagInfo= new Dager[31];}else{System.out.println();System.out.println("Feil Måned ");} }//metode måned }// klasse måned 7268396[/snapback] mulig jeg ser dårlig , men jeg ser bare en Dager tabell i klassen måned og ikke noe objekt; f.eks Dager dager = new Dager(6,-14,28,13); også metodekall dager.enMetodeIDager(etArgumentInnHer); Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå