08. juni 2003 - 21:26Der er
92 kommentarer og 1 løsning
BlueJ problemer igen igen
Dette er også et spørgsmål til postsystemet med de tre forskellige brevkategorier. Jeg læste at der var nogle der fik at vide at de skulle lave abstrakte klasser over brev hvordan gør man det helt præcist.
Ok, så vil jeg lige spørge dig hvorfor bruges der private double til længde? Hvorfor skrives der public void? Og hvad betyder det når der står public double?
Ok, det vil altså sige at jeg kan godt skrive public int hvis der kun er tale om heltal og ikke andet.
Hvad nu hvis man ikke ønsker at lave de abstrakte klasser men kun en klasse for brevene er det så også muligt? Og hvilken løsning er bedst og nemmest at arbejde med?
ok, så er problemet bare lige at jeg ikke er sikker på hvordan man laver en constructor og metoder til den.
Constructoren hører den ikke til efter public class {private String destination; osv}. Er du muligt at du kan give mig et hint på koden der skal efterfølge denne class?
Så har lavet et en klasse som vi snakkede om i går, kan du sige om det jeg har gjort indtil videre er rigtigt?
public class Category { // instance variables private int length, width, weight; private double thickness; private String country;
/** * Constructor for objects of class Category */ public Category(String c, int l, int w, int we, int t) { // initialise instance variables length = l; width = w; weight = we; thickness = t; }
Hvis det nu stadig skal være meget meget simpelt, kan jeg så ikke lave 2 klasser en hvor jeg beskriver brevene altså standard, large og maxi og en med porto.
Uden at det bliver med de abstrakte klasser du talte om i aftes er det også en mulighed?
Ja, det er snart klar over :), men som sagt så skal det bare være så simpelt som muligt så jeg har en lille chance for at forstå hvad det er jeg har med at gøre:)
Hvis jeg bruger public string er det så ikke her jeg skal bruge new type = Standard? Eller hvad det nu er jeg skal have frem.
public class Category { // instance variables private int length, width, weight; private double thickness;
/** * Constructor for objects of class Category */ public Category(int l, int w, int we, int t) { // initialise instance variables length = l; width = w; weight = we; thickness = t;
}
/** * Find out which type of letter we are dealing with according to weight, width, length and thicknes.
public class Category { // instance variables private int length, width, weight; private double thickness;
/** * Constructor for objects of class Category */ public Category(int l, int w, int we, int t) { // initialise instance variables length = l; width = w; weight = we; thickness = t;
}
/** * Find out which type of letter we are dealing with according to weight, * width, length and thicknes. */
Når jeg compiler får jeg følgende fejlmelding her: illegal start of expression public String getType(){ if(l <= 23) && (w <= 17) && (we <=50) &&
(Alt hvad jeg har skrevet indtil videre ser sådan ud.)
public class Category { // instance variables private int length, width, weight; private double thickness; private string country;
/** * Constructor for objects of class Category */ public Category(int l, int w, int we, int t) { // initialise instance variables length = l; width = w; weight = we; thickness = t; country = c; }
//*Find out which type of letter we are dealing with according to weight,width, length and thicknes.*/
Cannot resolve symbol symbol: private string country;
Her er det jeg har skrevet: public class Category { // instance variables private int length, width, weight; private double thickness; private string country;
Ja jeg har skrevet den med forkortelsen c, det skulle jeg måske ikke
public class Category { // instance variables private int length, width, weight; private double thickness; private String country;
/** * Constructor for objects of class Category */ public Category(int l, int w, int we, int t) { // initialise instance variables length = l; width = w; weight = we; thickness = t; country = c;
Hvis jeg skriver den i argumentlisten går det så ikke galt når skriver if, else? Der skal land jo ikke blandes ind det skal jo først ind når jeg skal til at beregne portoen
Jeg forstår det ikke helt længere er det ikke tilladt at copy paste for det er hvad jeg har gjort med det du lige har skrevet fordi der ikke var nogen fejlmelding, men når jeg paster og retter i det før jeg fejlmeldingen: Illegal start of type if ((getType()equals.("Largeletter")) && (weight <= 100)
import java.util.*; /** * Letter information what kind of letter are we dealing with defined by length, * width, thickness and weight. * * @author (your name) * @version (a version number or a date) */ public class Category { // instance variables private int length, width, weight; private double thickness; private String country;
/** * Constructor for objects of class Category */ public Category(int l, int w, int we, double t, String c) { // initialise instance variables length = l; width = w; weight = we; thickness = t; country = c; }
//*Find out which type of letter we are dealing with according to weight,width, length and thicknes.*/
if ((getType().equals("Largeletter")) && (weight <=50) && country.equals("Europe, The Faroes Island and Greenland")) { return 8.50; } if ((getType().equals("Largeletter")) && (weight <= 100) && country.equals("Europe, The Faroes Island and Greenland")) { return 12.00; }
if ((getType().equals("Largeletter")) && (weight <= 250) && country.equals("Europe, The Faroes Island and Greenland")) { return 19.00; }
if ((getType().equals("Largeletter")) && (weight <= 500) && country.equals("Europe, The Faroes Island and Greenland")) { return 33.00; }
if ((getType().equals("Largeletter")) && (weight <= 1000) && country.equals("Europe, The Faroes Island and Greenland")) { return 57.00; }
} Den er compilet og det hele men når vil have den til at hente double calculatePostage kommer den op og siger double method result = -1.0 Kan du sige mig hvad jeg har gjort galt her?
Kan du se hvad jeg har gjort galt udover at else return er -1.0, jeg ved bare ikke hvordan jeg skal rette den.
Og så har jeg lige et sidste spørgsmål:) Hvis jeg skal udregne portoen efter vægt og destination hvordan skal jeg så lave if-else koderne og hvor skal de ind henne?
Jeg håber du vil svare på disse ting så skal du nok få fred for mig:)
/** * Letter information what kind of letter are we dealing with defined by length, * width, thickness and weight. * * @author (your name) * @version (a version number or a date) */ public class Category { // instance variables private int length, width, weight; private double thickness; private String country;
/** * Constructor for objects of class Category */ public Category(int l, int w, int we, double t, String c) { // initialise instance variables length = l; width = w; weight = we; thickness = t; country = c; }
//*Find out which type of letter we are dealing with according to weight,width, length and thicknes.*/
if ((getType().equals("Largeletter")) && (weight <= 50) && country.equals("Europe, The Faroes Island and Greenland")) { return 8.50; } if ((getType().equals("Largeletter")) && (weight <= 100) && country.equals("Europe, The Faroes Island and Greenland")) { return 12.00; }
if ((getType().equals("Largeletter")) && (weight <= 250) && country.equals("Europe, The Faroes Island and Greenland")) { return 19.00; }
if ((getType().equals("Largeletter")) && (weight <= 500) && country.equals("Europe, The Faroes Island and Greenland")) { return 33.00; }
if ((getType().equals("Largeletter")) && (weight <= 1000) && country.equals("Europe, The Faroes Island and Greenland")) { return 57.00; }
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.
Netcompanys nye lufthavnsplatform vil revolutionere måden, som vi rejser på: ”Vi er allerede blevet kontaktet af amerikanske, asiatiske og mellemøstlige lufthavne”