fork(1) download
  1. import java.util.Scanner;
  2.  
  3. abstract class Forma {
  4. public void imprime() {
  5. System.out.println("Área: " + area());
  6. System.out.println("Perímetro: " + perimetro());
  7. }
  8. public abstract double area();
  9. public abstract double perimetro();
  10.  
  11. }
  12.  
  13. class Retangulo extends Forma {
  14. private double comprimento;
  15. private double largura;
  16.  
  17. Retangulo(double comprimento, double largura) throws Exception {
  18. if (comprimento <= 0 || largura <= 0) {
  19. throw new Exception("ONDE JÁ SE VIU LARGURA E/OU COMPRIMENTO NEGATIVO?");
  20. }
  21. this.comprimento = comprimento;
  22. this.largura = largura;
  23. }
  24.  
  25. @Override
  26. public double area() {
  27. return comprimento * largura;
  28. }
  29. @Override
  30. public double perimetro() {
  31. return 2 * (largura + comprimento);
  32. }
  33. public double getComprimento() {
  34. return comprimento;
  35. }
  36. public double getLargura() {
  37. return largura;
  38. }
  39. public void setComprimento(double comprimento) throws Exception {
  40. if (comprimento < 0) {
  41. throw new Exception("ONDE JÁ SE VIU COMPRIMENTO NEGATIVO?");
  42. }
  43. this.comprimento = comprimento;
  44. }
  45. public void setLargura(double largura) throws Exception {
  46. if (largura < 0) {
  47. throw new Exception("ONDE JÁ SE VIU LARGURA NEGATIVA?");
  48. }
  49. this.comprimento = largura;
  50. }
  51. }
  52.  
  53. class Programa {
  54. public static void main(String[] args) {
  55. Scanner sc = new Scanner(System.in);
  56. double comprimento = sc.nextDouble();
  57. double largura = sc.nextDouble();
  58. try {
  59. Retangulo retangulo = new Retangulo(comprimento, largura);
  60. retangulo.imprime();
  61. retangulo.setComprimento(-comprimento);
  62. } catch (Exception ex) {
  63. System.out.println(ex.getMessage());
  64. }
  65. }
  66. }
Success #stdin #stdout 0.07s 321344KB
stdin
12
8
stdout
Área: 96.0
Perímetro: 40.0
ONDE JÁ SE VIU COMPRIMENTO NEGATIVO?