Considere a seguinte classe Retangulo em Java, que representa um retângulo com altura e largura: ```java 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
-
Para criar o objeto, deve-se chamar o construtor com os valores iniciais:
new Retangulo(5, 10)(altura = 5, largura = 10). -
Para obter a área e o 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 objetoretanguloe seus retornos (tipodouble) podem ser armazenados em variáveis:
- área =
- perímetro =
- Para redimensionar, a classe fornece o método
redimensionar(double novaAltura, double novaLargura). Logo, deve-se chamarretangulo.redimensionar(7, 12).
Analisando as alternativas:
- (a) e (d): usam
setDimensoes, que não existe na classe. - (b): tenta chamar
Retangulo.calcularArea()eRetangulo.calcularPerimetro()como se fossemstatic, o que está incorreto. - (c): chama
redimensionar(12, 7)invertendo os parâmetros (novaAltura deveria ser 7 e novaLargura 12). - (e): cria o objeto, calcula área e perímetro corretamente e redimensiona com a ordem correta.
Alternativa correta: (e).