public class Foo : Moo

Anuncio
Ejercicios Propuestos
HERENCIA
EP_1
Si se tiene el fragmento de código que sigue:
public class Foo : Moo
{
private const string Voo = "You";
private string Goo;
public string Coo
{ }
public override void Too( )
{ }
protected void Woo( )
{ }
}
Diga:
a. ¿Nombre de la Clase Derivada (CD)?
b. ¿Nombre de la Clase Base (CB)?
c. ¿Cuál es la propiedad nueva en la CD?
d. ¿Cuál método ha sido sustituido?
e. ¿Cuál método puede ser llamado solo en la CD o en clases que deriven de la misma?
f. ¿Qué palabra clave (keyword) debe tener el procedimiento Too en la CB?
g. Asuma que Loo es un campo de tipo string en la CB. ¿Cómo debe ser su declaración en la
CB si Loo debe ser accesible a todos los miembros de la CD
EP_2
Seleccione la palabra clave para un:
a. Método en la clase base que se sustituirá en la clase derivada.
b. Método que es sustituido en la clase derivada.
c. Campo que es accedido solamente por los métodos de la clase.
d. Método de una clase que no puede ser directamente invocado por un objeto de la clase.
e. Método de una clase que puede ser invocado por un objeto de la clase
EP_3
Señale los errores en el código que sigue:
interface IToken
{
string Name( );
int LineNumber( ) { return 42; }
string name;
}
class Token
{
IToken t = new IToken( );
string Name( ){ };
}
EP_4
Determine si cada una de las siguientes es siguientes es V o F. En caso de ser F explicar por qué?
a. Una propiedad trabaja asociada solo a un campo público donde este contiene el valor y la
propiedad es el mecanismo para fijar u obtener dicho valor
b. Los objetos referidos a una Interface solo pueden acceder a sus miembros públicos.
c. Una clase abstracta significa que no puede ser utilizada como clase base de otra clase.
d. Los métodos sobrecargados cuyas firmas son iguales permiten diferentes acciones.
e. Solos los métodos públicos de una clase base pueden ser utilizados en la clase derivada que
la hereda.
Elaborado por JCSoft Aplicaciones Informáticas
Ejercicios Propuestos
f. Una propiedad de solo lectura utiliza los descriptores get{ } y set{ } para fijar u obtener el
valor del campo que trabaja asociado con dicha propiedad
g. Los campos o atributos en una Interface son públicos de forma implícita
EP_5
Dadas las clases Empleado, Supervisor y Asistente que en la parte inferior se definen de
manera parcial.
public class Empleado
{
protected string salida;
public Empleado( )
{ salida = “Empleado trabajando.”; }
public void Trabajo( )
{ MessageBox.Show(salida); }
}
public class Supervisor: Empleado
{
public Supervisor( )
{ salida = “Supervisor trabajando”; }
}
public class Asistente: Empleado
{
public Asistente()
{ salida = “Asistente trabajando.”; }
}
1. Explique el resultado de la compilación de las siguientes declaraciones:
a. Empleado employA = new Empleado( );
b. Empleado employB = new Supervisor( );
c. Supervisor employC = new Supervisor( );
d. Supervisor employD = new Empleado( );
e. Asistente employE = new Supervisor( );
2. Considere las siguientes declaraciones:
Empleado employ1 = new Empleado( );
Supervisor employ2 = new Supervisor( );
Empleado employ3 = new Supervisor( );
Explique la legalidad (legal o no legal) de las siguientes asignaciones:
a. employ1 = employ2;
b. employ2 = (Supervisor) employ3;
c. employ1 = (Supervisor) employ2;
3. Considere las siguientes declaraciones:
Empleado employ1 = new Empleado( );
Supervisor employ2 = new Supervisor( );
Empleado employ3 = new Supervisor( );
Explique el resultado de la ejecución del siguiente segmento de código:
employ1 = employ2;
employ1.Trabajo( );
employ3.Trabajo( );
Elaborado por JCSoft Aplicaciones Informáticas
Ejercicios Propuestos
EP_6
Crear una aplicación 2 capas (Capa Lógica CL en Biblioteca de Clases <archivo .dll> y Capa
Presentación CP en Formulario Windows
CL según diagrama UML que se muestra:
Ventas
– nCliente: string
– monto: double
– fecha: DateTime
+ Ventas( )
TarjetaCredito
Credito
– nTarjeta: string
– banco: string
– plazo: int
– pctoInt: double
CP  Eventos para asignar los datos a los clientes:
Cliente1: Nombre= Pedro Pérez
Monto de $3500
Depositado con tarjeta VISA
Banco UNION
Fecha 05-12/2014
Cliente2: Nombre= María Méndez
Monto de $1500
Depositado en fecha 12-11/2013
Crédito al 5%
Plazo de 23 meses
EP_7
Crear una aplicación 2 capas (Capa Lógica CL en Biblioteca de Clases <archivo .dll> y Capa
Presentación CP en Formulario Windows
CL según diagrama UML que se muestra:
Animal <abstract>
IVolador
+ Despegar ( )
+ Volar ( )
+ Aterrizar ( )
+ Comer ( )
Pajaro
Superman <sealed>
– tipo: string
+ TpoAnid ( ) : int
+ DetenerBalas ( ) : int
+ SaltarEdif ( ) : int
Elaborado por JCSoft Aplicaciones Informáticas
Ejercicios Propuestos
a) Utilice regiones para estructurar el código.
b) No codifique el cuerpo de los métodos de la CL
CP
Codifique eventos para:
c) Asignar a la variable tipo el tipo de ave entrada por el usuario en una caja de texto en la IU
d) Mostrar en una caja de mensajes el retorno del método DetenerBalas( )
EP_8
Dado el siguiente diagrama de clases UML, codificar considerando una aplicación en dos capas
(Capa Lógica <Biblioteca de Clases> y Capa de Presentación <Formulario Windows):
AC <abstract>
+ field1: double <static>
# field2: int
+A()
+ MA( ) <static>
IC
+ MC( ) : decimal
BC < sealed >
- field3: string
+ field4: decimal
+ BC ( )
+ MB( )
+ A( )
c)
d)
e)
f)
g)
Utilice regiones para estructurar el código.
Use la Herencia y Polimorfismo como se señala en el diagrama UML de la CL
Implementación:
El método MC( ) devolverá el producto de los valores contenidos en el field1 y el valor de
field3. No codifique el cuerpo del resto de los métodos de la CL.
En la capa de Presentación: Utilice un evento para:
Obtener en una caja de mensajes el resultado de invocar el MC( ) .
Valide la aplicación asignando, en la capa de presentación mediante cajas de texto, valores
a field1 y a field3.
Elaborado por JCSoft Aplicaciones Informáticas
Ejercicios Propuestos
EP_9
Crear una aplicación 2 capas (Capa Lógica CL en Biblioteca de Clases <archivo .dll> y Capa
Presentación CP en Formulario Windows
CL según diagrama UML que se muestra:
Empleado
– salBaseDia: decimal <static>
– cantDias: byte
+ Salario( ) : decimal
Salario = salBaseDia * cantDias
EmpleadoFijo
– desctoAFP: double
+ Salario ( ) : decimal
Salario= Salario_CB – desctoAfP
CP  Evento para mostrar en una caja de mensajes el sueldo devengado de un empleado fijo
Entre los datos mediante código en la CP según:
salBaseDia = $30
cantDias = 24
desctoAFP = 12.5%  sueldo devengado= $630
EP_10
Crear una aplicación 2 capas (Capa Lógica CL en Biblioteca de Clases <archivo .dll> y Capa
Presentación CP en Formulario Windows
CL según diagrama UML que se muestra:
MiClase1 <abstract>
+ c1: double <static>
# c2: int
+ MiClase1 ( )
+ M1(c1 : double ) <static>
MiClase2 <abstract>
+ c3: double <static>
+ MiClase2 ( )
+ M2(c3 : double )
MiClase3
+ M3( ) : decimal <static>
a) Utilice regiones para estructurar el código.
b)
Implementación:
El método M3( ) devolverá el promedio de los valores contenidos en c1 y el valor de c3.
No codifique el cuerpo del resto de los métodos de la CL.
En la capa de Presentación: Utilice un evento para:
Elaborado por JCSoft Aplicaciones Informáticas
Ejercicios Propuestos
Obtener el resultado de invocar el M3( ). Valide la aplicación asignando, en la capa de
presentación mediante cajas de texto, valores a c1 y a c3
EP_11
Complete los espacios en blanco con los modificadores que se muestran más abajo.
a) Una _________________ solo contiene operaciones.
b) Una clase ___________________ no puede contener métodos instanciados
c) Un método _________________ no contiene implementación.
d) Una clase ___________________ impide que se deriven clase de ella.
e) Un método _____________ en la clase derivada se considera un método polimórfico
virtual | abstract | sealed | interface | static | public const | override | new.
EP_12
Dado el siguiente diagrama de clases UML, codificar considerando una aplicación en dos capas
(Capa Lógica en una Biblioteca de Clases y Capa de Presentación en un Formulario):
Global <abstract>
+ nombres : string <static>
- sal : double
+ Retiros (cant : decimal ) : bool
+ Depositos (cant : decimal )
Cuentas <sealed>
+ Retiros (cant : decimal ) : bool
+ Depositos (cant : decimal )
+ Saldo( ) : double
a)
b)
c)
d)
e)
f)
Utilice regiones para estructurar el código.
Utilice la Herencia y el Polimorfismo según se señala en el diagrama UML
El método Saldo( ) devuelve el saldo del titular de la cuenta (sal)
El método Retiros ( ) retira la cantidad especificada en su argumento y devuelve true si es
posible efectuar el retiro (cant <= al saldo del cliente), caso contrario devolverá false y
Depositos ( ) aumenta el saldo del cliente en la cantidad especificada en su argumento,
En la capa de Presentación
Codifique un evento donde se asigne mediante código a nombres el nombre del alumno y
que se muestre en una caja de mensajes el retorno del método Saldo( ).
En la Interfaz de Usuario cree controles para efectuar depósitos y extracciones.
Elaborado por JCSoft Aplicaciones Informáticas
Descargar