Ejercicio 1

Anuncio
FACULTAD DE ECONOMIA Y ADMINISTRACION
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION
CÁTEDRA PROGRAMACION GENERAL
Trabajo Práctico Nº 4
Ejercicios Teóricos
1. Indique si las siguientes afirmaciones son verdaderas o falsas
a. La programación orientada a objetos hace uso de clases y
envío de mensajes entre objetos. ……………………………. V– F
b. Las clases están compuestas por métodos y atributos ........................V – F
c. El constructor predefinido retorna un tipo void……………….. V – F
d. El constructor predefinido toma como parámetro un valor tipo void.….V – F
e. El constructor predefinido toma parámetros. .………. .………. .……….V – F
2. ¿Cuál de las siguientes características no pertenece a un objeto?
a.
b.
c.
d.
e.
Un objeto es identificable por un único nombre
Un objeto tiene estados.
Un objeto puede formar parte de una clase.
Un objeto puede pertenecer a distintas clases.
Todas las anteriores
3. Los atributos de un objeto forman:
a. Los valores posibles del objeto.
b. Su estado.
c. Su comportamiento.
d. Su conjunto de métodos.
4. Indique cuáles de las siguientes sentencias suponen por sí solas la creación de
un objeto de tipo Persona.
a.
b.
c.
d.
e.
Persona persona;
Persona = new Persona;
persona = new Persona();
Persona p= new Persona;
Ninguna de las anteriores.
5. Los parámetros o argumentos de un método permiten:
f.
g.
h.
i.
Saber en qué objeto está el método.
Pasar información al método para que pueda ejecutar su función.
Adaptar el método a los atributos del objeto.
Cambiar la forma de funcionar del método.
6. En Java, los parámetros de tipos primitivos de cualquier método:
2° Cuatrimestre 2007 – Tecnicatura
FACULTAD DE ECONOMIA Y ADMINISTRACION
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION
CÁTEDRA PROGRAMACION GENERAL
j.
Se pueden pasar por valor o por referencia, basta con indicarlo en la
cabecera.
k. No se pueden pasar parámetros de tipos primitivos.
l. Se pasan por valor siempre.
m. Se pasan por referencia siempre.
6.
¿Qué es la sobrecarga?
a. Tener dos o más métodos con igual nombre pero con diferente resultado
en la misma clase
b. Tener dos o mas métodos afectando a los mismos atributos en la misma
clase
c. Tener dos o más métodos con igual nombre pero con diferente signatura
de tipo en la misma clase.
d. Tener dos o más métodos con distinto nombre y distintos parámetros
7. El puntero this
e. Apunta a la clase en que se encuentra definida la función miembro.
f. Apunta a una variable miembro especial de un objeto.
g. Apunta a una variable miembro de la clase derivada que invoca el método.
h. Es la referencia al objeto que recibe el mensaje.
8. ¿Cuándo es válido llamar al método System.out.println pasando como
parámetro una referencia (como en el siguiente ejemplo)?
C objeto = new C ();
System.out.println (objeto);
i.
Cuando se refiere a un objeto con algún método que devuelva un objeto de
tipo String.
j. Siempre.
k. Nunca.
l. Sólo para los objetos de una clase que define un método toString.
9. Dados los siguientes fragmentos de código:
class Numero {
public Numero (int i) {
valor = i;
}
public int valor () {
return valor;
}
private int valor;
}
Numero a = new Numero (2);
Numero b = new Numero (4);
b = null;
a = b;
Indique cuántos objetos de la clase número se pueden utilizar después de la última
sentencia
m. 0
2° Cuatrimestre 2007 – Tecnicatura
FACULTAD DE ECONOMIA Y ADMINISTRACION
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION
CÁTEDRA PROGRAMACION GENERAL
n. 1
o. 2
p. 3
10. Indique cual de las siguientes son signaturas validas en el método main
q. public static void main (String [] argu)
r. public static main (String [] args )
s. public static void main (String args)
t. private static void main (String args [])
11. ¿Cuál es la visibilidad que debemos poner a un atributo para que sea accesible
desde cualquier método de cualquier objeto de cualquier clase?
a.
b.
c.
d.
public.
private.
Nada, de paquete.
protected.
12. ¿Dónde comienza la ejecución de un programa desde el intérprete?
e.
f.
g.
h.
En algún método estático que hay que indicar.
Creando un objeto inicial.
En el método estático main.
No se puede.
13. Dada la siguiente clase
class Base{
int Edad=33;
}
¿Cómo mejorarías la clase con respecto al acceso al campo Edad?
a. Definir la variable Edad como privada
b. Definir la variable Edad como protegida
c. Definir la variable Edad como privada y crear un método ‘get’ que la
devuelva y un método ‘set’ que la actualice
d. Definir la variable Edad como protegida y crear un método ‘set’ que la
devuelva y un método ‘get’ que la actualice
2° Cuatrimestre 2007 – Tecnicatura
FACULTAD DE ECONOMIA Y ADMINISTRACION
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION
CÁTEDRA PROGRAMACION GENERAL
Ejercicio 1
a. Detallar mínimo 5 atributos para las siguientes clases:
i. Persona
ii. Animal
iii. Vehículo
iv. Inmueble
v. Estudiante
vi. Reserva de vuelo
vii. Entrada cine
b. Detallar mínimo 5 métodos para cada una de las clases, especificando
que haría cada método
Ejercicio 2
Crear en eclipse un nuevo paquete llamado practico4.a
Crear una clase Ejercicio1 dentro del nuevo paquete. Escriba el código dentro del
método main que partiendo de la cadena "Esta es una cadena de prueba" muestre
por consola lo siguiente:
1.
2.
3.
4.
5.
6.
Su longitud
El carácter asociado al índice 7
La subcadena ubicada entre el carácter 11 y el carácter 17
El índice que ocupa el carácter 'p'
La cadena transformada en mayúsculas
Comprobar si el primer carácter de la cadena es 'E' y mostrar por consola un
mensaje que lo indique.
7. Por último, comprobar si el primer carácter de la cadena es 's' y mostrar por
consola un mensaje que lo indique.
8. Reemplazar el carácter “a” de la cadena por el carácter “b”
Por consola se visualizara:
Longitud de la cadena: 46
Índice 7 asociado al carácter r
La subcadena generada desde 20 incluido hasta 26 excluido es creere
El índice del carácter x es 9
La cadena en mayúsculas es: EN MI PROXIMA VIDA, CREERE EN LA
REENCARNACION
La String comienza con E es: trae
La String comienza con s es: false
2° Cuatrimestre 2007 – Tecnicatura
FACULTAD DE ECONOMIA Y ADMINISTRACION
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION
CÁTEDRA PROGRAMACION GENERAL
Ejercicio 3
Crear una clase Volumenes dentro del paquete practico3.
Crear dentro de la clase Volumenes 2 métodos uno calculaVolumenCilindro y otro
calculaVolumenEsfera que devuelvan el volumen de un cilindro y el volumen de una
esfera respectivamente. El método calculaVolumenCilindro tiene dos parámetros
(altura radio) y el método calculaVolumenEsfera tiene un solo parámetros (radio).
Dentro del método main calcular y mostrar por pantalla:
1 - El volumen de un cilindro con altura = 2.5 y radio=3
2 - El volumen de una esfera con radio = 5
Esqueleto del código:
Ejercicio 4
Crear en eclipse un nuevo paquete llamado practico4.b
1. Implementar la clase “pública” Disquera, que contenga un método “público”,
horarioAtencion. Este método mostrará por pantalla las horas en las que la
tienda de música está abierta.
2. Crea un método main (public static void main) que realice las siguientes
tareas:
a. Crear una instancia de Disquera
b. Invocar el método horarioAtencion.
c. Ejecutar el programa y comprobar que la salida es la esperada.
Salida esperada:
Horario: 9:00 AM – 21:00 PM
2° Cuatrimestre 2007 – Tecnicatura
FACULTAD DE ECONOMIA Y ADMINISTRACION
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION
CÁTEDRA PROGRAMACION GENERAL
3. Añadir una variable “privada” de instancia “dueño” a la clase Disquera. El
tipo de esta variable debe ser String, y los objetos de la clase se deben
inicializar con el valor “Sin dueño”.
a. Añadir el método setDueño a la clase Disquera. Este método debe
establecer el valor de la variable “dueño” de la clase al valor
recibido como parámetro, en un String.
b. Modifica el método main de la clase de prueba utilizada en el punto
2 para que se establezca el nombre del dueño de la tienda creada y
se muestre por pantalla a la vez que el horario de la misma.
c. Ejecuta el programa y compara el resultado con la salida esperada.
Salida esperada:
Horario: 9:00 AM – 21:00 PM
Miguel Angel Corella, Propietario
4. Añade las variables “horaApertura” y “horaCierre” a la clase como enteros
(tomarán valores entre 0 y 23). Sus valores iniciales deberán ser 9 y 21
respectivamente. Las variables deben inicializarse dentro del constructor de la
clase.
a. Añade los métodos necesarios (de acceso y modificación) para
las variables creadas (gethoraApertura, sethoraApertura,
gethoraCierre, sethoraCierre).
b. Añade un método “tiendaAbierta” que devuelva un valor bolean
en función de si, a la hora recibida como parámetro entero (entre
0 y 23) la tienda está abierta o no.
c. Modifica la función “horarioAtencion” para que muestre las
horas de apertura y cierre que estén almacenadas en la clase.
d. Añade funcionalidad al main de prueba para que incluya los
mensajes “Estamos abiertos/cerrados” en función de una hora
que se le pase como argumento de entrada.
e. Ejecutar el código y compara el resultado con la salida esperada
del programa.
Salida esperada:
Estamos abiertos.
Horario: 9:00 AM – 21:00 PM
Miguel Angel Corella, Propietario
Ejercicio 5
Crear dentro del practico4.b creado en el ejercicio anterior la clase “Persona”
1. Implementar la clase “pública” Persona, con las variables: nombre, apellido,
dirección, tipo, numeroDocumento.
2. Añade los métodos necesarios (de acceso y modificación) para las variables
creadas (getNombre, setNombre, getApellido, setApellido, getDirección,
setDirección,
setTipo,
getTipo,
setNumeroDocumento,
getNumeroDocumento).
2. Crear un constructor para la clase que inicialice las variables con valores
nulos.
3. Crea un método main (public static void main) que realice las siguientes
tareas:
2° Cuatrimestre 2007 – Tecnicatura
FACULTAD DE ECONOMIA Y ADMINISTRACION
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION
CÁTEDRA PROGRAMACION GENERAL
a. Crear una instancia de Persona
b. Llamar a cada uno de los métodos para setear el valor de de cada
variable de la clase
c. Ejecutar el programa y comprobar que la salida es la esperada.
Ejercicio 6
Modificar la clase Disquera del ejercicio 3 de modo tal que la variable instancia
dueño referencie a un objeto tipo persona del ejercicio 4.
Ejercicio 7
a - Crear una clase Dueño que almacene nombre, apellido, dirección, tipo,
numeroDocumento, CUIL, CUIT, y si es responsable inscripto o no. Vea como
implementar la clase Dueño para que herede de la clase Persona y además contenga
los datos propios de Dueño.
b - Modifique la Clase Disquera del ejercicio 5 de modo tal que la
variable instancia dueño que referencie a un objeto tipo Dueño del ejercicio 4.
2° Cuatrimestre 2007 – Tecnicatura
Descargar