Ejercicios 8
Ejercicios 8
Ejercicios 8
Personal de la Universidad
1 n
PAS Profesor Estudiante
class Programa {
public static void main(String [ ] args){
Clase1 obj1=new Clase1();
obj1.imprimir(4);
Clase2 obj2=new Clase2();
obj2.imprimir(3);
}
}
class Clase1 {
protected int prop1=10,prop2=4;
public void imprimir(int i){
prop1=prop1+i;
prop2=prop2+i;
System.out.print(prop1+" "+prop2+" ");
}
}
class Clase2 extends Clase1 {
public void imprimir(int i){
prop1=prop1-i;
prop2=prop2-i;
System.out.print(prop1+" "+prop2);
}
}
class Driver {
public static void main(String[] args) {
Uno [] lista =new Uno [2];
lista [0]= new Dos();
lista [1]= new Tres();
for (int i=0; i<2; i++){
lista[i].frase();
}
}
}
6. En un banco tenemos varios tipos de cuentas bancarias en todas las cuales es posible retirar fondos y
hacer depósitos. Consideremos tres tipos de cuentas: cuenta corriente, libreta de ahorro y libreta 2000.
Las cuentas corrientes se usan para realizar pagos y no proporcionan ningún interés. La cuenta
corriente puede tener asociada una libreta de ahorro para cubrir descubiertos de la cuenta corriente. Por
otro lado, las libretas de ahorro proporcionan un interés del 4%. La libreta 2000 es un tipo de libreta de
ahorro que rinde un mayor interés (del 8%) pero la retirada de fondos está penalizada con un 2% de la
cantidad retirada. En estas condiciones:
a) Construir un diagrama de clases usando UML, incluyendo los atributos y métodos en cada clase.
Incluya también las relaciones entre las distintas clases
b) Programar las clases resultantes
c) Construir un programa ejemplo que use las clases del apartado a). En el programa deben crearse
objetos de cada una de las clases, inicializando las cuentas con unos valores iniciales. Además se
retiraran fondos de cada uno de los tipos de cuenta, se actualizarán los intereses de la libreta 2000 y
se depositará una determinada cantidad en la libreta 2000.
class Padre {
protected int aa=0;
public int aa() {
return aa;
}
}
class Hija extends Padre {
public Hija (int bb) {
this.aa=bb+1;
}
}
class Nieta extends Hija {
public Nieta (int cc) {
super(cc+2);
}
}
class Familia {
public static void main(String [] args){
Hija h= new Hija(4);
h=f(h);
System.out.println (h.aa());
}
private static Nieta f (Padre h) {
Nieta n=new Nieta (h.aa());
return n;
}
}
Publicación
Tesis Revista
donde la clase publicación tiene los métodos: devuelve_autor y devuelve_editorial. La clase tesis tiene
además el método devuelve_departamento y la clase revista devuelve_número_de_revista. ¿Qué
métodos podrían ser invocados usando una variable polimórfica de tipo publicación?
Naturaleza
Animal
Hervíboro
Rinoceronte
Elefante
class Ejercicio {
public static void main (String [] args) {
Vehiculo v= new Vehiculo("AAA", 1000);
Coche c = new Coche("BBB", 1000);
v.incrementar_precio(100);
System.out.print(v.devolver_marca()+” “);
System.out.println(v.devolver_precio());
c.incrementar_precio(100);
System.out.print(c.devolver_marca()+” “);
System.out.println(c.devolver_precio());
v=c;
v.incrementar_precio(100);
System.out.print(v.devolver_marca()+” “);
System.out.println(v.devolver_precio());
}
}
class Vehiculo {
protected String marca;
protected double precio;
public Vehiculo (String marca, double precio) {
this.marca=marca;
this.precio=precio;
}
public void incrementar_precio(double p) {
precio=precio+p;
}
11. Implemente el código de una interfaz llamada Primera que contenga dos métodos A y B. Defina otra
interfaz llamada Segunda que herede de la anterior y además contenga un método llamado C. Escriba el
código de otra clase llamada Objetos que use la segunda interfaz. ¿Cuántos métodos debe implementar
esta clase? Implemente dichos métodos de forma que cada método imprima una línea indicando el
nombre del método. Cree un programa que utilice los métodos definidos.
12. Construya un programa que calcule el volumen molar de una sustancia a una presión y temperatura
dadas usando la ecuación de estado de un gas ideal: PV=nNakT, donde p es la presión, V el volumen, n
el número de moles, Na la constante de Avogadro, k la constante de Boltzmann y T la temperatura.
23
Sabiendo que la contante de Avogadro vale 6.023 10 partículas/mol y la constante de Boltzmann
1.38066 10-23 J/K, el programa debe hacer uso de dichas constantes definiéndolas a través de una
interfaz.
class Ejercicio {
public static void main (String [] args) {
Alumno alumno1;
alumno1=new Alumno("Felix", 5.0);
System.out.println (alumno1.calcularnota());
alumno1=new Alumno_Ordinario (“Lucia”, 7.0, ‘1’);
System.out.println (alumno1.calcularnota());
}//fin método
}//fin clase Ejercicio
interface A {
double a=2.3;
void imprimeresultadoA () {
System.out.println ("valor de a"+ a);
}
}
interface B {
int b=435;
void imprimeresultadoB () ;
}
class AA implements A, B {
double aa=324.32;
public void imprimeresultadoA () {
System.out.println ("valor de a"+ a+ "valor de aa"+ aa);
}
public void imprimeresultadoB () {
System.out.println ("valor de b"+ b+ "valor de aa"+ aa);
}
}
class Principal {
public static void main (String [] args) {
AA ob1=new AA();
ob1.imprimeresultadoA();
ob1.imprimeresultadoB();
}
}
15. En un banco se tienen una serie de clientes caracterizados por su NIF, número de cuenta y saldo.
Dentro de estos clientes existe un cliente especial llamado Preferente. Dicho cliente se caracteriza
porque posee varios fondos de inversión. Cada fondo se caracteriza por su número y el saldo mensual.
Se pide:
a) Dibujar, usando UML, el diagrama de clases indicando qué clases hay y la relación entre ellas.
b) Implementar en Java todas las clases resultantes del diagrama.
c) Escribir un programa principal en Java donde se creen un cliente y un cliente Preferente. Para cada
uno de ellos se debe poder consultar todos los atributos que contiene. Además, para el caso del cliente
Preferente se debe poder consultar también los datos de cada uno de sus fondos (número y el saldo
mensual). El número de fondos que posee el cliente Preferente y las características de cada fondo deben
introducirse por teclado.
16. Una tienda de informática vende dos tipos de artículos (software y hardware) ambos caracterizados
por su código (de tipo char) y su descripción. Además, en los productos software hay que indicar el tipo
de producto (con una cadena), y en los hardware se debe indicar si es un periférico o no. Para saber el
precio de un artículo utilice una interface que indique que para un artículo cuyo código es A el precio es
100.0 euros, si el código es B el precio es 50.3; para un artículo con código C el precio es 150.50 euros.
En el caso de ser un producto hardware, los artículos sólo serán A ó B y si es un periférico el precio se
incrementará en un 10%. Los productos sofware serán exclusivamente B ó C incrementándose el precio
del artículo en un 5% si el sofware es de tipo ProgramaJuegos. Nota: la interface debe tener un método
abstracto.
a) Dibuje en UML los diagramas de las clases y las relaciones entre ellas. Para cada clase debe
indicar los atributos y métodos teniendo en cuenta que se puede consultar y modificar cada
atributo.
b) Implemente las clases y la interfaz.
c) Realice un programa principal donde cree un objeto software y otro hardware y muestre el
precio y demás características del objeto.