Jump to content

2 duvidas: limites da tela + chamada para metodos


Elyst
 Share

Recommended Posts

Boas, tenho duas dúvidas de Java que precisava de esclarecer. Estou a estudar programação orientada a objectos.

1. Usando o programa BlueJ tenho de criar uma classe aquecedor. Nesta classe tenho a temperatura definida por default a 15 e posso "aquecer" ou "arrefecer" com 2 outros metodos. Inicialmente era apenas pedido que o fizessem em 5 unidades, deparei-me com a minha dúvida e depois de muito  :wallbash: decidi seguir em frente e fazer o resto.

Actualmente é uma classe que tem max min em adição ao resto e um incremento. Básicamente permite definir esse incremento desde que não seja negativo e adiciona-o à temperatura procurando que ela fique dentro dos limites max e min.

Basciamente a minha dúvida neste exercicio tem a ver com uma pequena linha do problema que diz "Crie uma outra classe TesteAquecedor na qual teste as funcionalidades da classe Aquecedor. ".

Não consigo fazer a chamada do getTemperatura() para a nova classe. Alguém me pode ajudar?

public class Aquecedor
{
    // instance variables - replace the example below with your own
    private int temperatura;
    private int max;
    private int min;
    private int incremento;

    /**
     * Constructor for objects of class Aquecedor
     */
    public Aquecedor()
    {
        // initialise instance variables
        temperatura = 15;
        //incremento = 5;
    }

    public int getTemperatura() {
    return this.temperatura=temperatura;    
    }
    
    public int getIncremento() {
    return this.incremento=incremento;
    }
    
    //metodos que definem o max, o min e o incremento
    public void setmax(int max) {
    this.max=max;
    }
    
    public void setmin(int min) {
    this.min=min;
    }
    
    public void setIncremento(int incremento) {
    if(incremento >= 0)
    this.incremento=incremento;
    else this.incremento = 5;
    }
        
    /**
     * metodos aquecer e arrefecer que aumentam ou diminuem a temperatura por 5.
     */
    public int Aquecer()
    {
        int a = temperatura += getIncremento();
        if (a <= max)
        return temperatura = a;
        else return 0; //este return procura apenas demonstrar que existe um erro
    }
    public int Arrefecer()
    {
        int a = temperatura -= getIncremento();
        if (a >= min)
        return temperatura = a;
        else return 0;
    }
}

A class TestAquecedor

public class TestAquecedor
{
    private int testaquecedor;
    /**
     * Constructor for objects of class TestAquecedor
     */
    public TestAquecedor(int testaquecedor)
    {
    }

    /**
     * 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 void sampleMethod()
    {
       Aquecedor testeaquecedor = new Aquecedor();
       
       System.out.println("Temperatura: " + testeaquecedor);
      
    }
}




Quanto à segunda dúvida

2- Pretendo fazer ISTO

(no caso do link não funcionar: http://www.box.com/s/d915e52790fcfc262298)

O blueJ já traz a parte mais básica em termos dos mecanismos de desenho e etc. Consigo desenhar a bola na posição inicial e consigo faze-la mover na diagonal.

As minhas unicas dúvidas são:

2.1 - Como crio uma condição de paragem para quando a bola "bate no fim da janela"?

2.2 - O que devo fazer a seguir para ela fazer o mesmo trajecto que no exemplo? Estou a controlar o movimento por uma função que a faz mover horizontalmente e outra que a faz mover verticalmente. Devo simplesmente inverter os dois?

Não creio que seja necessário colocar o código desta classe pois é bastante extenso. Podem no entando rápidamente sacar o BlueJ e instalar que está lá nos exemplos com o nome "Shapes". Eu estou apenas a alterar um pouco o código deles.

http://www.bluej.org/

“The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.”(Seymour Cray)

Link to comment
Share on other sites

ah! então é isso!

Agora já consigo compilar e funciona... mas com um problema. Da 1a vez funciona bem mas se eu altero a temperatura na 1a classe e usar o metodo outra vez ele continua a mostrar a temperatura inicial...

“The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.”(Seymour Cray)

Link to comment
Share on other sites

Tentei fazer algo parecido mas não funcionou. Talvez interpretei mal as variaveis.

Vou dar uma vista de olhos no fim de semana, obg pela ajuda até agora, continuem  🙂 ?

“The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.”(Seymour Cray)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.