Avatar billede machholdt Nybegynder
22. november 2010 - 17:38 Der er 13 kommentarer og
1 løsning

Enumeration hvordan?

Hej

Lille problem vedr. enumerations som skal bruges til at sætte en vindretning. (nord , syd osv.)

Problemet er at jeg ikke kan ændre enumerationen fra en tredje testklasse.

Hvordan kan jeg gøre det?




Denne del er fra klassen benævnt vind:

public enum vindretningsMuligheder
    {
        nord, øst, vest, syd
    };
    private int vindhastighed = 0;
    private vindretningsMuligheder vindretning;
   
    public Vind(int vindhastighed, vindretningsMuligheder vindretning)
    {
        this.vindhastighed = vindhastighed;
        this.vindretning = vindretning;
    }


fra main metoden/klassen:

    Vind vind = new Vind(0, null); // Nyt objekt af typen vind.
    Regn regn = new Regn(0); // Nyt objekt....
    Temperatur temperatur = new Temperatur(0.0);
    int samletRegn; // Integer variabel.
    double minimumTemp, maximumTemp; // Double variabel.

    public VejrSentral(Vind vind, Regn regn, Temperatur temperatur)
    {
        this.vind = vind;
        this.regn = regn;
        this.temperatur = temperatur;
    }

fra testklassen:

VejrSentral vejret = new VejrSentral(new Vind(0, vindretningsMuligheder.nord), new Regn(10), new Temperatur(13.2));
       
       
       
        vejret.opdaterTotaler();
        vejret.visAktuelVejr();
Avatar billede arne_v Ekspert
22. november 2010 - 18:05 #1
Det er ikke helt klart hvad dit problem er.

Mangler du en:

public void setVindretning(vindretningsMuligheder vindretning) {
    this.vindretning = vindretning;
}

i din Vind klasse??
Avatar billede machholdt Nybegynder
22. november 2010 - 19:52 #2
Nej jeg har en set metode. Det er når jeg skal lave et objekt af typen vind så skal den have to parametre. Vindhastighed (Type int.)og vindretning(Type vindRetningSmuligheder ((Enumeration type)).

Vind vind = new Vind(0, vindretningsMuligheder.nord);

Eclipse giver fejl ved denne kode.

Den siger vindretningsMuligheder cannot be resolved to a variable.

Giver det bedre mening omkring mit problem med dette info?
Avatar billede arne_v Ekspert
22. november 2010 - 20:09 #3
Du har vel erklaeret den inden i Vind saa du skal bruge:

Vind vind = new Vind(0, Vind.vindretningsMuligheder.nord);
Avatar billede machholdt Nybegynder
22. november 2010 - 20:25 #4
Hehe. Havde faktisk brugt den tidligere. Men jeg får stadig fejl når jeg forsøger at køre programmet.

Vind vind = new Vind(0,Vind.vindretningsMuligheder.nord)

Det er denne kode der står på linje 8 i programmet.

VejrSentral er den klasse som samler forskellige klassers informationer. Dvs. vind temperatur osv. Og jeg laver såen testklasse til den for at teste funktioner. Den hedder vejrSentralTest

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    The import Vind cannot be resolved
    vindretningsMuligheder cannot be resolved to a variable

    at VejrSentral.<init>(VejrSentral.java:1)
    at VejrSentralTest.main(VejrSentralTest.java:8)
Avatar billede arne_v Ekspert
22. november 2010 - 20:32 #5
Er Vind i en package som du mangler at importere?
Avatar billede machholdt Nybegynder
22. november 2010 - 22:54 #6
Nej den er i default package som de andre klasser.

Vil du have kopi af de komplette klassers koder?
Avatar billede arne_v Ekspert
22. november 2010 - 22:57 #7
Det er nok nødvendigt for at komme videre.
Avatar billede machholdt Nybegynder
22. november 2010 - 23:12 #8
OK. Men da det er en opgave er jeg ikke meget for at smide det op her er det ok jeg sender det til dig på mail?
Avatar billede machholdt Nybegynder
22. november 2010 - 23:21 #9
Strange. Det virker nu.
Avatar billede machholdt Nybegynder
22. november 2010 - 23:22 #10
Kan du smide et svar Arne og jeg har også et andet åbent spørgsmål som du har kommenteret men ikke lagt et svar i.
Avatar billede machholdt Nybegynder
22. november 2010 - 23:23 #11
Og forresten tak for hjælpen :-)
Avatar billede arne_v Ekspert
22. november 2010 - 23:41 #12
svar
Avatar billede arne_v Ekspert
22. november 2010 - 23:42 #13
Medmindre den enum er meget specifik for den klasse ville jeg flytte den ud som en top level type.
Avatar billede machholdt Nybegynder
23. november 2010 - 09:52 #14
Den er specifik på den måde at den fortæller hvilken vej vinden blæser, og det er kun den klasse der skal have den enumereration.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester