!
!
"
#
!
!
!
$
!
!
%
&
!
!
'
(!
!
%
&
!
!
'
'
'
"
!
)
*) +
&#) ),
)
!
,
&(---)
)
.
/)
0
!
/)/
#
"
! " #
/)(
1!
"
! " #
2
/)3
1 '
/)3
1 '
2
4
0
()
5
!
2
()/
$ %
$
! "
()(
4
()()/
&
$
! "
()()(
'
(
!(
package ejemplos.tema2.gestionDeFigurasSinExcepciones; public class TestSituacionesInesperadas {private static Scanner teclado = new Scanner(System.in).useLocale(new Locale("es", "US"));
public static void main(String args[]){
GrupoDeFiguras g = new ArrayGrupoDeFiguras(); int opcion; do {
opcion = menu(); if ( opcion != 0 ) procesar(opcion, g); } while ( opcion != 0 );
}
private static int menu(){
int res = 0; System.out.println(); System.out.println(" *** MENÚ ***");
System.out.println("1.- Insertar una nueva Figura en el Grupo"); System.out.println("1.- Insertar una nueva Figura en el Grupo"); System.out.println("2.- Buscar una Figura en el Grupo"); System.out.println("3.- Borrar una Figura del Grupo");
System.out.println("4.- Recuperar por posición una Figura del Grupo"); System.out.println("5.- Calcular el área del Grupo");
System.out.println("6.- Mostrar las Figuras que componen el Grupo"); System.out.println("7.- Mostrar las Figuras del Grupo ordenadas por área"); System.out.println("8.- Mostrar array con las mismas Figuras que el Grupo"); System.out.print("Seleccione opción: ");
res = teclado.nextInt(); return res;
}
6" 7
"
private static void procesar(int opcion, ArrayGrupoDeFiguras g) { switch (opcion) {
case 1: Figura f = menuFigura(); f.leer(teclado);
g.insertar(f); break;
case 2: Figura fB = menuFigura(); fB.leer(teclado);
System.out.println("Buscando la Figura "+fB);
int p = g.indiceDe(fB);
System.out.println(“1ªapar.de "+fB+”:”+g.recuperar(p).toString());
break;
case 3: Figura fD = menuFigura(); fD.leer(teclado);
6" 7
$
"
<
6" 7
4
<
6" 7
0
8
'
4
<
6" 7
0
System.out.println("Borrando "+fD); boolean b = g.eliminar(fD);System.out.println(“¿Borrada "+fD+" del Grupo?:”+b);
break;
case 4: System.out.println("Indique la posición de la Figura a recuperar:"); int i = teclado.nextInt();
Figura fR = g.recuperar(i);
System.out.println("Recuperada la Figura "+fR+" de la posición "+i);
case 5: System.out.println("Área total :"+g.area()); break; case 6: System.out.println(g.toString()); break;
case 7: System.out.println(Arrays.toString(g.ordenar())); break; case 8: System.out.println(Arrays.toString(g.toArray())); break;
} }
6" 7
0
8
'
4
<
6" 7
"
<
6" 7
8
'
4
<
…private static Figura menuFigura(){
Figura res = null;
System.out.println("PULSE ... ");
System.out.println("1 para leer Círculo"); System.out.println("2 para leer Rectángulo"); System.out.println("3 para leer Cuadrado"); int opcion = teclado.nextInt();
if ( op == 1 ) res = new Circulo(); else if (op==2) res=new Rectangulo(); else if (op==3) res=new Cuadrado(); return res; }
6" 7
6" 7
"
"
8
8
'
9
/))3;<
0
5
0
=
>
&
!
&
)
"
!
!7
& ) )
0
4
'?
,
!
&
@
A,
!
&
@
2
0
)
"
!
B
! !
!
@
) )B
!
&
&
)*
"
@
@
2
"
!
'
! !
!
'
>
&
@ &
!
"
:@ &
!
"
&
"
!
!
! "
# $
! " #
!
!
! " #
@
! "
/-!
"
#
@
)
)*
! " #
+
)*
, )*
)*
&
)*
$ %
&
'
&
)*
)
*
#
+
(
! "
Scanner
java.util
public double
nextDouble
()
Scans the next token of the input as a double.
This method will throw InputMismatchException if the next
token cannot be translated into a valid double value.
If the translation is successful, the scanner advances
past the input that matched.
//
past the input that matched.
...
Returns
:
the double scanned from the input
Throws:
InputMismatchException
- if the next token does not match the
Float regular expression, or is out of range
NoSuchElementException
- if the input is exhausted
IllegalStateException
- if this scanner is closed
2
2
C
) 2
?
)
- )
2
)*
D
!
8
E
F
!
G D
E!
G?
H
/(H
!
8
EG D
EG?
H
H
!
"
2
@
!7
I
EG
2
.
)*
(
#
'
)
*$
'
+
,
#
- $
'
#
. $
'
/3. $
'
#
)
/
#
)
#
0
#
&
$ 0
'
@
! "
$ %
)*
* ,
*
#
@
,
/
!)*
01 ! 1 2 ! " " , / !)* EJ I ! > 2 K JL))G? /M1
'
'
)
#
'
&
#
#
#
'
)
! " " , / !)* EJ I ! > 2 K JL))G?2
3
*
#
)
#
'
#
!
$ 0
'
@
! "
$ %
)*
0
2
3
@
)
- )
0 45 66 78 !
2
! "
"
!
8
EJ
!
/N1
'
'
)
#
'
&
#
#
#
'
)
! "
"
!
8
EJ
!
)))J
LJ
G?
#
!
'
)
+
> O
,
&
#
*$
#
+
#
,
! "
- $
+
G
.
&
'
/A(
!(
. $
#
+
)
G
1
#
(
&
&
9
throws
)
1
0
@
!
8
'
:
&
;
&
'
'
&
$$$$$$
1
0
/:1
0
#
E
G D
))))
E
45 66 78 !
G
! "
"
!
8
EP1 2 0 PLG?
)))
H
"
!
%
"
&
'
" (
)
"
"
!
"
&
9
throws
)
2
EG
F
@
I !
> 2
#
'
+
>
,
:
&
;
&
'
2
'
&
/Q2
'
&
#
)
#
'
E
F
G D
))))
R
)
*
#
EG?
)))
H
*
$
+
# & &
,
-&
!7
"
!
&
?
&
!
)
# $
"
!
*
!
2
)
(-*
!
2
)
F
!7
>
&>
!'
2
"
2
"
@
!7
!
"
<
==
# '
)
>
$
?
!0
2
5
/
>2 <
==
#
#
>
2
5
/
?
!0
2
5
(
2 <
'
(
!(
(/?
!0
2
5
(
2 <
==
#
#
2
5
(
<
==
#
4
55
?
0
!
0
EGD
0
R
?
F
!)
)
EJ
, #F ))) J
G?
F
!)
)
EJ
/
J
G?
F
!)
)
EJ
(
*
'
J
G?
F
!)
)
EJ
3
J
G?
)
>
,
/
!)*
leer
F
!)
)
EJ
3
J
G?
R
)
2
EG?
E
RR / G
R
O
EG?
E
RR(G
R
O *
EG?
E
RR3G
R
O
EG?
?
H
*
$
+
# & &
,
-#
.
/ "
$
%
&'&
(
)
*
%
&
&
)
"
#
+
*
"
#
$
%)
*
,
%
)
"
$
$
%-
.$
/0
-
)
*
)
>
,
/
!)*
leer
$
$
%-
.$
/0
-
)
*
$
%)
*
,
*
,
%
&
&
)
"
#
+
*
"
#
*
"
)
>
,
/
!)*
leer
# $
%)
*
,
%
)
"
$
$
%-
.$
/0
-
)
*
$
%)
*
,
*
,
, ! %
)
*
#
*
%
&
&
)
"
#
+
*
#
*
" 0
"
# $
%)
*
#
*
%
1
2
2
3
) !
!
4
4
%5
67
)
*
)
>
,
/
!)*
leer
#
*
,
%
)
"
$
$
%-
.$
/0
-
)
*
$
%)
*
,
,
%
4
4
)
"
$
$
% 8$4
4%)
)
* $
%)
*
,
1
+ 2
-
(
*
,
0 E G ! " ! 8 D )))) E 45 66 78 ! G ! " " ! 8 EP1 2 0 PLG? ))) H BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
5 4
0
D
!
EF
9
;
GD
)
)
- )
!
EF
9
;
GD
))))
1
4
0
R
O
1
4
0
EG?
System.out.println("Introduzca la posición de la Figura a
recuperar del Grupo");
int indice =
LecturaValida.leerInt(teclado);
try{
Figura
aRecuperar= g.
recuperar
(indice);
System.out.println("Recuperada
la
Figura
"+aRecuperar+"
de la posición "+indice+" del Grupo");
} catch(ElementoNoEncontrado
e){
System.out.println(e);
}
))))
S
2
0
D
S
E
F
G D
F
!)
)
EJ
TT# U 8
F
5 #1
TTTK J
G?
F
!)
)
EJ
@
K J
G?
)
*
(AF
!)
)
EJ
@
K J
G?
R
)
2
EG?
S
H
S
2
0
D
S
E
F
G D
<
D
>
R
?
F
!)
)
EJ
@
K J
G?
R
)
*
#
EG?
E
V-G > O
O
2
*
8
EP
*
W
L
G?
)
*
E
V-G > O
O
2
*
8
EP
*
W
L
G?
>
R
?
H
!
E
I !
> 2
/G D
F
!)
)
EP8 > $! ) X WG?H
!
E
2
*
8
(G D
F
!)
)
EP8 ! V- EPL () I EGLWG) X WG?H
?"!
0!
)
2
S
H
>
!
, !
E"
!
$!
!
/
YQG
public class
Primitiva
{
private
Integer
numeros[];
private int numGuardados;
private int numGuardados;
public
Primitiva
(){ … }
public void
guardaNumero
(Integer n)
throws
ExepcionNoDuplicado, ExcepcionNoFueraRango, ExcepcionCompleta{
…
}
}
ExepcionNoDuplicado ' $! & ExcepcionNoFueraRango $! ' ExcepcionCompleta $! ! ' ! )! "
$!
!
?
!
2
"
@
public class ImposibleAbrirBD extends Exception { public ImposibleAbrirBD() { super(); }
public ImposibleAbrirBD(String msg) { super(msg); } }
public class BaseDeDatos {
public BaseDeDatos(String nombre) { ... }
private void abrir() throws ImposibleAbrirBD { … } public void inicializar() throws ImposibleAbrirBD {
abrir(); ... ...
} }
public class TestBaseDeDatos {
public static void main (String args[]) throws ImposibleAbrirBD {
BaseDeDatos bd = new BaseDeDatos(“MiBD”); bd.inicializar(); } }F ! ! 5 " > @ " @ 2 ! 1 ) F @ & ' " > ! )