forked from crisvitoria/CodigosJava
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMetodosAbstratos
More file actions
159 lines (112 loc) · 3.7 KB
/
MetodosAbstratos
File metadata and controls
159 lines (112 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
/*
Nome: Cristiane Alves da Vitória
Matrícula: C347BG-8
Turma: DS3P30
Descrição: 1) Implemente, em Java, uma classe abstrata de nome Figura onde são
declarados dois métodos abstratos: float calcularArea(); float calcularPerimetro();
2) Crie, como subclasse de Figura, uma classe de nome Retângulo cujas instâncias são
caracterizadas pelos atributos lado e altura ambos do tipo float. Implemente na
classe Retângulo os métodos herdados de Figura e outros que ache necessários.
3) Crie, como subclasse de Figura, uma classe de nome Circulo cujas instâncias são
caracterizadas pelo atributo raio do tipo float. Implemente na classe Circulo os
métodos herdados de Figura e outros que ache necessários.
Nota: poderá obter o valor de Pi fazendo Math.PI.
4) Crie, como subclasse de Retangulo, uma classe de nome Quadrado cujas instâncias
são caracterizadas por terem os atributos lado e altura com o mesmo valor.
5) Elabore um programa de teste onde é declarado um ArrayList, do tipo Figura.
Nesse ArrayList devem ser guardadas instâncias de Retângulo, Circulo e Quadrado.
Depois implemente um ciclo que percorra o ArrayList evocando, relativamente a cada
um dos objetos guardados, os métodos calcularArea e calcularPerimetro.
*/
package Abstratos;
import java.util.ArrayList;
public class Teste {
public static void main(String[] args) {
//Criação do Array de produtos
ArrayList<Figura> figuras = new ArrayList<Figura>();
//Instancia de figuras
Circulo circulo = new Circulo (5);
Quadrado quadrado = new Quadrado (8);
Retangulo retangulo = new Retangulo (4,2);
//Adicionando à lista
figuras.add(circulo);
figuras.add(quadrado);
figuras.add(retangulo);
for (Figura figura : figuras){
if (figura == circulo){
System.out.println(circulo.toString());
System.out.println("Area:" + circulo.calcularArea());
System.out.println("Perimetro:" + circulo.calcularPerimetro());
}else if (figura == quadrado){
System.out.println(quadrado.toString());
System.out.println("Area:" + quadrado.calcularArea());
System.out.println("Perimetro:" + quadrado.calcularPerimetro());
}else if (figura == retangulo){
System.out.println(retangulo.toString());
System.out.println("Area:" + retangulo.calcularArea());
System.out.println("Perimetro:" + retangulo.calcularPerimetro());
}
}
}
}
//Figura
package Abstratos;
public abstract class Figura {
public abstract float calcularArea();
public abstract float calcularPerimetro();
public abstract String toString();
}
//Círculo
package Abstratos;
public class Circulo extends Figura {
private float raio;
public Circulo (float raio){
this.raio = raio;
}
@Override
public float calcularArea() {
return (float) (Math.PI * Math.pow(this.raio,2));
}
@Override
public float calcularPerimetro() {
return (float) (2* Math.PI * this.raio);
}
@Override
public String toString() {
return "\nCirculo\nRaio: " + this.raio;
}
}
//Retângulo
package Abstratos;
public class Retangulo extends Figura{
private float base;
private float altura;
public Retangulo(float base, float altura){
this.base = base;
this.altura = altura;
}
@Override
public float calcularArea() {
return this.base * this.altura;
}
@Override
public float calcularPerimetro() {
return this.base*2 + this.altura*2;
}
@Override
public String toString() {
return "\nRetângulo\nBase: " + this.base + "\nAltura: " + this.altura;
}
}
//Quadrado
package Abstratos;
public class Quadrado extends Retangulo {
private float lado;
public Quadrado(float lado) {
super(lado, lado);
this.lado = lado;
}
public String toString() {
return "\nQuadrado\nLado:" + this.lado;
}
}