Sunteți pe pagina 1din 22

EJERCICIOS DE PROGRAMACIÓN ORIENTADA A OBJETOS CON

LENGUAJE JAVA

Santa Osorio Luz Stella.

SENA
Formación virtual
Análisis y desarrollo de sistemas de información (1565031)

1
Tabla de contenido
INTRODUCCIÓN .............................................................................................................................. 3
OBJETIVOS ....................................................................................................................................... 4
Objetivo general .............................................................................................................................. 4
Objetivos específicos: ..................................................................................................................... 4
Ejercicios de programación orientada a objetos con lenguaje java .................................................... 5
Ejercicios:............................................................................................................................................ 5
1. Cree y compile la siguiente clase: Cita ...................................................................................... 5
2. Cree y compile la siguiente clase: Bus ........................................................................................ 8
3. Cree y compile la siguiente clase: Cuenta ................................................................................. 12
4. A partir del siguiente diseño, cree las clases correspondientes y su respectivo código para
generar los listados que se solicitan a continuación: ......................................................................... 16

2
INTRODUCCIÓN

Con el desarrollo de este laboratorio “Programación Orientada a Objetos (POO)”,


empleando el lenguaje de programación JAVA, me permite aplicar los conceptos de la
POO en contextos reales. Preparándome para sacar el máximo provecho a las plataformas
y lenguajes de programación más moderna utilizadas en la industria del desarrollo de
software actual.

3
OBJETIVOS

Objetivo general

 Sacar el máximo provecho a las plataformas y lenguajes de programación más


modernos utilizadas en la industria del desarrollo de software actual

Objetivos específicos:

 Aplicar el concepto de Abstracción en el desarrollo de aplicaciones de Software


Orientado a Objetos.
 Aplicar el concepto de Encapsulación en el desarrollo de aplicaciones de Software
Orientado a Objetos.
 Aplicar el concepto de Herencia en el desarrollo de aplicaciones de Software
Orientado a Objetos.
 Seguir un diseño definido y aplicarlo en el código de programas orientados a
objetos.
 Comprender la diferencia entre los modificadores de acceso en Java.
 Definir métodos estáticos en el desarrollo de aplicaciones orientadas a objetos.

4
Ejercicios de programación orientada a objetos con lenguaje java

Ejercicios:

1. Cree y compile la siguiente clase: Cita

Cita
-int numero
-int tipo
-double tarifa
-double valorFinal

+Cita(int numero, int tipo, double tarifa)


+ int getNumero()
+String getTipo()
+double getTarifa()
+double calcularValorFinal()

Notas:

• El método get Tipo() debe retornar un String que puede ser “especialista” o “general”,
será general si la cita es tipo 1, 2 o 3 y será especialista si el tipo de cita es 4 o 5.

• El valor final de la cita depende de la tarifa y el tipo de cita, las citas de tipo “especialista”
tienen un incremento del 50% sobre la tarifa y las citas de tipo “general” tiene un descuento
del 50% sobre la tarifa.

Cree la clase Principal.java donde solicite al usuario los datos para crear una cita (objeto de
la clase Cita) y a continuación presente los siguientes mensajes:

El número de la cita es: XXXXXX


Esta cita es de tipo: XXXXXXXX
Su tarifa normal es: XXXXXXXX

5
Pero por ser de tipo XXXXXXXX queda con un valor final de XXXXXXXX

package EjerciciosJava;

public class Cita {


int numero;
int tipo;
double tarifa;
double valorFinal=0;

public Cita(int numero, int tipo, double tarifa)


{
this.numero=numero;
this.tipo=tipo;
this.tarifa=tarifa;
}

public int getNumero()


{
return numero;
}

public String getTipo()


{
if(tipo<=3)
return "General";
else
return "Especialista";
}

public double getTarifa()


{
return tarifa;
}

public double calcularValorFinal()


{
double percent=tarifa*0.5;
if(tipo<=3){

valorFinal=tarifa-percent;
}

else{

6
valorFinal=tarifa+percent;
}

return valorFinal;
}
}

package EjerciciosJava;

import javax.swing.JOptionPane;

public class Principal1 {


public static void main(String[] args) {

int numero =Integer.parseInt(JOptionPane.showInputDialog(null,"Introduzca el


número de la cita"));
int tipo = Integer.parseInt(JOptionPane.showInputDialog(null, "Introduzca el tipo de
cita (Para general: 1, 2 y 3 y para especialista: 4 y 5)"));
double tarifa = Double.parseDouble(JOptionPane.showInputDialog(null, "Introduzca
la tarifa"));

Cita cita= new Cita(numero,tipo,tarifa);

System.out.println("El número de la cita es: "+cita.getNumero());


System.out.println("El tipo de cita es: "+ cita.getTipo());
System.out.println("Su tarifa normal es: "+ cita.getTarifa());
System.out.println("Pero por ser de tipo " + cita.getTipo() + " queda con un valor final
de: " + cita.calcularValorFinal());

7
2. Cree y compile la siguiente clase: Bus

Bus
-String placa
-int capacidadPasajeros
-double precioPasaje
-int pasajerosActuales
- int totalPasajeros

+Bus (String placa, int capacidad, double pasaje)


+String getPlaca()
+int getCapacidad()
+double getPrecioPasaje()
+int getPasajerosTotales()
+int getPasajerosActuales()
+void subirPasajeros(int pasajeros)
+void bajarPasajeros(int pasajeros)
+double getDineroAcumulado()

Notas:
 getPlaca: Obtiene la placa del bus
 getCapacidad: Obtiene la capacidad de pasajeros del bus
 getPrecioPasaje: Obtiene el valor del pasaje
 getPasajerosActuales: Obtiene el número de pasajeros que se encuentra en el bus
 getPasajerosTotales: Obtiene el número de pasajeros que se han subido al bus
 subirPasajeros: sube una cantidad de pasajeros al bus, teniendo en cuenta que no sobrepase la
capacidad del bus.
 bajarPasajeros: baja una cantidad de pasajeros del bus, teniendo en cuenta que no baje más
pasajeros de los que realmente existen en el bus.
 getDineroAcumulado: Obtiene todo el dinero que ha acumulado el bus teniendo en cuenta todos
los pasajeros que se han subido y el valor del pasaje.

Cree y compile la clase Principal.java donde instancie un objeto de la clase Bus y pruebe
cada uno de sus métodos.

8
package EjerciciosJava;

import javax.swing.JOptionPane;

public class Bus {


String placa;
int capacidadPasajeros;
double precioPasaje;
int pasajerosActuales;
int totalPasajeros;
double dineroAcumulado;
public int pasajeroSsubidos;
int pasajeros1;
int totalAcumulado;

public Bus (String placa, int capacidad, double pasaje, int actuales){

this.placa=placa;
this.capacidadPasajeros=capacidad;
this.precioPasaje=pasaje;
this.pasajerosActuales=actuales;

public String getPlaca(){

return placa;

}
public int getCapacidad(){

return capacidadPasajeros;

}
public double getPrecioPasaje(){

return precioPasaje;

}
public int getPasajerosTotales(){

return totalPasajeros;

}
public int getPasajerosActuales(){
9
return pasajerosActuales;

}
public void subirPasajeros(int pasajeros){

if (pasajeros > capacidadPasajeros) {

JOptionPane.showMessageDialog(null, " No se pueden subir " + pasajeros + ",


porque es SOBRECUPO ");

}
else {
if ((pasajerosActuales + pasajeros) > capacidadPasajeros) {
JOptionPane.showMessageDialog(null, " No se pueden subir " + pasajeros + ",
porque es SOBRECUPO ");

}else{

totalPasajeros=pasajeros;
pasajerosActuales=pasajerosActuales+pasajeros;
totalAcumulado = pasajerosActuales + pasajeros;

}
}

public void getDineroAcumulado(){

dineroAcumulado=(pasajerosActuales*precioPasaje);

public double totalDineroAcumulado(){

return dineroAcumulado;
}

public void bajarPasajeros(int pasajeros1){

if (pasajeros1>pasajerosActuales) {

JOptionPane.showMessageDialog(null, "La cantidad de pasajeros que desea bajar es


mayor al número de pasajeros que actualmente hay en el bus!!!");
10
}
else{
pasajerosActuales=pasajerosActuales-pasajeros1;
}

}
}

package EjerciciosJava;

import javax.swing.JOptionPane;

public class Principal2 {


public static void main(String[] args) {

String placa=JOptionPane.showInputDialog("Digite placa del bus");


int capacidad=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese capacidad
del bus"));
int actuales = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese número de
pasajeros que estan en el bus "));
double pasaje = Double.parseDouble(JOptionPane.showInputDialog(null,"Valor
pasaje"));

if (actuales>capacidad) {

System.out.println("Error!!! El número actual de pasajeros sobrepasa la capacidad


del bus");
}else{
Bus bus = new Bus(placa,capacidad,pasaje,actuales);

int pasajeros=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese cantidad


de pasajeros a subir al bus!"));
bus.subirPasajeros(pasajeros);
JOptionPane.showMessageDialog(null,"El número de pasajeros actuales es:
"+bus.getPasajerosActuales());
JOptionPane.showMessageDialog(null,"El bus tiene una capacidad de:
"+bus.getCapacidad());
JOptionPane.showMessageDialog(null,"La placa del bus es: "+bus.getPlaca());
bus.getDineroAcumulado();
JOptionPane.showMessageDialog(null,"El número de pasajeros que se han subido es:
"+bus.getPasajerosTotales());

11
int pasajeros1= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese número
de pasajeros que va a bajar del bus"));

bus.bajarPasajeros(pasajeros1);
JOptionPane.showMessageDialog(null,"El dinero acumulado es: $" +
bus.totalDineroAcumulado());
}

}
}

3. Cree y compile la siguiente clase: Cuenta

Cuenta
- String numero
- String tipo
- double saldoActual
- double saldoMinimo

+ Cuenta(int numero, String tipo, double valorInicial)


+ void consignar (double monto)
+ void retirar (double monto)
+ double getSaldo()
+ double getSaldoMinimo()
+ double getCapacidadCredito()

Notas:

 Las cuentas solo pueden ser de tipo “ahorro” o “crédito”


 El saldo mínimo de una cuenta es el 10% del valor inicial con que se crea la cuenta.
 Consignar (double monto): incrementa el dinero de la cuenta con base en el monto de dinero
que se desea consignar.
 Retirar (double monto): retira el monto dado de la cuenta siempre y cuando la cuenta no quede
con un saldo inferior al saldo mínimo, si esto ocurre, solo se retirará el dinero autorizado.
 getSaldo(): obtiene el saldo actual de la cuenta.

12
 getSaldoMinimo(): obtiene el saldo mínimo de la cuenta.
 getCapacidadCredito(): Para cuentas de ahorro, la capacidad de crédito es igual a la diferencia
entre al saldo actual y el saldo mínimo y para cuentas de crédito, la capacidad de crédito es 3
veces el saldo actual.

Cree y compile la clase Principal.java y en ella cree un objeto de la clase Cuenta y pruebe
cada uno de sus métodos.

package EjerciciosJava;

import javax.swing.JOptionPane;

public class Cuenta {


/* ---------------------------/
/ Atributos de la clase cuenta/
/----------------------------*/

int numero;
String tipo;
double valorInicial;
double saldoActual;
double saldoMinimo;
double capacidad;
double autorizado;
double capacidadCredito;

/* ---------------------------/
/ Metodos de la clase Cuenta /
/----------------------------*/

// Metodo Constructor
Cuenta(int número,String tipo,double valorInicial){

this.numero=numero;
this.tipo=tipo;
this.saldoActual=valorInicial;
this.valorInicial=valorInicial;

/* -----------------------------------/
/ Método para consignar en la cuenta /
/------------------------------------*/

13
public void consignar (double monto){

saldoActual=saldoActual+monto;

/* -----------------------------------/
/ Método para saber saldo mÃÂnimo /
/------------------------------------*/

double getSaldoMinimo(){

saldoMinimo=valorInicial*0.1;

return saldoMinimo;

/* -----------------------------------/
/ Método para retirar dinero de la cuenta /
/------------------------------------*/

public void retirar (double monto1){

saldoActual=saldoActual-monto1;

if (saldoActual<saldoMinimo) {
saldoActual=saldoActual+monto1;
autorizado=saldoActual-saldoMinimo;
JOptionPane.showMessageDialog(null, "No puede retirar ésta cantidad de
dinero porque su saldo actual serÃÂa inferior a su saldo mÃÂnimo\n"
+ ", por lo tanto solo puede retirar: " + autorizado);
saldoActual=saldoActual-autorizado;

/* ----------------------------------/
/ Método para consultar saldo /
/-----------------------------------*/

double getSaldo(){

return saldoActual;

14
}

/* -------------------------------------------/
/ Método para conocer la capacidad de crédito/
/-------------------------------------------*/

double getCapacidadCredito(){

if ("ahorro".equals(tipo)) {

capacidadCredito=saldoActual-saldoMinimo;

if ("credito".equals(tipo)) {

capacidadCredito=saldoActual*3;

return capacidadCredito;

}
}

package EjerciciosJava;

import javax.swing.JOptionPane;

public class Principal3 {


public static void main(String[] args) {

/* --------------------------/
/ Captura de datos inicales /
/---------------------------*/
int numero=Integer.parseInt(JOptionPane.showInputDialog("Digite el número de la
cuenta"));
String tipo=JOptionPane.showInputDialog("Digite el tipo de cuenta, ahorro o
credito");
double valorInicial=Double.parseDouble(JOptionPane.showInputDialog("Digite el
valor que va a consignar inicialmente"));

/* --------------------------/
/ Creando el objeto Cuenta /
15
/---------------------------*/

Cuenta cuenta=new Cuenta(número,tipo,valorInicial);

double monto=Double.parseDouble(JOptionPane.showInputDialog("Digite la
cantidad de dinero a consignar"));
cuenta.consignar(monto);

cuenta.getSaldoMinimo();

double monto1=Double.parseDouble(JOptionPane.showInputDialog("Digite la
cantidad de dinero a retirar"));

cuenta.retirar(monto1);

JOptionPane.showMessageDialog(null,"Su saldo Actual es: " + cuenta.getSaldo());


JOptionPane.showMessageDialog(null,"El saldo minimo de su cuenta es: " +
cuenta.getSaldoMinimo());
JOptionPane.showMessageDialog(null,"Su capacidad de Credito es: " +
cuenta.getCapacidadCredito());

}
}

4. A partir del siguiente diseño, cree las clases correspondientes y su


respectivo código para generar los listados que se solicitan a
continuación:

16
a. Todos los nombres de los clientes que tiene el banco
b. Todas los nombres y cédulas de las personas clientes del banco
c. El nombre y representante de cada Empresa
d. Nombres de los clientes menores de edad
e. El nombre y la edad del cliente más Joven
f. El nombre y la edad del cliente más viejo

package Ejercicios;
import javax.swing.JOptionPane;
class Banco{
String nombre;
Cliente clientes[];
int numeroDeClientes;

public Banco(String nomb){


this.nombre=nomb;

}
public String obtnombre(){
return nombre;

17
}
public void cambiarNombre(String nombre){

}
public void adCliente(Cliente clie){

}
public int obtNumClientes(){
return numeroDeClientes;
}
Cliente obtCliente(int posicion){
return null;

}
Cliente[] obtClientes(){
return null;

package Ejercicios;

abstract class Cliente{


protected String nombre;

public Cliente(String nom)


{
this.nombre=nom;

public String obtNombre() {


return nombre;
}

abstract String obtIdentificacion();

abstract String obtRepresentante();

abstract int obtEdad();


}

18
package Ejercicios;

class Empresa extends Cliente{


String nit;
String representante;

public Empresa(String n, String nom, String r){


super(nom);
this.nit=n;
this.representante=r;
}

public String obtIdentificacion(){


return nit;

}
public String obtRepresentante(){
return representante;

}
public String cambiarRepres(String repres){
return null;

}
public int obtEdad(){
return 1000;

package Ejercicios;

public class Persona extends Cliente{


String cedula;
int edad;

19
public Persona(String ced, String nom, int ed){
super(nom);
this.cedula=ced;
this.edad=ed;
}

public String obtIdentificacion(){


return cedula;
}
public int obtEdad(){
return edad;
}
public void cumpliranos(){

}
public String obtRepresentante(){
return null;

package Ejercicios;
import javax.swing.JOptionPane;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Principal4 {

private static Cliente per;

public static void main(String args[]) {


List<Cliente> lista = new ArrayList<>();
int numeroDeClientes = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese
el número de clientes"));
for (int i = 1; i <= numeroDeClientes; i++) {
int tipoCliente = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el
tipo de cliente: 1 para Empresa o 2 para Persona"));
String nom = JOptionPane.showInputDialog(null, "Ingrese el nombre del cliente");
if (tipoCliente == 1) {
String nit = JOptionPane.showInputDialog(null, "Ingrese el nit de la empresa");
String r = JOptionPane.showInputDialog(null, "Ingrese el representante");
20
Empresa emp = new Empresa(nit, nom, r);
emp.obtIdentificacion();
//Esta linea no se con que fin es
//emp.obtRepresentante();
//ESTA LINEA ES LA QUE UD BORRO, AQUI ES DONDE SE ASIGNA EL
OBJETO AL ARRAY LIST
lista.add(emp);
} else {
String ced = JOptionPane.showInputDialog(null, "Ingrese la cedula de la
persona");
int ed = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese la edad de
la persona"));
Persona per = new Persona(ced, nom, ed);
//AQUI ES DONDE SE ASIGNA EL OBJETO AL ARRAY LIST
lista.add(per);
}
}
System.out.println("Todos los nombres que tiene el banco son: ");
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
System.out.println(lista.get(cuenta).nombre);
}
System.out.println("Todos los nombres y cedulas de las personas clientes del banco
son: ");
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Persona){
System.out.println("La cedula del cliente es
"+lista.get(cuenta).obtIdentificacion());
System.out.println("El nombre del cliente es "+lista.get(cuenta).obtNombre());
}
}
System.out.println("Todos los nombres y representantes de cada empresa son: ");
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Empresa){
System.out.println("El nombre del cliente es "+lista.get(cuenta).obtNombre());
System.out.println("El nombre del representante es
"+lista.get(cuenta).obtRepresentante());
}
}
System.out.println("Los nombres de los clientes menores de edad son: ");
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Persona){
if (lista.get(cuenta).obtEdad()<18){
System.out.println("El nombre del cliente es "+lista.get(cuenta).obtNombre());
}
}
}
int menor=1000;
21
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Persona){
if (lista.get(cuenta).obtEdad()>1){
if (lista.get(cuenta).obtEdad()<menor){
menor=lista.get(cuenta).obtEdad();
}
}
}
}
System.out.println("La edad del cliente mas joven es "+menor );
int mayor=0;
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Persona){
if (lista.get(cuenta).obtEdad()>18){
if (lista.get(cuenta).obtEdad()>mayor){
mayor=lista.get(cuenta).obtEdad();
}
}
}
}
System.out.println("La edad del cliente mas viejo es "+mayor);

}
}

22

S-ar putea să vă placă și