Elyst Posted March 15, 2012 at 08:15 PM Report #444101 Posted March 15, 2012 at 08:15 PM 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 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)
Baderous Posted March 15, 2012 at 11:25 PM Report #444145 Posted March 15, 2012 at 11:25 PM 1) Tens de invocar o método sobre o objecto criado: System.out.println("Temperatura: " + testeaquecedor.getTemperatura());
Elyst Posted March 15, 2012 at 11:33 PM Author Report #444148 Posted March 15, 2012 at 11:33 PM 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)
Elyst Posted March 16, 2012 at 07:18 PM Author Report #444287 Posted March 16, 2012 at 07:18 PM Bump! Precisava de uma resposta o quanto antes, por favor. “The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.”(Seymour Cray)
seuqram Posted March 16, 2012 at 09:02 PM Report #444295 Posted March 16, 2012 at 09:02 PM 2.1- exemplo: se a janela for 800 600 tens de fazer if(bolax+25==800||bolax-25=0||bolay+25==600||bolay-25=0) (metes alguma coisa para parar a bola) o resto n sei porque não percebo muito de java!
Elyst Posted March 16, 2012 at 09:36 PM Author Report #444297 Posted March 16, 2012 at 09:36 PM 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)
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now