Prueba 1 - Universidad de La Serena

Transcripción

Prueba 1 - Universidad de La Serena
Programación(Orientada a Objetos con Java)
Prueba nº 1
Dr. Eric Jeltsch F.
Pregunta nº 1(1 Pto.)
Dado el siguiente código Java. Se pide
a) Una vez realizado el proceso de compilación (virtual), informe si el programa compila
correctamente(es decir, libre de errores) o no. Justificando exactamente en donde ocurre el
error, si es que ocurre.
b) En caso de error, diga como mejorar el código, pero sin hacer grandes cambios. Se supone
que la salida debería informarme de los Km. por Litro (KpL).
class Transporte {
public static void main(String args[]) {
Vehiculo vehiculo = new Vehiculo();
vehiculo.print();
}
}
class Vehiculo {
public Vehiculo (double suKmporLitro) {
KmporLitro = suKmporLitro;
}
public void print() {
System.out.println("KpL: " + KmporLitro);
}
private double KmporLitro = 10;
}
Pregunta nº 2(1 Pto.)
Dado el siguiente código Java. Se pide
c) Una vez realizado el proceso de compilación (virtual), informe si el programa compila
correctamente(es decir, libre de errores) o no. Justificando exactamente en donde ocurre el
error, si es que ocurre.
d) En caso de error, diga como mejorar el código, pero sin hacer grandes cambios. Se supone
que la salida debería informarme de la marca del Vehículo.
class Transporte {
public static void main(String args[]) {
Auto gol = new Auto("Volkswagen");
gol.print();
}
}
class Vehiculo {
public void print() {
System.out.println("KpL: " + KmporLitro);
}
private double KmporLitro = 10;
}
class Auto extends Vehiculo {
public Auto (String suMarca) {
marca = suMarca;
}
public void print() {
System.out.println("Marca: " + marca);
}
private String marca;
}
___________________________________________________________________________
Escuela Ingeniería en Computación, Universidad de La Serena.
1
Programación(Orientada a Objetos con Java)
Prueba nº 1
Dr. Eric Jeltsch F.
Pregunta nº 3(1 Pto.)
Dado el siguiente código Java. Se pide
e) Una vez realizado el proceso de compilación (virtual), informe si el programa compila
correctamente(es decir, libre de errores) o no. Justificando exactamente en donde ocurre el
error, si es que ocurre.
f) En caso de error, diga como mejorar el código, pero sin hacer grandes cambios. Se supone
que la salida debería informarme de la marca del Vehículo y los KpL.
class Transporte {
public static void main(String args[]) {
Auto gol = new Auto("Volkswagen");
gol.setKmporLitro(26.9);
gol.print();
}
}
class Vehiculo {
public void print() {
System.out.println("KpL: " + KmporLitro);
}
protected void setKmporLitro (double kpl) {
KmporLitro = kpl;
}
private double KmporLitro = 10;
}
class Auto extends Vehiculo {
public Auto (String suMarca) {
marca = suMarca;
}
public void print() {
System.out.println("Marca: " + marca);
System.out.println("KpL: " + KmporLitro);
}
private String marca;
}
Pregunta nº 4(1 Pto.)
Considerando las siguientes clases.
public class Perro {
public void ladrar() {
System.out.println("El perro ladra");
}
public void bravo(Perro d) {
System.out.println("A");
}
}
public void bravo(Collie c) {
System.out.println("B");
}
public class Poodle extends Perro {
public int menear_cola() {
return 1;
}
}
___________________________________________________________________________
Escuela Ingeniería en Computación, Universidad de La Serena.
2
Programación(Orientada a Objetos con Java)
Prueba nº 1
Dr. Eric Jeltsch F.
public class Collie extends Perro {
public void ladrar() {
System.out.println("El collie ladra");
}
public int menear_cola() {
return 2;
}
}
public void bravo(Poodle p) {
System.out.println("D");
}
Y las siguientes declaraciones:
Perro Rin_Tin_Tin = new Perro();
Collie Lassie = new Collie();
Poodle Flupi = new Poodle();
Perro Dicki = new Collie();
Se pide, escribir la salida y justificarla en caso de error. (no se pide reescribirla!!)
Observación: las declaraciones son individuales y su resultado no altera el resultado de la
siguiente sentencia o la de las demás, para cuando Ud. haya encontrado un error en alguna
de las declaraciones.
Declaración
(a)Rin_Tin_Tin.ladra();
Salida y Justificación.
(b)Lassie.ladra();
(c)Flupi.ladra();
(d)Dicki.ladra();
(e)System.out.println(Rin_Tin_Tin.menear_cola());
(f)System.out.println(Lassie.menear_cola());
(g)System.out.println(Flupi.menear_cola());
(h)Rin_Tin_Tin.bravo(Rin_Tin_Tin);
(i)Rin_Tin_Tin.bravo(Lassie);
(j)Rin_Tin_Tin.bravo(Flupi);
(k)Rin_Tin_Tin.bravo(Dicki);
(l)Lassie.bravo(Rin_Tin_Tin);
(m)Lassie.bravo(Lassie);
(n)Lassie.bravo(Flupi);
(ñ)Lassie.bravo(Dicki);
___________________________________________________________________________
Escuela Ingeniería en Computación, Universidad de La Serena.
3
Programación(Orientada a Objetos con Java)
Prueba nº 1
Dr. Eric Jeltsch F.
Pregunta nº 5(1 Pto.)
Dada la clase CD_Ordenables, un constructor y métodos apropiados, tales como getArtista()
y getTitulo().
//----------------------------------------------------------------// se define una clase que implementa una interface.
//----------------------------------------------------------------public class CD_Ordenables implements Comparable
{
private String titulo, artista;
private double valor;
private int pistas;
//----------------------------------------------------------------// se define un constructor con una información específica.
//----------------------------------------------------------------public CD_Ordenable (String elTitulo, String elArtista,
double elValor, int lasPistas)
{
titulo = elTitulo;
artista = elArtista;
valor =
elValor;
pistas = lasPistas;
}
//----------------------------------------------------------------// Returns el nombre del artista para CD_Ordenable.
//----------------------------------------------------------------public String getArtista()
{
return artista;
}
//----------------------------------------------------------------// Returns el título del CD para CD_Ordenable.
//----------------------------------------------------------------public String getTitulo()
{
return titulo;
}
Se pide implementar la interface Comparable para ordenar los CD por artista y por título. No
necesita escribir una clase principal, sino solamente la codificación de lo solicitado. (No deben
ser más de 6 líneas, y su estructura es muy clásica.)
Pregunta nº 6(1 Pto.)
a) Un PC está compuesto por un Monitor, un Sistema, un Teclado y, opcionalmente, un ratón.
Por otra parte el sistema tiene una tarjeta madre, uno o varios procesadores, una o varias tarjetas
de memoria (RAM) y, uno o varios Discos. Se pide que grafique un modelo de diagrama de
clases UML, que represente la composición de un PC con estos diferentes componentes.
b) Graficar un diagrama de clase modelado con UML para diferentes tipos de figuras, según sus
dimensiones. La clase Figura debería ser abstracta y clase madre, pero que según su dimensión,
(es decir, recta real, plano real o espacio real), puedan sus clases derivadas ser equipadas con
ciertos atributos y métodos que son ad-hoc al ambiente en donde se encuentran. Por ejemplo, los
puntos de la recta real no deberían tener profundidad, pero si los objetos del espacio, etc.
___________________________________________________________________________
Escuela Ingeniería en Computación, Universidad de La Serena.
4

Documentos relacionados