Considere a seguinte classe Retangulo em Java, que representa um retângulo com altura e largura: public class Retangulo { private double altura; private double largura; public Retangulo(double altura, double largura) { this.altura = altura; this.largura = largura; } public double calcularArea() { return altura * largura; } public double calcularPerimetro() { return 2 * (altura + largura); } public void redimensionar(double novaAltura, double novaLargura) { this.altura = novaAltura; this.largura = novaLargura; } } Suponha que você precise criar um objeto Retangulo com altura de 5 e largura de 10, calcular a área e o perímetro, e em seguida redimensionar o retângulo para uma altura de 7 e uma largura de 12. Qual seria a maneira correta de fazer isso?
Questão
Considere a seguinte classe Retangulo em Java, que representa um retângulo com altura e largura:
public class Retangulo { private double altura; private double largura;
public Retangulo(double altura, double largura) {
this.altura = altura;
this.largura = largura;
}
public double calcularArea() {
return altura * largura;
}
public double calcularPerimetro() {
return 2 * (altura + largura);
}
public void redimensionar(double novaAltura, double novaLargura) {
this.altura = novaAltura;
this.largura = novaLargura;
}
}
Suponha que você precise criar um objeto Retangulo com altura de 5 e largura de 10, calcular a área e o perímetro, e em seguida redimensionar o retângulo para uma altura de 7 e uma largura de 12. Qual seria a maneira correta de fazer isso?
Alternativas
a) Retangulo retangulo = new Retangulo(5, 10); retangulo.calcularArea(); retangulo.calcularPerimetro(); retangulo.setDimensoes(12, 7);
b) Retangulo retangulo = new Retangulo(5, 10); double area = Retangulo.calcularArea(); double perimetro = Retangulo.calcularPerimetro(); retangulo.redimensionar(7, 12);
c) Retangulo retangulo = new Retangulo(5, 10); retangulo.calcularArea(); retangulo.calcularPerimetro(); retangulo.redimensionar(12, 7);
d) Retangulo retangulo = new Retangulo(5, 10); double area = retangulo.calcularArea(); double perimetro = retangulo.calcularPerimetro(); retangulo.setDimensoes(7, 12);
e) Retangulo retangulo = new Retangulo(5, 10); double area = retangulo.calcularArea(); double perimetro = retangulo.calcularPerimetro(); retangulo.redimensionar(7, 12);
Explicação
Vamos seguir exatamente o que o enunciado pede, usando os métodos que realmente existem na classe.
- Criar o objeto
O construtor é
Retangulo(double altura, double largura). Então, para altura 5 e largura 10:
new Retangulo(5, 10)
- Calcular área e perímetro
Os métodos
calcularArea()ecalcularPerimetro()são métodos de instância (não sãostatic). Portanto, devem ser chamados a partir do objetoretangulo, e para “calcular” de forma útil normalmente guardamos o resultado em variáveis:
double area = retangulo.calcularArea();(retorna )double perimetro = retangulo.calcularPerimetro();(retorna )
- Redimensionar
O método disponível para alterar as dimensões é
redimensionar(double novaAltura, double novaLargura). O enunciado pede altura 7 e largura 12, nesta ordem:
retangulo.redimensionar(7, 12);
Analisando as alternativas:
- (a) e (d) usam
setDimensoes(...), que não existe na classe. - (b) chama
Retangulo.calcularArea()eRetangulo.calcularPerimetro()como se fossemstatic, o que está errado. - (c) chama
redimensionar(12, 7), invertendo altura e largura em relação ao que foi pedido. - (e) cria corretamente, calcula e armazena os resultados, e redimensiona para (7, 12).
Alternativa correta: (e).