1 Diseño de Figura: Especificación Diseño de Figura

Anuncio
lasFiguras
$
!" "
"
!
"$
$
(
!
$
"
!
#
!" %&" '
"
$
"
! #
%
!"
( )*+
#
,
-
.
/
,
'
0
%
1
#
#
%
$
!
0
%
#
0
%&
%&
%
.
#
%&
%&
'
(
0
%
%
%
3
$( !
2
%
%!
'
!
!"
"
!
!" "
5
%
$ %!&
! "
"
%
package lasFiguras;
import java.util.*; import java.awt.geom.*;
public class Figura{
protected String tipo, color;
protected Point2D.Double centro;
…
public Figura (String tipo, String color, Point2D.Double
centro){…}
public Figura{…}
public String tipo() {…}
public String color() {…}
public Point2D.Double centro() {…}
public void setColor(String nuevoColor) {…}
public void setCentro(Point2D.Double nuevoCentro) {…}
public String toString() {…}
public boolean equals(Object x) {…}
public static Figura leer(Scanner teclado){…}
}
4
%
protected
!
3
% %
/
%
7
8
%
8
9
2
5
%
%&
private
8 %
%
0
public class Figura {
…
public static Figura leer(Scanner teclado){
Figura res = null;
System.out.println("*** LEYENDO FIGURA DESDE TECLADO ***");
System.out.println("Pulse: \n");
System.out.println("1 para leer Círculo");
System.out.println("2 para leer Rectángulo");
System.out.println("3 para leer Cuadrado");
System.out.println("0 para salir .......");
int opcion = teclado.nextInt();
if ( opcion == 1 )
res = Circulo.leer(teclado);
else if ( opcion == 2 ) res = Rectangulo.leer(teclado);
else if (opcion == 3) res = Cuadrado.leer(teclado);
return res;
}
6
+
!
%
%
+
public class TestLeerFigura{
public static void main(String args[]){
Scanner teclado = new Scanner(System.in);
teclado.useLocale(Locale.US);
Circulo c
= Figura.leer(teclado);
%
incompatible types–found Figura but expected Circulo
Rectangulo r = Figura.leer(teclado);
Cuadrado sq
:
= Figura.leer(teclado);
}
public class Figura {
…
public boolean equals(Object x){
return (this.tipo.equals(((Figura)x).tipo));
}
…
}
;/ <@ &
<+ %
%
>
+ %!
>
+
!
#
=
?/ <@ &
0
=
0
=
!
2
;
?
2
C
B
extends
5
%
super
%
%
0
public class Circulo extends Figura {…}
public class Rectangulo extends Figura {…}
public class Cuadrado extends Rectangulo {…}
)
%
3
0 0
0
%
/
%
%
%
%
3
/
/
!
public class Circulo extends Figura {
// Además de tipo, color y centro, un Círculo ES UNA Figura que
TIENE UN
protected double radio; …
// Sobrescribe toString() de Figura para incluir el radio de un
Círculo
public String toString() {...}
// Además de los que hereda y sobrescribe de Figura, un Círculo
tiene sus métodos propios
public Circulo(double r,String co,Point2D.Double ce){...}
public Circulo(){...}
public double radio(){...}
public void setRadio(double nuevoRadio){...}
public double area(){...}
public double perimetro(){...}
public boolean menorQue(Circulo x){...}
public static Circulo leer(Scanner teclado){...}
}
A
+
7&
D
2
%
!
/(
.
#%
0
.
public Derivada () {
super();
}
%
.
!
3
$
(
#%
!
%
'/
!
!
public Circulo(double radio,String color,Point2D.Double centro){
super("Círculo", color, centro);
this.radio = r;
}
public Circulo(){
super();
this.radio = RADIO_POR_DEFECTO;
}
!
public Figura(String tipo,String color,Point2D.Double centro){
this.tipo = tipo; this.color = color; this.centro = centro;
}
public Figura(){
this(TIPO_POR_DEFECTO,COLOR_POR_DEFECTO,CENTRO_POR_DEFECTO);
}
E
(!
%&
3
"%
%&
% %
3
2
% %
%!
.//
#%
%&
!
%
3
%
"
.
!
F9FGD
public String toString(){
return “Circulo de radio "+radio+" color"+color+" centro“ +
centro.toString();
}
%
3
$'
}
%&
! %#
%&
(
public String toString(){
return "Figura de tipo "+tipo+" color"+color+" centro“ + centro.toString();
% %
3
%!
(!
C
!
#
!
8G-+5
GD
public String toString(){
return super.toString()+“ y radio "+radio;
}
/
4
Ejercicio 2:
"
(
%
!
public class Circulo{
private String tipo;
double radio;
public Circulo(double r){ this.radio=r;this.tipo="Círculo";
public Circulo(double r,String t){this.radio=r;this.tipo=t;
public double area(){ return Math.PI * radio * radio; }
public double perimetro(){ return 2 * Math.PI * radio; }
public String toString(){ return "Círculo de radio "+radio;
}
public class Cilindro extends Circulo{
private double altura;
public Cilindro(double radioBase, double altura){...}
public double area(){ return 2*Math.PI*radio*radio +
2*Math.PI*radio*altura; }
public double volumen(){ return Math.PI*radio*radio*altura;
}
;
"%
%
!
$
.
;/ <
?/ <
&%
+
#
!
%
}
}
}
}
!
!
895
=
%
+
=
super(radioBase,"Cilindro"); this.altura = altura;
super.radio=radioBase;super.tipo="Cilindro";this.altura=altura;
A/
6
%
/
)* +
%
8-(
+
% ! /
%
.
+
( - )* +
.
60
.F *
HG
Descargar