Sunteți pe pagina 1din 31

UNIVERSIDAD DE PANAMÁ

CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS


FACULTAD DE INFORMÁTICA ELECTRÓNICA Y COMUNICACIONES
LICENCIATURA EN INFORMÁTICA PARA LA GESTIÓN
EDUCATIVA Y EMPRESARIAL

TEMA:

MATERIA:
PROGRAMACIÓN IV

ESTUDIANTES:
APARICIO, YULIAN 9-719-45
BERRY, FIT 9-713-110

PROFESOR:
DIEGO SANTIMATEO

FECHA DE ENTREGA:
12/11/07

II- SEMESTRE 2007


DIEGO SANTIMATEO...............................................................................................................1
INTRODUCCIÓN ..........................................................................................................................1
OBJETIVOS....................................................................................................................................2
GENERAL...................................................................................................................................2
ESPECIFICOS:............................................................................................................................2
FUENTES DE INFORMACIÓN COMENTADAS........................................................................3
GLOSARIO DE TERMINOS..........................................................................................................7
EJEMPLIFICACION DE CONCEPTOS......................................................................................10
1.Super clase :............................................................................................................................10
2.Herencia: ................................................................................................................................11
3.Sobrecarga de Métodos: ........................................................................................................13
4.Polimorfismo: ........................................................................................................................15
5.Clases abstractas: ...................................................................................................................16
PRESENTACIÓN DE UNA APLICACIÓN EJECUTABLE.......................................................17
Código fuente:............................................................................................................................18
DIAGRAMA DEL PROGRAMA.................................................................................................23
Class salario...............................................................................................................................23
CapturayDespliega.....................................................................................................................23
DESCRIPCIÓN DE LAS CLASES..............................................................................................25
Empleado.......................................................................................................................................26
REFLEXIONES FINALES...........................................................................................................27
REFLEXION GRUPAL:....................................................................................................27
INTRODUCCIÓN

Este trabajo presenta un repaso de lo que es la programación orientada a objetos,


incluyendo glosario de definiciones básica de conceptos involucrados al POO donde
se explica cada concepto de una manera fácil de comprender .

Se ha distribuido de una forma en la cual se pueda apreciar y comprender fácilmente


todo lo referente a la Jerarquía de Clases de un modo ordenado en el cual por medio
de ejemplos y conceptos se detallarán los aspectos más importantes de la Jerarquía de
Clases.

Al final de todos los conceptos y ejemplos se muestra una referencia


bibliográfica o webgrafía por así si se desea ampliar más las diferentes características
referentes a éste tema. también se mostrara una propuesta ejecutable que abraca todo
los temas desarrollado en este trabajo que da una posible solución de un problema
que puede ser de tipo científico o de la realidad nacional o institucional, con la
propuesta de diagrama UML de dicha aplicación.
Sin más que decir se agradece la buena utilización de éste trabajo y espero sirva para
cualquier persona que desea ampliar sus conocimientos sobre la POO.

Herencia y Jerarquía 1 Aparicio Yulian, Berry Fitz


OBJETIVOS

GENERAL.

 Comprender los conceptos básicos de la POO.

ESPECIFICOS:

 Investigar acerca de los conceptos básicos de la POO.

 Ejemplarizar cada concepto con sus respectiva definición.

 Elaborar un glosario de términos debidamente definido por el estudiante según


su interpretación de cada uno de los conceptos principales de la POO.

 Desarrollar una aplicación ejecutable en java seleccionada por el estudiante


donde hace uso de todos los conceptos principales de la POO, para la solución
de algún problema.

Herencia y Jerarquía 2 Aparicio Yulian, Berry Fitz


FUENTES DE INFORMACIÓN COMENTADAS

1. Puchol, Antonio. 17-Junio-2001. Apuntes Lenguaje Java.(Herencia).[web en


línea]. Disponible desde en Internet en:
<http://www.arrakis.es/~abelp/ApuntesJava/Herencia.htm >.[con acceso el
06/11/2007].

En java la técnica llamada composición es cuando una clase se compone por variable
de instancia de otra clase, esta técnica es común en el diseño de clases. también la
redefinición de métodos con la clase base pero haciendo que métodos con el mismo
nombre y características se comporten de forma distinta. el uso del super, que
representa referencia interna implícita a la clase base (superclase). Cuando se crea un
objeto de una clase derivada se crea implícitamente un objeto de la clase base que se
inicializa con su constructor correspondiente.

2. Rodríguez Herrera, D. Fecha desconocida. Tutorial de Introducción a Java.


[publicación en línea]. Disponible desde Internet en: <
http://www.programacion.com/java/tutorial/intjava/>. [con acceso el
06/11/2007].

Esta es una excelente página para toda persona que quiera aprender a programar en
java, te explica claramente los conceptos acerca de la Jerarquía de clases, muestra un
índice en el cual podrá acceder fácilmente a definiciones de Herencia, polimorfismos,
entre otros temas, es una muy buena página que posee información actualizada.

3. Osmosis Latina; 2000- 2006. Curso de Java Básico. [web en línea].


Disponible desde Internet en: <http://javabasico.osmosislatina.com/>. [con
acceso el 07/11/2007]

En ésta página encontrará un curso en el cual se explican por encima algunos


conceptos de la Jerarquía de Clase en Java, no es una dirección en la cual encontrará
detalladamente todas las características de la Jerarquía de clase pero puede ser de
utilidad, la recomiendo para aquellas personas que quieran aprender sobre algunos
conceptos como la herencia de clases, polimorfismo, super clase, clase abstractas y
demás, pero como dije anteriormente no se profundiza mucho.

Herencia y Jerarquía 3 Aparicio Yulian, Berry Fitz


4. la jerarquía de clases. Fecha desconocida. Apuntes de herencia y
polimorfismo[web en línea]. Disponible desde Internet en:<
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia/interfa
ces.htm> . [con acceso el 07/11/2007].

Esta pagina te define que una interfase es una declaración de métodos sin definirlos
que el papel principal de una interfaz es el de describir algunas de las características
de una clase, como también la diferencia entre una clase abstracta y una interfase, que
una clase abstracta puede tener métodos no implementados como implementados,
además esta pagina te da ejemplos de programa de cada caso totalmente
documentados y fáciles de entender.

5. Agustín Froufe.(1996). Ultima Actualización (1 de Enero de 1997 ).Tutorial


de Java. disponible en Internet en:
<http://www.cica.es/formacion/JavaTut/Cap1/heren.html>.[con acceso 07-
11-2007].

En este tutorial se presenta una visión general del lenguaje de programación Java,
contiene un índice de contenido en el cual se encuentra la Herencia y Las Clases
Abstractas, de la Herencia presentan una breve explicación sobre el mecanismo
de la herencia, la importancia de al herencia, así como también presenta algunos
ejemplos prácticos que explican mejor lo que es la herencia. Y sobre las Clases
Abstractas presentan una breve explicación referente a las Clases Abstractas y
varios ejemplos para enriquecer el concepto.

6. De Luis Gonzaga Pérez Cordón. Fecha desconocida. Polimorfismo.


[Tutorial en línea]. Disponible en Internet en:
http://wwwdi.ujaen.es/~lgonzaga/informaticaaplicada/Tema8-
Polimorfismo.pdf[con acceso el 08-11-2007].

Este es un PDF que habla de polimorfismo, clasificaciones de los elementos que se


pueden encontrar en una aplicación orientada a objetos, que los objetos en java
pertenecen a una clase si comparten la interfaz y la representación de todos los objetos
de la clase, nos presenta las ventajas del uso del polimorfismo que una de las mas
importante es evitar la duplicación de código y una de las desventajas es que implica la

Herencia y Jerarquía 4 Aparicio Yulian, Berry Fitz


recopilación de todos los programas que utiliza, también nos da una definición clara del
polimorfismo que nos dice que son dos funciones, procedimientos u operadores que se
llaman igual se distinguen por el tipo de sus argumentoso por el número de sus
argumentos, nos muestra ejemplos claro del polimorfismo y nos habla del polimorfismo
de sobrecarga, también nos dice que es muy importante establecer la herencia en el
uso del polimorfismo para que los tipos estáticos sean una superclase del los tipos
dinámicos que nos son mas que diferentes tipos de polimorfismo. Recomiendo esta
dirección porque nos ayuda a comprender todo acercadle polimorfismo.

7. Miguel Ángel Manzanéelo del Campo ,otros.(5 octubre 1998).Guía Rápida


de Aprendizaje del Lenguaje Java. Universidad de Burgos España.
Disponible en Internet
en<http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto.Oct98/2_Lengua/4_Herenc
.htm>[con acceso 08-11-2007].
En el contenido de esta pagina presentan una introducción a la programación orientada
a objetos (Poo), contiene una introducción y definición clara de Herencia y algunos
ejemplos para enriquecer el concepto de Herencia.

8. Agustín Froufe.(1996). Ultima Actualización: lunes, 17 de Mayo de


1999.Tutorial de Java. disponible en Internet en:
<http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/introduccion/indice.ht
ml>.[con acceso 08-11-2007].
Este tutorial de java es uno de los mejores que he visto hasta ahora ya que te presenta
un índice disponible con cada uno de los temas referentes a JAVA te explica cada uno
de los conceptos de una forma clara y explicita para que puedes ir comprendiendo todo
los referente a la POO . te habla de las clases, conceptos básicos, etc. Es bien
importante que revise esta dirección ya que te será de mucha ayuda para que te
puedas convertir en un maestro.

9. Antonio Bel Puchol. Apuntes Lenguaje Java. Ultima actualización ( 17-


Junio-2001) Disponible en Internet en:

Herencia y Jerarquía 5 Aparicio Yulian, Berry Fitz


<http://www.arrakis.es/~abelp/ApuntesJava/indice.htm>.[con acceso 08-11-
2007]

Esta es una pagina que contiene apuntes divididos en dos partes, la primera parte de
estos apuntes cubre todos los aspectos del lenguaje (Clases, Interfaces, herencia,
control de flujo, tipos de datos, etc.). La segunda parte, actualmente en elaboración,
trata materias de la API de Java, agrupándolos por temas (Entrada / salida, Threads,
applets, etc.).

10. Mateu, Luis. Apuntes de java. 7 de Noviembre de 1996 [web en línea].


Diponible desde en Internet en:
<http://www.dcc.uchile.cl/~lmateu/Java/Apuntes/index.htm > .[con acceso
08-11-2007]

El lenguaje Java posee ciertas características que hoy día se consideran estándares en
los lenguajes OO, como son clases, encapsulamiento, métodos y subclases, y otros.

Estos conceptos no son simples pero en este curso que presentamos te puede ir
aclarando las dudas poco a poco. Se dice, que para programar primero es necesario
diseñar un conjunto de clases. La claridad, eficiencia del programa resultante
dependerá principalmente de la calidad del diseño de clases. Lamentablemente se
necesita mucha habilidad y experiencia para lograr diseños de clases de calidad. Esta
pagina es un curso completo de todo lo elemental que puede saber de JAVA para el
diseño y compilación de algún programa sencillo esperamos que te sea de mucha
ayuda.

11. responsables desconocido, fecha de desconocida [web en línea].


Disponible desde en Internet en: <http://manual-java.com/ > .[con acceso
08-11-2007]

Java es un lenguaje multiplataforma que permite realizar aplicaciones para todo tipo de
entornos, para web, dispositivos móviles, aplicaciones de escritorio, servidor, etc .este
manual de Java te presenta un índice con los temas mas importante en una aplicación
OO, en él que encontraras todo lo necesario no sólo para aprender el lenguaje (un
manual muy completo en línea), sino que además te da otros recursos para que lo

Herencia y Jerarquía 6 Aparicio Yulian, Berry Fitz


domines perfectamente como foros en línea y códigos de programas, que reúne el uso
de herencias, clase abstractas, polimorfismo, sobrecarga de métodos entre otros.

GLOSARIO DE TERMINOS

Herencia y Jerarquía 7 Aparicio Yulian, Berry Fitz


A continuación les presentamos un glosario con los conceptos relacionados a la
programación orientado a objetos , que nos ayudaran a comprender mejor todo los
relacionado a este lenguaje, para pode entrar al diseño y programación de sistemas
que ayudaran a resolver algún problema en común.

1. Encapsulamiento: Significa que una clase va reunir todas las


características(atributos) y comportamientos(métodos) que deben estar en esa
clase. la utilidad del encapsulamiento es para saber que hace una clase.

2. herencia: Es una de las características mas importante de java, pues nos permite
crear una clase tomando como base otra clase, esto simplifica la programación ya
que todos los métodos de la clase base(padres) son heredados por la clase creada
(hija) de esta forma podemos hacer uso de todos sus métodos en la clase hija,
también es importante decir que todas las clases heredas tiene una super clase de
la clase objects.

3. Interfaces: Una interfaz es un conjunto de declaraciones de métodos (sin


definición) que se definen en otro lugar o mejor dicho que las interfaces por lo
regular están en las clases abstractas son moldes o prototipos de métodos
abstractos pero no la definición para que otra clase puede heredar de la clase
abstractas estas interfaces para ser definidas o para construir la lógica de la misma.

4. Polimorfismo: El polimorfismo en java se puede dar en los métodos y en las


variables; en los métodos consiste en declarar y definir varios métodos con el
mismo nombre, pero con diferente numero y/o tipo de argumentos y que realizan
diferentes operaciones en diferentes clase. Sin embargo, el tipo que devuelven los
métodos debe coincidir. Cuando se da en variables es cuando distintos objetos de
diferentes clase pueden recibir el mismo mensaje y responder a este.

5. Sobrecarga de Métodos: Es cuando uno declara métodos con el mismo pero


diferentes tipos de argumentos declarados en una clase que realizan diferentes
funciones.

Herencia y Jerarquía 8 Aparicio Yulian, Berry Fitz


6. Jerarquía: La jerarquía y la herencia están altamente relacionadas ya que una
depende de la otra. La jerarquía consiste en ordenar las clases de manera que las
super clases estén arriba de las subclases y a medida que las clase van heredando
atributos y comportamientos de otra clase entonces las clase padre debes estar
arriba de la clase hija.

7. Subclase: es una clase que desciende de otra clase. Esta hereda el estado y el
comportamiento de todos sus ancestros.

8. Superclase: es la clase padre, o sea, se refiere a la clase que es el ancestro más


directos, así como a todas las clases ascendentes.

9. Clase Object: es la clase superclase de todas las clases de Java. Todas las clases
se derivan de ella, directa o indirectamente.

10.Extends: La palabra extends es una palabra clave que se utiliza para indicar que
una Subclase esta heredando métodos y atributos de una Superclase.

11. Implement: esta palabra reservada es para que una clase pueda implementar la
interfaz que se encuentra en otra clase.

12. Objeto: Un objeto, desde nuestro punto de vista, puede verse como una del
programa que cumple con ciertas características de una clase que posee sus
atributos y comportamientos.

Herencia y Jerarquía 9 Aparicio Yulian, Berry Fitz


13. Clase: una clase define la forma y comportamiento de un objeto, es el principal
elementos en la POO ya que contiene subprogramas que resuelve algún problema
en común, las clases van reservada por la palabra class seguida del nombre que
debe empezar en mayúscula, en java cuando se guarda una clase es importante
guardarla con la extensión punto java con el nombre de la clase , las clases además
son una colección de datos que contiene atributos y métodos propias de la clase.

14. Atributos: son parte de las clases no de los objetos, los atributos son variables de
instancia de las clases que nos permiten inicializar constructores de las clase la
cual pertenece el objeto que se esta creando.

15. Clase abstractas: es una clase que no se puede referir con un objeto ya que solo
posee interfases de métodos, las clase abstractas se utilizan para definir subclases
o clases hijas que heredan de la clase abstractas solo su interfaz

16.This: es un objeto que hace continua referencia a los atributos de la clase en la


que se invoque

17.Super: es un objeto que se usa para acceder a métodos o atributos de la


superclase.

EJEMPLIFICACION DE CONCEPTOS

1. Super clase :

Herencia y Jerarquía 10 Aparicio Yulian, Berry Fitz


Una superclase es aquélla clase donde una clase hija hereda todos los atributos y
comportamiento de la super clase o clase padre.
Un ejemplo de superclase es:
Supongamos que tenemos una superclase abstracta llamada figura de las cuales
se define así:

public abstract class Figura


{

public abstract double area();


}
la clase figura que es nuestra super clase contiene este método de las cuales
nuestras clases hija heredara todos los métodos abstractos de nuestra super clase
un ejemplo claro seria así:
Class rectangulo extends figura{ // esta clase hija llamada rectangulo heredara
tanto los atributos y los métodos de la clase padre y para distinguir una clase padre
de una hija se usa la palabra extends.

2. Herencia:

como se ha definido antes que la herencia, es una de las características mas


importante de java, pues nos permite crear una clase tomando como base otra
clase, y es un mecanismo en el que se crean nuevos objetos definidos en términos
de objetos ya existentes, aquí observará un ejemplo de herencia aplicado al dominio
animales mamiferos, en la que la clase superior o clase base(padre) es la clase
mamifero y las clases hijas que heredan de ella son: Perro y Gato

 La Jerarquía de este ejemplo es así:

Herencia y Jerarquía 11 Aparicio Yulian, Berry Fitz


Mamifero

Perro Gato

Ejemplo:
public class Mamifero
/*objetivo de la clase: imprimir el nombre de los animales mamiferos y la cantidad de
patas*/
{
/**atributos de la clase/
private int patas;
private String nombre;

public Mamifero(String nombre, int patas) /*constructor de la clase*/


{
this.nombre = nombre;
this.patas = patas;
}// fin del costructor

public void imprimirPatas() /*metodo que imprime los datos del animal*/
{
System.out.println(nombre + " tiene " + patas + " patas\n");
}// fin del metodo

}// fin de la clase

public class Perro extends Mamifero


{
/*objetivo de la clase: esta una clase hija de mamíferos que hereda todos sus atributos
y métodos, esta clase solo inicializa el constructor de la clase padre para imprimir los
datos del animal*/
public Perro(String nombre)
{
super(nombre, 4);
}// fin del contructor
}// fin de la clase
public class Gato extends Mamifero
/*objetivo de la clase: esta clase solo inicializa el constructor de la clase padre para
imprimir los datos del animal*/

Herencia y Jerarquía 12 Aparicio Yulian, Berry Fitz


{
public Gato(String nombre)/*constructor de la clase*/
{
super(nombre, 4);
}// fin del contructor
}// fin de la clase

public class CreaPerro {/*clase principal*/


{
public static void main(String [] args)
{
Perro bobi = new Perro("Bobi");
bobi.imprimirPatas(); /*Está en la clase mamífero*/
}
}// fin de la clase

3. Sobrecarga de Métodos:

Una propiedad de la POO es la sobrecarga de métodos. Java posee esta propiedad


ya que permite crear métodos con el mismo nombre pero diferentes tipo de
argumentos. Te mostraremos un ejemplo donde explicaremos mas claramente el
concepto de sobre carga de métodos.

Ejemplo:

class Matemáticas
/*esta clase muestra tres métodos con el mismo nombre suma pero diferentes tipo de
argumentos*/
{
int suma(int x, int y)
{
return x+y;
}

int suma(int x, int y, int z)


{
return x+y+z;
}

int suma(int[] array)


{
double total =0;
int i;
for(i=0; i<array.length;i++){

Herencia y Jerarquía 13 Aparicio Yulian, Berry Fitz


total+=array[i];
}
return total;
}

class Sobrecarga /*clase principal*/


{
public static void main(String args[]){
double result;

// llamadas de los métodos


result = suma(5,7)
System.out.println("Resultado de la suma ="+result);

result = suma(5,7,9)
System.out.println("Resultado de la suma ="+result);
}

La clase matemáticas posee tres método con el nombre suma. una versión que suma
dos números entero, otra que suma tres y la última que suma todos los miembros de un
array de entero. Desde el código se puede invocar cualquiera de las tres versiones
según convenga.

Cuando se llama a un método sobrecargado Java utiliza el tipo y/o número de


argumentos como referencia para determinar a qué método sobrecargado se debe
llamar.

Herencia y Jerarquía 14 Aparicio Yulian, Berry Fitz


4. Polimorfismo:

El polimorfismo en java consiste en declarar y definir varios métodos con el


mismo nombre, pero con diferente numero y/o tipo de argumentos y que
realizan diferentes operaciones en clases diferentes.

/*este programa tiene una clase padre llamada cantante la cual posee un método
llamado Cantar, esta clase tiene dos método que son hijas de ella, entonces cada clase
contiene el nombre del mismo método, pero cada método realiza una tarea diferente
que este caso despliega mensaje diferentes*/
class Cantante
{
private String nombre;
public void Cantar()
{
System.out.println("Yo Canto Mucho La La La La");
}
} // fin Cantante

class Corista extends Cantante


{
public void Cantar()
{
System.out.println("Yo Canto muy poco la la");
}
} //fin Corista

class Niño extends Cantante


{
public void Cantar()
{
System.out.println("Yo Canto en el parque");
}

} //fin Niño

Herencia y Jerarquía 15 Aparicio Yulian, Berry Fitz


public class Cantando
{
/*En este ejemplo se realiza polimorfismo del método Cantar, ”nótese que para
realizar el polimorfismo se tuvo que realizar la Herencia”*/

public static void main(String args[])


{
Cantante Canta = new Cantante();
Corista coro = new Corista();
Niño ninito = new Niño();
System.out.println("--Estamos usando polimorfismo del método cantar--");

// ejemplo de polimorfismo de Metodo Cantar


Canta.Cantar(); // canta un cantante
coro.Cantar(); // canta un corista
ninito.Cantar(); // canta un niño
}// fin del main
} //fin de la clase

5. Clases abstractas:

Una de las características más útiles de cualquier lenguaje orientado a objetos es la


posibilidad de declarar clases que definen como se utiliza solamente, sin tener que
realizar e implementar algún código, cuando uno declara métodos en al clase
abstractas beben ser métodos abstractos y no se pueden hacer new de una clase
abstractas, el código de los métodos abstractos se desarrollaran en otra clase ,que
heredara de la clase abstractas solo las interfaz de los métodos.

Un ejemplo de clase abstracta en Java es la clase Graficos :

public abstract class Graficos


{
public abstract void dibujaLine( int x1,int y1,int x2,int y2 );
public abstract void dibujaOval( int x,int y,int width,int height );
public abstract void dibujaArc( int x, int y, int height, int arcAngle );
}

Herencia y Jerarquía 16 Aparicio Yulian, Berry Fitz


Los métodos se declaran en la clase Grafico , pero el código que ejecutará el método
está en algún otro sitio: por ejemplo.

public class MiClase extends Grafico


{
public void dibujaLine( int x1,int y1,int x2,int y2 )
{
<código para dibujar líneas -específico de la arquitectura->
}
}

PRESENTACIÓN DE UNA APLICACIÓN EJECUTABLE

Herencia y Jerarquía 17 Aparicio Yulian, Berry Fitz


- Dominio: Empresa;
- Clase Base: Empleado (clase abstracta)
- subclases: class Salario
- Clases auxiliares: class Principal (main), class CapturayDespliega

- Descripción del dominio: el dominio de esta aplicación hace referencia una


Empresa, donde existe una clase Base llamada Class Empleado, que
cuenta con variables de instancias y métodos Y una clases hijas (subclases)
Llamada Salario, que nos calcula el salario bruto y el salario neto de un
empleado, también tenemos una clase auxiliar CapturayDespliega donde se
efectúa una sobrecarga de métodos. El programa es capaz de mostrar el
saldo bruto de un empleado, sus respectivas deducciones y el salario neto.
de un empleado que desea saber cuanto gana por hora y cuantas horas
trabajo en una quincena.
Código fuente:

/* Clase Principal; llama a otras clases*/


import javax.swing.*;
import java.text.*;
import java.lang.String.*;
import java.io.*;

class Principal
{
public static void main(String[] args)
{
int cantiasig,edad;
String nom,ced,car;
String sh,ht;
CapturayDespliega objeto1=new CapturayDespliega();
nom=objeto1.nomEmpl();
ced=objeto1.cedEmpl();
car=objeto1.CarEmpl();
ht=objeto1.hrsTrab();
int hort=Integer.parseInt(ht);
sh=objeto1.salPorhrs();
float sahor=Float.parseFloat(sh);

Herencia y Jerarquía 18 Aparicio Yulian, Berry Fitz


Salario empl=new Salario(nom,ced,car,hort,sahor);
objeto1.Desplega(empl.datos());/*esto es una sobrecarga de métodos/
objeto1.Desplega(empl.salarioNeto());

}
}

/*********************************************************************************************/
import java.io.*;
import javax.swing.*;

class Empleado{/*clase padre */


private String nombre="";
private String cedula="";
private String cargo="";
private int hotra;
private float salrioXhora;

public Empleado(String nom,String ced, String car,int ht,float sal){


/*este contructor se inicialisa atravez del contructor de la clase hija*/
this.nombre=nom;
this.cedula=ced;
this.cargo=car;
this.hotra=ht;
this.salrioXhora=sal;
}

public String retonanom(){/*objetivo retorna solo el nombre del empleado*/


return(nombre);

}
public String retornaced(){/*objetivo retorna la cedula del empleado*/
return(cedula);
}

public String retornacar(){/*objetivo retorna el cargo que ocupa el empleado*/


return(cargo);
}

public int retorhoratra(){/*objetivo retorna la horas que trabajo el empleado*/


return(hotra);

}
public float retornaSalHora(){/*objetivo retorna salario por hora del empleado*/
return(salrioXhora);

Herencia y Jerarquía 19 Aparicio Yulian, Berry Fitz


}

public String datos(){/*objetivo retornar los datos generales del empleado*/


return("Nombre: "+nombre+"\nCedula: "+cedula+"\nCargo: "+cargo+"\n");
}

/***********************************************************************************************/
import java.io.*;
import javax.swing.*;
import java.lang.Float.*;
class Salario extends Empleado{

private double isr;


private double iss;
private double ise;

public Salario(String nom,String ced,String car,int hrstra,float salXhora)


{//Objetivo de este contructor es inicializar las variables de intancia de la clase
padre e
//inicializar sus propias variables de intancia

super(nom,ced,car,hrstra,salXhora);

this.isr=0.25;
this.iss=0.15;
this.ise=0.20;
}

public float salarioBruto()


{//objetivo de este método es calcular el salario bruto del empleado
float salbruto=super.retorhoratra()*super.retornaSalHora();
return(salbruto);
}
public double segursocia()
{//objetivo de este metodo: es calcular el importe al seguro social
double imSegs=iss*salarioBruto();
return(imSegs);
}
public double segureduc()
{/*Objetivo de este metodo: es calcular el importe al seguro educativo*/

double imSegEduc=ise*salarioBruto();
return(imSegEduc);
}

Herencia y Jerarquía 20 Aparicio Yulian, Berry Fitz


public double impuetSobRn()
{//objetivo de este metodo es calcular el impuesto sobre la renta

float sb=salarioBruto();
double imSobRenta=isr*sb;
return(imSobRenta);
}

public double salarioNeto()


{/*objetivo del metodo: calcular el salario neto mediante el llamado de lso metods
que calculan las deducciones*/
double salaneto=this.salarioBruto()
this.impuetSobRn()+this.segureduc()+this.segursocia());
return(salaneto);

public String datos(){


// en este metodo aplicamos el polimorfismo para generar la plantilla del
cheque
String cheque=super.datos();
String s = "Salario Bruto: "+Float.toString(this.salarioBruto());
String deduc="\n**Deducciones**"+
"\n Seguro Educativo:
"+Double.toString(this.segureduc())+
"\n Seguro Social:
"+Double.toString(this.segursocia())+
"\n Impuesto Sobre la Renta: "+
Double.toString(this.impuetSobRn());

String neto="\n Salario


Neto:*************"+Double.toString(this.salarioNeto());
cheque +=s+deduc+neto;
return(cheque);
}

import java.io.*;
import javax.swing.*;
public class CapturayDespliega
{

Herencia y Jerarquía 21 Aparicio Yulian, Berry Fitz


public CapturayDespliega()
{

public String nomEmpl()


{
String nomEmp=JOptionPane.showInputDialog(null, " nombre del Empleado");
return(nomEmp);
}
public String cedEmpl()
{
String nomEmp=JOptionPane.showInputDialog(null, " cedula del Empleado");
return(nomEmp);
}

public String CarEmpl()


{
String nomEmp=JOptionPane.showInputDialog(null, " Cargo del Empleado");
return(nomEmp);
}

public String hrsTrab()


{
String nomEmp=JOptionPane.showInputDialog(null, " horas trabajada del
Empleado");
return(nomEmp);
}
public String salPorhrs()
{
String nomEmp=JOptionPane.showInputDialog(null, " salario por hora del
Empleado");
return(nomEmp);
}

public void Desplega(double datos)


{
JOptionPane.showMessageDialog(null,datos);
}

public void Desplega(String datos)


{
JOptionPane.showMessageDialog(null,datos);

Herencia y Jerarquía 22 Aparicio Yulian, Berry Fitz


}

****************************************************************************************************

Class salario
nombre: Class
CapturayDespliega
Double isr: cedula:
Double iss: cargo: nomEmpl():
DIAGRAMA
DoubleDEL
ise:PROGRAMA hotra: cedEmpl():
salrioXhora: CarEmpl():
salarioBruto():
retonanom(): hrsTrab():
segursocia():
retornaced(): salPorhrs():
segureduc(): Class
retornacar():
Principal Desplega(double datos):
impuetSobRn():
Herencia y Jerarquía 23
retorhoratra(): Aparicio Yulian, Berry Fitz
salarioNeto(): Desplega(String datos):
extends
datos():
datos(): main();
DESCRIPCIÓN DE LAS CLASES
DESCRIPCIÓN DE LAS CLASES
CLASES ATRIBUTOS COMPORTAMIENTO

Principal El método de esta clase es el Main ()en


el cual se llama a los métodos de las clases
mediante los objetos creados.

nomEmpl(): este metodo despliega


una ventana donde pide al usuario
ingresar el nombre complete del
empleado.
cedEmpl(): este metodo despliega
una ventana para ingresar la cedula el
estudiante.
CarEmpl(): este metodo despliega
CapturayDespliega una ventana para ingresar el cargo que
ocupa el empleado dentrote la empresa
hrsTrab():este es despliega una
venta para ingresar las horas que trabajo
el empleado
salPorhrs(): despliega una venta
para ingresar el salario por hora del
trabajador.
Desplega(double datos):este
metodo se encarga de desplegar los
datos del empleado que son de tipo
doble tal como: salario, las deducciones
del empleado
Desplega(String datos): este
metodo despliega todos las generales
del empleado que son de tipo String.
Double isr: Almacena salarioBruto(): Este metodo nos
el porcentaje de la calcula el salario bruto de un empelado
deducción del impuesto mediante al multiplicación de las horas
sobre al renta que se le trabajadas por el salario por hora.
hace a un empleado.
segursocia(): Este metodo no
salario Double iss: Almacena determina el porcentaje del seguro social
el porcentaje de la que se le descuenta al empleado
deducción del seguro social mediante su saldo.
que se le hace a un
empleado. segureduc():Este metodo no

Herencia y Jerarquía 25 Aparicio Yulian, Berry Fitz


determina el porcentaje del seguro
Double ise: Almacena educativo que se le descuenta al
el porcentaje de la empleado en su cheque.
deducción del seguro
educativo que se le hace a
un empleado. impuetSobRn():Este metodo no
determina el porcentaje del impuesto
sobre la renta que se le descuenta al
empleado en su sueldo.

salarioNeto(): este metodo nos


determina el salario neto del empleado
hacienda y todas las deducciones de su
salario bruto.
datos(): En este metodo aplicamos el
polimorfismo para generar la plantilla del
cheque del empleado.
nombre: variable de Esta clase e nuestra superclase y
instancia que contiene el contiene los siguientes metodos:
nombre del empleado
cedula: variable de retonanom(): este metodo solo
instancia que contiene el retorna el nombre del empleado.
numero de cedula del
empleado retornaced():este metodo solo
retorna el la cedula del empleado.
Empleado cargo: variable que
contiene el cargo que ocupa retornacar(): este metodo solo
el empleado en al empresa. retorna el cargo que ocupa el empleado
en al empresa.
hotra: esta variable
contiene las horas retorhoratra(): este metodo solo
trabajadas del empleado retorna la horas trabajadas del empleado

salrioXhora: esta datos(): este metodo solo retorna


variable contiene el salario nombre, cedula, cargo, etc. del
que gana el empleado por empleado.
hora.

Herencia y Jerarquía 26 Aparicio Yulian, Berry Fitz


REFLEXIONES FINALES

REFLEXION GRUPAL:

Después de haber realizado este proyecto, desarrollando los principales conceptos de


la POO, podemos manifestar que ha sido una experiencia enriquecedora en lo que a
conocimiento se refiere, donde hemos podido poner en practica todos estos concepto,
aplicaciones, estructuraciones al desarrollar un programa que involucra todos estos
conceptos. Comenzando por investigar 11 fuentes de información que nos llevaron a
fortalecer las debilidades y dudas que presentábamos en algunos conceptos básicos
de la POO, para el grupo no fue fácil el desarrollo de este proyecto, ya que las horas de
trabajo fueron muchas. Analizando cada fuente investigada para poder extraer todos
los conocimientos necesario que nos ayudaran a la trabajar loa programación OO de
una forma mas eficiente utilizando las herramientas que este lenguaje de programación
no brinda, para desarrollar aplicaciones que puedan dar soluciones a un problema en
común, como es el uso del polimorfismo y la sobrecarga de métodos que son
características principales de JAVA, que facilitan el trabajo a cualquier programador
con la reutilización de código.
Este grupo se ha esforzado para cumplir los objetivos trazados, esperando que sirva de
gran ayuda a futuros programadores en este lenguaje.

REFLEXIONES INDIVIDUALES:

YULIAN: durante el desarrollo de este proyectos y otros he llegado a la conclusión de


que este lenguaje de programación es un “mundo” ,que tiene tantas características
propias que los diferencian de otras aplicaciones OO, como es el polimorfismo y la
sobrecarga de métodos que nos ayudan a desarrollar aplicaciones mas eficientes con
la reutilización de código. Otra características de este lenguaje es la las clase
abstractas, la jerarquía y la herencia, este ultimo donde le facilita al programador tener
una clase padre(superclase) que puede tener clase hijas que heredaran todos los
atributos(variables de instancia) y comportamientos(métodos) de la superclase o clase

Herencia y Jerarquía 27 Aparicio Yulian, Berry Fitz


padre. Esta características me llamaron mucho la atención porque se puede desarrollar
aplicaciones de una forma mas fácil y cómoda sin complicarnos tantos. Todo esto es
posible con el uso de palabra reservada extends que nos dice que la clase es una clase
hija y el implemet que nos permite implementar interfaces de alguna clase abstractas y
métodos para dar solución aun determinado problema.
Este proyecto me ayudo mucho porque antes de desarrollarlo me propuse una meta
personal, que no era sacar una buena nota si no obtener todos los conocimientos
posible para trabajar aplicaciones mas eficientemente explotando al máximo todos los
recursos que nos brinda JAVA, una de las dificultades que me encontré durante el
desarrollo de la primera etapa donde teníamos que investigar y analizar la fuentes de
información sobre los conceptos básicos de la POO. Era la definición que de lo que era
polimorfismo que era la misma que sobrecarga de métodos pero después de consultar
varias fuentes entonces pude aclarar mis dudas, en realidad el polimorfismo es una
sobrecarga de método pero la diferencia esta en que la sobrecarga de método se da
dentro de una misma clase y el polimorfismo en clase diferentes con el desarrollo de
método con el mismo nombre pero diferentes tipos de argumentos.

Berry: en este proyecto logre esclarecer los conceptos relacionados con abstracción,
sobrecarga, polimorfismo, internase, además obtuve conocimientos acerca de cómo se
hacen las citas bibliográficas de Internet, atravez de las diferentes lecturas logre
conocer los diferente conceptos que tiene algunos autores con respectos ala POO. Con
respecto a la realización del problema que implementara los conceptos se nos hizo
difícil ya que no podíamos establecer el dominio. Pero al final llegamos a un consenso
e implementamos el dominio de una empresa.
A la hora de la confección de la clase Salario se nos presento un percance en los
métodos que calculaban las deducciones del salario ya que los teníamos declarados de
tipo float y los mismos no retornaban valores. Para resolver este problema tuvimos que
declara los métodos de tipo double hasta el momento no se porque no aceptó retornar
datos de tipo float.

Herencia y Jerarquía 28 Aparicio Yulian, Berry Fitz


Herencia y Jerarquía 29 Aparicio Yulian, Berry Fitz

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