Avatar billede doktoren Nybegynder
07. juni 2003 - 15:03 Der er 16 kommentarer og
1 løsning

Fejlmelding i program

Får følgende fejlmelding "illegal start of expression", når jeg compiler følgende:

public double getLængde() {
      return længde;
  }


men kan ikke se fejlen..
Avatar billede repsak Nybegynder
07. juni 2003 - 15:06 #1
selve den kode burde være ok. Men du skal nok lige poste koden før (måske mangler der en 'end {'
Avatar billede doktoren Nybegynder
07. juni 2003 - 15:07 #2
ok -den ser sådan her ud:

/**
* Write a description of class STANDARD here.
*
* @author Anders
* @version
*/
public class STANDARD /* extends BREV */ {
    // instance variables - replace the example below with your own
    private double længde;
    private double bredde;
    private double tykkelse;
    private double vægt;
    private String destination;

    /**
    * Constructor for objects of class STANDARD
    */
    public STANDARD(double v, double l, double b, double t, String d) {
        vægt = v;
        destination = d;
        længde = l;
        bredde = b;
        tykkelse = t;
    }

    /**
    * An example of a method - replace this comment with your own
    *
    * @param  y  a sample parameter for a method
    * @return    the sum of x and y
    */
 
  public static boolean isCorectType(double længde, double bredde, double tykkelse) {
      if((længde <= 23) && (bredde <= 17) && (tykkelse <= 0.5)) {
        return true;
      } else {
        return false;
      }

 
if(STANDARD.isCorrectType(v,l,b)) {
  STANDARD brev = new STANDARD(v,l,b,t,d);

} else if(STOR.isCorrectType(v,l,b)) {
  STOR brev = new STOR(v,l,b,t,d);
 
} else  {
  MAXI brev = new MAXI(v,l,b,t,d);

}
  public double getLængde() {
      return længde;
  }
  public void setLængde(double l) {
        længde = l;
    }
    public double getBredde() {
        return bredde;
    }
    public void setBredde(double b) {
        bredde = b;
    }
    public double getTykkelse() {
        return tykkelse;
    }
    public void setTykkelse(double t) {
        tykkelse = t;
    }
    public double getVægt() {
        return vægt;
    }
    public void setVægt(double v) {
        vægt = v;
    }
    public String getDestination() {
        return destination;
    }
    public void setDestination(String d) {
        destination = d;
    }
    public String toString() {
        double porto = 0; // <-----
        if (vægt <= 50)
            if (destination.equals("Danmark")) {
                porto = 4.25;
            }

        if (vægt <= 50)
            if (destination.equals("Europa")) {
                porto = 5.50;
            }

        if (vægt <= 50)
            if (destination.equals("Øvrigeudland")) {
                porto = 6.50;
            }
       
        return " Vægt: " + vægt + " Porto: " + porto;

    }
}
Avatar billede repsak Nybegynder
07. juni 2003 - 15:08 #3
/**
* Write a description of class STANDARD here.
*
* @author Anders
* @version
*/
public class STANDARD /* extends BREV */ {
    // instance variables - replace the example below with your own
    private double længde;
    private double bredde;
    private double tykkelse;
    private double vægt;
    private String destination;

    /**
    * Constructor for objects of class STANDARD
    */
    public STANDARD(double v, double l, double b, double t, String d) {
        vægt = v;
        destination = d;
        længde = l;
        bredde = b;
        tykkelse = t;
    }

    /**
    * An example of a method - replace this comment with your own
    *
    * @param  y  a sample parameter for a method
    * @return    the sum of x and y
    */
 
  public static boolean isCorectType(double længde, double bredde, double tykkelse) {
      if((længde <= 23) && (bredde <= 17) && (tykkelse <= 0.5)) {
        return true;
      } else {
        return false;
      }

 
if(STANDARD.isCorrectType(v,l,b)) {
  STANDARD brev = new STANDARD(v,l,b,t,d);

} else if(STOR.isCorrectType(v,l,b)) {
  STOR brev = new STOR(v,l,b,t,d);
 
} else  {
  MAXI brev = new MAXI(v,l,b,t,d);

}}
  public double getLængde() {
      return længde;
  }
  public void setLængde(double l) {
        længde = l;
    }
    public double getBredde() {
        return bredde;
    }
    public void setBredde(double b) {
        bredde = b;
    }
    public double getTykkelse() {
        return tykkelse;
    }
    public void setTykkelse(double t) {
        tykkelse = t;
    }
    public double getVægt() {
        return vægt;
    }
    public void setVægt(double v) {
        vægt = v;
    }
    public String getDestination() {
        return destination;
    }
    public void setDestination(String d) {
        destination = d;
    }
    public String toString() {
        double porto = 0; // <-----
        if (vægt <= 50)
            if (destination.equals("Danmark")) {
                porto = 4.25;
            }

        if (vægt <= 50)
            if (destination.equals("Europa")) {
                porto = 5.50;
            }

        if (vægt <= 50)
            if (destination.equals("Øvrigeudland")) {
                porto = 6.50;
            }
       
        return " Vægt: " + vægt + " Porto: " + porto;

    }
}
Avatar billede repsak Nybegynder
07. juni 2003 - 15:09 #4
Bemærk at jeg har sat en extra bracket ind lige før den kode som du startede med at poste
Avatar billede doktoren Nybegynder
07. juni 2003 - 15:13 #5
Nu skriver den "cannot resolve symbol -variable v" ved følgende...

if(STANDARD.isCorrectType(v,l,b)) {
  STANDARD brev = new STANDARD(v,l,b,t,d);

}
Avatar billede arne_v Ekspert
07. juni 2003 - 15:14 #6
Linierne:

if(STANDARD.isCorrectType(v,l,b)) {
  STANDARD brev = new STANDARD(v,l,b,t,d);

} else if(STOR.isCorrectType(v,l,b)) {
  STOR brev = new STOR(v,l,b,t,d);

} else  {
  MAXI brev = new MAXI(v,l,b,t,d);

}

bør udgå - de hører hjemme der hvor du skal bruge et brev.
Avatar billede repsak Nybegynder
07. juni 2003 - 15:15 #7
har lige prøvet at kompile din kode... Det ser lidt rodet ud...

er du sikker på at du mener dette:
  public static boolean isCorectType(double længde, double bredde, double tykkelse) {
      if((længde <= 23) && (bredde <= 17) && (tykkelse <= 0.5)) {
        return true;
      } else {
        return false;
      }
if(STANDARD.isCorrectType(vægt,længde,bredde)) {
  STAN....

?
Avatar billede arne_v Ekspert
07. juni 2003 - 15:16 #8
Klasserne STANDARD, STOR og MAXI leverer en constructor til at
lave et brec af den pågældende type og en statisk metode til at
teste om det er en korrekt type.

Men begge skal kaldes i hoved-program (eller ihvertfald udenfor
de her klasser).
Avatar billede repsak Nybegynder
07. juni 2003 - 15:16 #9
måske bør du skrive:

    public STANDARD(double vægt, double længde, double bredde, double tykkelse, String destination) {
        this.vægt = vægt;
        this.destination = destination;
        this.længde = længde;
        this.bredde = bredde;
        this.tykkelse = tykkelse;
    }

og så erstatte ALLE forekomster af 'v' med vægt og ALLE med 't' til tykkelse osv...
Avatar billede doktoren Nybegynder
07. juni 2003 - 15:17 #10
ved godt det ser lidt rodet ud...det er nok fordi jeg ikke har så meget tjeck på det:)
Avatar billede doktoren Nybegynder
07. juni 2003 - 15:17 #11
ok -det prøver jeg! tak...
Avatar billede repsak Nybegynder
07. juni 2003 - 15:20 #12
Det ligner lidt at du er ved at designe et program efter det pattern som hedder static factory method - Am I right?
Avatar billede repsak Nybegynder
07. juni 2003 - 15:21 #13
Hvis det er tilfældet så skal du gøre som arne_v anbefaler i 15:14:49 og 15:16:28 :-)
Avatar billede arne_v Ekspert
07. juni 2003 - 15:23 #14
Vi har faktisk været langt inde i factory diskussion.

Se http://www.eksperten.dk/spm/361739 !
Avatar billede repsak Nybegynder
07. juni 2003 - 15:25 #15
Oki, men den havde jeg slet ikke fulgt med i jo ;-)
Avatar billede repsak Nybegynder
07. juni 2003 - 15:30 #16
doktoren -> morale: husk at du altid skal have lige mange '{' og '}' i dit program. Desuden vil det være en hjælp for dig selv hvis du opstillede din kode lidt pænere med indryk(tabulator) osv. så får du bedre overblik. Vær sikker på din brug af static. Hvis du ikke er 100% sikker så kan den godt volde problemer. (bemærk at jeg siger ikke at du skal lade være med at brude den, for static er nu en rar ting)
Avatar billede doktoren Nybegynder
07. juni 2003 - 18:06 #17
pænt af jer at hjælpe så meget, men ved stadig ikke om jeg kan få det til at virke til sidst...det har taget lang tid ind til videre, men man skal jo nok bare have lidt tålmodighed her i starten...det er svært at se fejlene når man er nybegynder:(
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