Avatar billede ole8 Nybegynder
21. september 2007 - 23:47 Der er 12 kommentarer

Hjælp til construcor

public class Heater
{
private int temperature;
private int min;
private int max;
private int increment;


    public Heater() {
    temperature = 15;
    }

    public Heater(int newMin, int newMax) {
        min = newMin;
        max = newMax;
    }

    /**
    * The temperature is 15.
    */
    public void setTemperature(int newTemperature) {
    temperature = newTemperature;
    }

    /**
    * The warmer increase the temperature.
    */
    public void warmer()
    { temperature = (temperature + increment );
    if(temperature > max) {temperature = max;}
    }

    /**
    * The cooler decrease the temperature.
    */
    public void cooler()
    { temperature = (temperature - increment);
    if(temperature < min) {temperature = min;}
    }

    /**
    * return the value of the temperature.
    */
    public int getTemperature()  {
    return temperature;
    }

    public void setIncrement(int newIncrement) {
        if(increment >= 0) {increment = newIncrement; }
    }

}


Så i constroctoren skal temperatur sættes til 15
og increment til 5. Hvordan gøres det?
Avatar billede kalp Novice
21. september 2007 - 23:57 #1
public Heater() {
    temperature = 15;
increment = 5;
    }
Avatar billede ole8 Nybegynder
22. september 2007 - 00:12 #2
Okay, jeg har gjort følgende:
Er det korrekt?
public class Heater
{
private int temperature;
private int min;
private int max;
private int increment;


    public Heater() {
    temperature = 15;
    }

    public Heater(int newMin, int newMax) {
        min = newMin;
        max = newMax;
    }
   
    public Heater(int newIncrement) {
    increment = 5;
    }
   
    /**
    * The temperature is 15.
    */
    public void setTemperature(int newTemperature) {
    temperature = newTemperature;
    }

    /**
    * The warmer increase the temperature.
    */
    public void warmer()
    { temperature = (temperature + increment );
    if(temperature > max) {temperature = max;}
    }

    /**
    * The cooler decrease the temperature.
    */
    public void cooler()
    { temperature = (temperature - increment);
    if(temperature < min) {temperature = min;}
    }

    /**
    * return the value of the temperature.
    */
    public int getTemperature()  {
    return temperature;
    }

    public void setIncrement(int newIncrement) {
        if(increment >= 0) {increment = newIncrement; }
    }

}
Avatar billede ole8 Nybegynder
22. september 2007 - 00:17 #3
Når, jeg skal jo bare sætte temperatur = 15 og increment = 5 i constoctorne right?
Avatar billede kalp Novice
22. september 2007 - 01:13 #4
ja ifølge det du sagde du ville have.
Det er hvad jeg har gjort i min kommentar:)
Avatar billede ole8 Nybegynder
22. september 2007 - 01:30 #5
Tak for hjælpen :)
Avatar billede ole8 Nybegynder
22. september 2007 - 01:32 #6
Skal de indsættes i

public Heater(int newMin, int newMax) {
        min = newMin;
        max = newMax;
    }
Avatar billede ole8 Nybegynder
22. september 2007 - 01:33 #7
altså temperatur og increment?
Avatar billede kalp Novice
22. september 2007 - 09:10 #8
du kan jo have 2 konstruktører.

så den du har lavet der og den her

public Heater() {
    temperature = 15;
increment = 5;
    }
Avatar billede jakoba Nybegynder
22. september 2007 - 10:56 #9
Hvis meningen er at temperature og increment skal have værdierne 15 og 5 som default vil jeg anbefale:

public class Heater
{
private int temperature = 15;
private int min;
private int max;
private int increment = 5;


    public Heater() {
        // hvis du benytter denne constructor har min og max ingen værdi.
        // ? bør de evt også have en default ?
    }

    public Heater(int newMin, int newMax) {
        min = newMin;
        max = newMax;
        // nu har temperature og increment også en værdi hvis du instantierer
        // klassen med denne constructor.
    }
...

mvh JakobA
Avatar billede _carsten Nybegynder
22. september 2007 - 18:36 #10
Som jeg læser spørgsmålet, SKAL temperature og increment sættes gennem constructor, og så er der vel kun én løsning

private int temperature;
private int min;
private int max;
private int increment;

    public Heater() {
        temperature = 15;
        increment = 5;
    }

    public Heater(int newMin, int newMax) {
        this();
        min = newMin;
        max = newMax;
    }
Avatar billede nielle Nybegynder
23. september 2007 - 17:30 #11
fassosa, Eksperten er baseret på princippet hjælp-til-selvhjælp. Jeg vil gerne hjælpe dig, men jeg vil ikke lave dine lektier for dig. Du skal m.a.o. selv levere noget - og så kan vi tage den derfra.

I øvrigt kan du tage et kig på de spørgsmål ole8 har gang i:

http://www.eksperten.dk/spm/797587
http://www.eksperten.dk/spm/797735
http://www.eksperten.dk/spm/797741
http://www.eksperten.dk/spm/797768

Det er vist ret sikkert at I går på det samme hold. :^)
Avatar billede nielle Nybegynder
23. september 2007 - 17:33 #12
Hov, fik postet et forkert sted...
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