Gr0v Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 Jeg har lagd en klasse med blant annet følgende metode: public void settRegNr(String nyttRegnr) { regNr = nyttRegNr; } Jeg har også lagd et klientprogram som bruker klassen, og der vil jeg sette et kall på klassemetoden overfor.... hvordan gjør jeg det? Lenke til kommentar
emva Skrevet 4. oktober 2007 Del Skrevet 4. oktober 2007 du må ha en refferangse til den klassen med settRegNr, altså: Klientprogrammet: //navnet på klassen din: settRegNrKlassenDinVO enVariabel = new settRegNrKlassenDinVO(); enVariabel.settRegNr("nytt reg nr..."); verre enn det var det ikke Lenke til kommentar
pgdx Skrevet 5. oktober 2007 Del Skrevet 5. oktober 2007 Som emva sier. Du oppretter variabelen din: Bil minBil; Deretter lager du objektet via konstruktøren: minBil = new Bil(); Og da trenger du bare å skrive: minBil.settRegNr("ZZ 20102"); Hvis du vil skrive ut det nye bilnummeret, kan du skrive: System.out.println("Bilnummeret er " + minBil.getRegNr()); Gitt at du har denne metoden i klassen din: public String getRegNr() { return regNr; } Lenke til kommentar
Gr0v Skrevet 5. oktober 2007 Forfatter Del Skrevet 5. oktober 2007 class Bil2 { private String regNr = "VD-12345"; private String merke = "Volvo"; private double årsmodell = 1964; private double hastighet = 100; public String finnRegnr() { return regNr; } public String finnMerke() { return merke; } public double finnÅrsmodell() { return årsmodell; } public double finnHastighet() { return hastighet; } public void settRegNr(String nyttRegNr) { regNr = nyttRegNr; } } class Bil2test { public static void main(String[]args) { // Lager et Bil1-objekt (med referanse) minBil // vha. standardkonstruktøren: Bil2 minBil = new Bil2(); // Lager et Bil1-objekt (med referanse) dinBil // vha. standardkonstruktøren: Bil2 dinBil = new Bil2(); String bilensRegnr = minBil.finnRegnr(); String merke = minBil.finnMerke(); double årsmodell = minBil.finnÅrsmodell(); double hastighet = minBil.finnHastighet(); String dbilensRegnr = dinBil.finnRegnr(); String dmerke = dinBil.finnMerke(); double dårsmodell = dinBil.finnÅrsmodell(); double dhastighet = dinBil.finnHastighet(); // Endrer innholdet i regNr: minBil.settRegNr("nyttRegNr"); //Skriver ut innholdet i minBils objektvariabler: System.out.println("Regnr: " + bilensRegnr + ", merke: " + merke + ", årsmodell: " + årsmodell + ", hastighet: " + hastighet); //Skriver ut innholdet i dinBils objektvariabler: System.out.println("Regnr: " + dbilensRegnr + ", merke: " + dmerke + ", årsmodell: " + dårsmodell + ", hastighet: " + dhastighet); } } Slik ser koden ut nå. Den kompilerer uten feil, men når jeg kjører programmet får jeg denne meldingen: Systemet finner ikke angitt bane. Exeption in thread "main" java.lang.NoSuchMethodError: main Hva er galt? Lenke til kommentar
NevroMance Skrevet 5. oktober 2007 Del Skrevet 5. oktober 2007 Hva har du kallt fila de? Den er nødt til å kalles Bil2test.java. Hvis den heter Bil2.java leter den gjennom Bil2 klassen etter en main metode, noe den da ikke finner. Lenke til kommentar
FourEyes Skrevet 5. oktober 2007 Del Skrevet 5. oktober 2007 Vil gjette på at detNevroMance sa er feilen. Du har lagret de i to forskjellige filer ikkesant? lagret Bil2 i Bil2.java og Bil2test i Bil2test.java? Et tips er at når du henter informasjon ved hjelp av en metode trengs ikke dette lagres i en egen variabel i Bil2test classen før du skriver ut. Det går helt fint å skrive System.out.println ("Merke: " + minBil.finnMerke()); istedenfor: String merke = minBil.finnMerke(); System.out.println("Merke: " + merke); Lenke til kommentar
NevroMance Skrevet 5. oktober 2007 Del Skrevet 5. oktober 2007 Det jeg kom med var ett spørsmål da min første tanke var at filnavnet ikke stemte med programmet og hvor main metoden er. Har ikke sagt at det er tilfelle, men var min første tanke da jeg så det. Og hvis den heter noe annet enn Bil2test.java nekter programmet og kjøre grunnet manglende main metode. Men kan godt hende han har riktig filnavn og at det dermed er noe annet. Lenke til kommentar
emva Skrevet 5. oktober 2007 Del Skrevet 5. oktober 2007 hvis du har hele koden din i en å samme fil må du gjøre dette. public class Bil2test legg dette til i koden din istedetfor bare class Bil2test sørg for at filen din heter "Bil2test.java" kopilatoren er nokså streng på dette, det jeg fikk ut da var: Regnr: VD-12345, merke: Volvo, årsmodell: 1964.0, hastighet: 100.0 Regnr: VD-12345, merke: Volvo, årsmodell: 1964.0, hastighet: 100.0 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å