apwr Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 (endret) Hei! Jeg har fått en oppgave som lyder slik: Du skal i dette programmet lage en klassemetode som tester om to tegn er like, identiske. Klassens navn skal være TegnLikhet og metodens navn Likhet. De to tegnene leses inn fra en main-metode. Deretter kalles metoden Likhet som skal avgjøre om de to tegnene er like. Metoden skal enten returnere verdien true (dersom de to innleste tegn er like) eller verdien false (dersom de to innleste tegn er ulike). I figuren under har vi vist eksempel på innlesing til og utskrift fra programmet. Jeg har følgende kode: import javax.swing.JOptionPane; public class TegnLikhet { public static void main(String[] args) { //Variabeldeklarasjon char tegn1,tegn2; String inputTegn; //Leser inn inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. en"); tegn1 = inputTegn.charAt(0); inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. to"); tegn2 = inputTegn.charAt(0); System.exit( 0 ); } } public static char Likhet(char inputTegn){ if (tegn1 == tegn2){ System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: true"); } else { System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: false"); } Jeg får en feilmelding når jeg skal kompilere den siste koden: class, interface, or enum expected public static char Likhet(char inputTegn){ ^(under char) Neon som vet hva som er feil? Hvordan får jeg metoden til å returnere verdien false eller true? Takker for svar! Endret 29. oktober 2006 av apwr
krigun Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 Hvorfor kan vi ikke bare endre navn på hele Programmering > Java forumet, og kalle den "Programmering > Hjelp med (Java) skole oppgaver" istedenfor? Vil være litt mer forklarende kanskje..
Peter Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 Hvorfor kan vi ikke bare endre navn på hele Programmering > Java forumet, og kalle den "Programmering > Hjelp med (Java) skole oppgaver" istedenfor? Vil være litt mer forklarende kanskje.. 7161885[/snapback] Hva har dette med denne tråden å gjøre? Her: https://www.diskusjon.no/index.php?showforum=179 kan du klage. apwr: metoden Likhet() må være definert inne i klassen TegnLikhet, for meg ser det ut som at du har satt den utenfor klassen?
apwr Skrevet 27. oktober 2006 Forfatter Skrevet 27. oktober 2006 Takk, Nazgul! Nå har jeg følgende kode: import javax.swing.JOptionPane; public class TegnLikhet { public static void main(String[] args) { //Variabeldeklarasjon char tegn1,tegn2; String inputTegn; //Leser inn inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. en"); tegn1 = inputTegn.charAt(0); inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. to"); tegn2 = inputTegn.charAt(0); public static char Likhet(char inputTegn){ if (tegn1 == tegn2){ System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: true"); } else { System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: false"); } } System.exit( 0 ); } } Nå får jeg en annen feilmelding: illegal start of expression public static char Likhet(char inputTegn){ ^ Vet du hvorfor dette ikke er lov?
Patton Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 Du kan ikke sette en metode inn i en metode! Fjern likhetmetoden fra main-metoden og sett den under. Dessuten, metodenavn skal helst ikke ha stor forbokstav (daarlig programmeringsskikk).
apwr Skrevet 27. oktober 2006 Forfatter Skrevet 27. oktober 2006 Ok, slik? import javax.swing.JOptionPane; public class TegnLikhet { public static void main(String[] args) { //Variabeldeklarasjon char tegn1,tegn2; String inputTegn; //Leser inn inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. en"); tegn1 = inputTegn.charAt(0); inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. to"); tegn2 = inputTegn.charAt(0); } } public static char likhet(char inputTegn){ if (tegn1 == tegn2){ System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: true"); } else { System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: false"); } } System.exit( 0 ); Jeg får nå en annen feilmelding: class, interface, or enum expected public static char likhet(char inputTegn){ ^ Hva er feil?
Peter Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 (endret) import javax.swing.JOptionPane; public class TegnLikhet { public static void main(String[] args) { //Variabeldeklarasjon char tegn1,tegn2; String inputTegn; //Leser inn inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. en"); tegn1 = inputTegn.charAt(0); inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. to"); tegn2 = inputTegn.charAt(0); TegnLikhet.likhet(tegn1, tegn2); } public static char likhet(char tegn1, char tegn2){ if (tegn1 == tegn2){ System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: true"); } else { System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: false"); } } } Endret 27. oktober 2006 av Nazgul
Peter Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 Det kan jo være en fordel å lese boken din da, istedenfor at vi skal kode for deg. Evt. kan du jo betale meg. Dette er helt grunnleggende. Og du burde forstå forskjellen på klasser og metoder, og hvor de hører hjemme før du i det hele tatt gidder å prøve å kode noe som helst.
apwr Skrevet 27. oktober 2006 Forfatter Skrevet 27. oktober 2006 (endret) Har ikke noen bok. Koden du postet lar seg heller ikke kompilere. Fikk flere feilmeldinger. Det jeg lurer på er hvorfor jeg får denne feilmeldingen: class, interface, or enum expected public static char likhet(char inputTegn){ ^ med denne koden: import javax.swing.JOptionPane; public class TegnLikhet { public static void main(String[] args) { //Variabeldeklarasjon char tegn1,tegn2; String inputTegn; //Leser inn inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. en"); tegn1 = inputTegn.charAt(0); inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. to"); tegn2 = inputTegn.charAt(0); } } public static char likhet(char inputTegn){ if (tegn1 == tegn2){ System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: true"); } else { System.out.println("Tegnene "+tegn1" " "og "+tegn2" " "er like: false"); } } System.exit( 0 ); Endret 27. oktober 2006 av apwr
Peter Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 (endret) apwr: metoden Likhet() må være definert inne i klassen TegnLikhet, for meg ser det ut som at du har satt den utenfor klassen? 7162064[/snapback] Koden min burde forresten funke nå, manglet en krøllparantes. Endret 27. oktober 2006 av Nazgul
JFrame Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 Fant den feilen jeg også, men det funker vel ikke enda? Har litt problemer med min TextPad, så kan være der feilen ligger. Holder på å gå over til Eclipse da
apwr Skrevet 27. oktober 2006 Forfatter Skrevet 27. oktober 2006 Koden din fungerer ikke Nazgul...Noen som kan dette?
pgdx Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 (endret) Lær deg å programmere, som flere her har prøvd å si... import javax.swing.JOptionPane; public class TegnLikhet { public static void main(String[] args) { //Variabeldeklarasjon char tegn1,tegn2; String inputTegn; //Leser inn inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. en"); tegn1 = inputTegn.charAt(0); inputTegn = JOptionPane.showInputDialog("Skriv inn tegn nr. to"); tegn2 = inputTegn.charAt(0); TegnLikhet.likhet(tegn1, tegn2); System.exit(0); } public static void likhet(char tegn1, char tegn2){ if (tegn1 == tegn2){ System.out.println("Tegnene " + tegn1 + "og " + tegn2 + " er like"); } else { System.out.println("Tegnene " + tegn1 + " og " + tegn2 + " er ikke like"); } } } Her har jeg bare fikset koden slik at den fungerer som du vil, men jeg ville heller returnert en boolean fra den metoden istedenfor at metoden skriver ut det den gjør nå. if erlik(tegn1,tegn2) System.out.print(tegn1 + " og " + tegn2 + " er like"; else System.out.print(tegn1 + " og " + tegn2 + " er ikke like"; Endret 27. oktober 2006 av drange
apwr Skrevet 27. oktober 2006 Forfatter Skrevet 27. oktober 2006 Det er jo det jeg prøver, men når man står fast trenger man hjelp. Er det så vanskelig å forstå?
JFrame Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 Har lurt på det samme selv. Hvorfor skriver folk i annenhver melding at man ikke må stille spørsmål på forumet. Er de dumme, eller er det ikke meningen at folk skal bruke forumet? Har bare skrevet et par poster, men er jo ganske overrasket over holdningene det virker som endel har her inne...
qualbeen Skrevet 27. oktober 2006 Skrevet 27. oktober 2006 en klasse i java kan inneholde mange ulike metoder. Og alle metoder må være innenfor en klasse! Klikk for å se/fjerne innholdet nedenfor import pakke.navn.Klasse; // først importeres eventuelle nødvenige klasser import pakke.navn.* // denne importerer alle klassene som ligger i nevnte pakke. //her starter vi deklarasjon av klassen: public class MinKlasse{ //variabler som hvert objekt av klassen innehar: private String fornavn; private String etternavn; privare int lønn; //kontruktør: (man bestemmer selv eventuelle parametere, alt etter situasjonen public MinKlasse(String fnavn, String enavn){ fornavn = fnavn; etternavn = enavn; oppgiLønn(); // eksempel på metodekall i en konstruktør } //ulike metoder som klassen tilbyr følger: //getters: public String getFornavn(){ return fornavn; } public String getEtternavn(){ return etternavn; } public int getLønn(){ return lønn; } //setters: public void setFornavn(String navn){ fornavn = navn; } public void setEtternavn(String navn){ etternavn = navn; } public boolean setLønn(int nyLønn){ if (nyLønn > 0) { lønn=nyLønn; return true; } else { System.out.println("Lønn kan ikke være negativ"); return false; } } //en annen metode jeg lagde //hele programmet kræsjer hvis man oppgit noe annet en tall (fordi jeg ikke bruker try/catch) public void oppgiLønn(){ String midlertidigStreng = JOptionPane.showInputDialog("Oppgi lønn"); int lønn = Integer.parseInt( midlertidigStreng ); boolean resultat = setLønn( lønn ); if (resultat) { System.out.println("Lønnen ble vellykket satt til " + lønn + "kr."); } else { System.out.println("Feil oppstod"); } } }//her avslutter vi klassen Da er en klasse oprettet, men den gir ikke mye mening uten en main-metode. Derfor lager vi en ny klasse, gjerne kaldt klient: public class Klient{ public static void main(String args){ //lager objekter av typen MinKlasse, paramtere samsvarer med konstruktøren MinKlasse objekt1 = new MinKlasse("Ola","Nordmann"); MinKlasse objekt2 = new MinKlasse("Kari,"Nordmann"); String tmp1 = "apwr" String tmp2 = "drange" MinKlasse objekt3 = new MinKlasse( tmp1, tmp2 ); //objekt som ikke er lagret i en variable følger: new MinKlasse("Onkel","Skrue"); } Tilslutt: jeg har selvfølgelig ikke tatt meg tid til å sjekke om koden virker, da alle vet at en god programmerer er en lat programerer I tillegg er jeg ganske trøtt nå, og jeg tipper koden inneholder noen slurvefeil. Men håper poenget mitt kom frem. Kan jo lage psaudokude-klasse også: Klikk for å se/fjerne innholdet nedenfor public class Klassenavn{ /* eventuelle variabler */ /* konstruktør er greit å ha med */ void metode{ /* metode kropp */ } }//avslutter klassen her
Black Star Skrevet 28. oktober 2006 Skrevet 28. oktober 2006 Emnetittelen i denne tråden er ikke god nok, om ikke dette blir endret slik at det er lettere å forstå hva slags informasjon tråden omhandler vil denne bli stengt! En god emnetittel er en tittel som forklarer godt hva innholdet i posten din går ut på. En bruker bør kunne skaffe seg oversikt over hovedinnholdet i posten bare ut fra å lese tittelen. Vennligst forsøk å ha dette i tankene neste gang du starter en tråd, og orienter deg om hva vår nettikette sier om dårlig bruk av emnetitler. Bruk -knappen i første post for å endre emnetittelen. (Dette innlegget vil bli fjernet ved endring av emnetittel. Vennligst ikke kommenter dette innlegget, men rapporter gjerne dette innlegget når tittelen er endret, så vil det bli fjernet.)
JFrame Skrevet 28. oktober 2006 Skrevet 28. oktober 2006 Kan jo være andre får bruk for det samme. Så hvorfor ikke gjøre tråden forståelig se de finner den? " Program som sammenligner to tegn" ....
apwr Skrevet 29. oktober 2006 Forfatter Skrevet 29. oktober 2006 Selv om tråden stenges er den fortsatt tilgjengelig for andre. Det blir bare ikke mulig å poste nye innlegg i den.
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å