Gå til innhold

hvordan kalle en sett-metode?


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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

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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...