Está en la página 1de 5

Universidad Tecnológica de El Salvador

Programación III MSc. René Alberto Castro Velásquez

UNIDAD II – CREACIÓN DE PAQUETES PARA TRABAJAR CON CLASES Y


OBJETOS.

2.1. FUNDAMENTOS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS (POO)


1. INTRODUCCIÓN A LAS CLASES Y OBJETOS.
Java es estrictamente un lenguaje de POO y todo el código que se escribe aparecerá ya sea dentro
de una clase o dentro de una interface (este concepto será desarrollado más adelante en el curso).
Cuando se escribe un programa usando un lenguaje de POO se diseña el programa alrededor de
los objetos en el problema que se está resolviendo. Para cada objeto, una clase es escrita para
describir los atributos y comportamientos del objeto.

Por definición una clase es una descripción de un objeto. De manera similar un objeto es definido
como una instancia de una clase. Un objeto está formado por atributos y comportamientos. Un
atributo es una característica del objeto, algo que el objeto “tiene”. Un comportamiento es algo
que el objeto “hace”.
Cada atributo de un objeto es representado por un campo en la clase. Cada comportamiento de
un objeto se convierte en un método de la clase.

1.1. PROGRAMACIÓN PROCEDIMENTAL (PP).


En los primeros días de la programación, los programas se diseñaban usando diagramas de flujo y
un estilo de diseño top-down. Con este tipo de diseño, un gran problema era resuelto dividiéndolo
en pequeñas tareas. Para cada una de estas pequeñas tareas se escribía un procedimiento de la
manera siguiente: un procedimiento principal se escribía para iniciar el proceso y

Página 1 de 5
Universidad Tecnológica de El Salvador
Programación III MSc. René Alberto Castro Velásquez

subsecuentemente fluir hasta la solución, invocando los procedimientos deseados en el camino. A


este tipo de programación se le denominaba PP.
La PP involucra escribir un
procedimiento que desarrolla
una tarea específica.
Cualquier dato que el
procedimiento necesite usar
es introducido por medio de
sus parámetros. El
procedimiento puede ver y
cambiar el dato recibido, y
opcionalmente devolver un
valor al código que lo invocó.
Escribir un procedimiento
para resolver una tarea
específica es un concepto de
programación fundamental
usado tanto en lenguajes
procedimentales como en
POO. Mientras diseñe y escriba programas en Java, los procedimientos serán un elemento esencial
para resolver el problema que se tiene.

1.2. POO.
La POO se originó de una
investigación realizada por
el Centro de Investigación
de Xerox en Palo Alto (PARC)
en los 1970s. La POO toma
un punto de vista
totalmente diferente para
desarrollar aplicaciones de
computadora. En lugar de
diseñar un programa
alrededor de las tareas que
se debían resolver, un
programa es diseñado
alrededor de los objetos en
el dominio del problema.
Puede pensar en la PP como
escribir un procedimiento para los verbos en el dominio del problema, tal como pagar a un
empleado o calcular impuestos. Puede pensar en la POO como escribir una clase para cada uno de
los nombres en el dominio del problema.

Página 2 de 5
Universidad Tecnológica de El Salvador
Programación III MSc. René Alberto Castro Velásquez

2. FUNDAMENTOS DE LA POO
La POO contiene algunos conceptos fundamentales que
permiten la construcción de aplicaciones pertinentes, los
cuales son presentados a continuación.

2.1. ABSTRACCIÓN DE DATOS.


La abstracción de datos se refiere a proporcionar solamente la
información esencial del mundo exterior mientras se ocultan
los detalles subyacentes, por ejemplo para representar la
información necesaria en un programa sin presentar los
detalles.
La abstracción de datos es una técnica de
programación (y diseño) que se basa en la
separación de la interface y la implementación.
Tomemos un ejemplo de la vida real: un
televisor, el cual puede encender y apagar,
cambiar de canal, ajustar el volumen y agregar
componentes externos tales como parlantes,
reproductores de cintas de video y discos
compactos PERO no se conocen sus detalles
internos. Por ejemplo, no se sabe cómo se
recibe la señal en el aire o en el cable ni cómo la
traduce y la muestra en la pantalla.
De esta manera un televisor separa claramente su implementación interna de su interface externa
y puede interactuar con sus interfaces como el botón de encendido, el cambiador de canales y el
control de volumen sin tener ningún conocimiento de sus partes internas.
Las principales ventajas de la abstracción de datos son:
 Las clases internas son protegidas de inadvertidos errores a nivel de usuario que podrían
corromper el estado del objeto.
 La implementación de clases puede evolucionar a través del tiempo en respuesta a
cambios en los requerimientos o en reporte de errores sin requerir cambios en el código a
nivel de usuario.

2.2. ENCAPSULAMIENTO.
Todo programa está compuesto de los dos
elementos fundamentales siguientes:
 Sentencias del programa (código): esta
es la parte de un programa que realiza
acciones y se les conoce como
funciones.

Página 3 de 5
Universidad Tecnológica de El Salvador
Programación III MSc. René Alberto Castro Velásquez

 Datos del programa: los datos son la información del programa que es afectada por las
funciones del programa.
El encapsulamiento es un concepto de la POO que enlaza los datos y las funciones que manipulan
los datos y mantiene a ambos seguros de cualquier interferencia y mal uso externos. El
encapsulamiento de datos conduce a un concepto importante de la POO: ocultamiento de datos.
El encapsulamiento de datos es un mecanismo de agrupamiento de datos y las funciones que los
usan, por lo que la abstracción de datos es un mecanismo de exponer al usuario sólo las interfaces
mientras oculta los detalles de la implementación.

2.3. HERENCIA.
Uno de los conceptos más importantes en la POO es la herencia, la cual permite definir una clase
en términos de otra, haciendo más fácil crear y mantener una aplicación. Esto también
proporciona una oportunidad para reusar funcionalidad de código y agilizar el tiempo de
implementación.
Cuando se crea una clase, en lugar de escribir
completamente nuevos miembros de datos y
funciones, el programador puede designar que la
nueva clase herede los miembros de una clase
existente. Esta clase existente es llamada la clase base
y la nueva clase es referida como la clase derivada.
La idea de la implementación de herencia puede ser asociada a una relación "ES UN". Por ejemplo,
un mamífero ES UN animal, un perro ES UN mamífero, por lo que un perro ES UN animal también,
y así sucesivamente.
El concepto de herencia será ampliado más adelante en el curso.

2.4. SOBRECARGA.
Consiste en la especificación de más de una definición para
el mismo nombre de función en el mismo ámbito.
Una declaración sobrecargada es una declaración que ha
sido declarada con el mismo nombre que una declaración
previamente declarada en el mismo ámbito, excepto que
ambas declaraciones tienen diferentes argumentos y
obviamente diferente definición (implementación).
Cuando se llama una función sobrecargada, el compilador
determina la definición más apropiada a usar comparando
los tipos de argumento especificado en las definiciones. El proceso de seleccionar la función
sobrecargada más apropiada es llamado resolución de sobrecarga.
El concepto de sobrecarga será ampliado más adelante en el curso.

Página 4 de 5
Universidad Tecnológica de El Salvador
Programación III MSc. René Alberto Castro Velásquez

3. ESCRIBIR UNA CLASE EN JAVA


Una clase en Java es declarada usando la palabra reservada class. Un
archivo de código fuente en Java puede contener exactamente una clase
pública y el nombre del archivo debe coincidir con el nombre de la clase
pública con la extensión .java.
Puede declarar más de una clase en un archivo .java, pero sólo una de las
clases puede ser declarada pública. El nombre del archivo de código fuente también debe coincidir
con el nombre de la clase pública. Si no hay clases públicas en el código fuente, el nombre del
archivo es arbitrario.
Los campos y métodos de una clase aparecen entre las llaves de una declaración de clases. El
siguiente código muestra una clase simple sin campos ni métodos declarados.
public class Empleado {

3.1. AGREGANDO CAMPOS A UNA CLASE.


Los atributos de un objeto se convierten en campos en la clase correspondiente.
Un campo dentro de una clase consiste en lo siguiente:
1. Un especificador de acceso, el cual puede ser público, privado o protegido;
o el especificador de acceso puede ser omitido, dando al campo el acceso default.
2. Un tipo de datos.
3. Un nombre, el cual es cualquier identificador válido, seguido por un punto y coma.
4. Opcionalmente puede asignarle un valor por defecto.
Los especificadores de acceso serán estudiados más adelante, por lo que de momento usaremos el
acceso público para campos y métodos. El especificar de acceso público permite el acceso a un
miembro público de la clase.

3.2. AGREGANDO MÉTODOS A UNA CLASE.


Los comportamientos de un objeto se convierten en los métodos de la
clase correspondiente. Un método dentro de una clase típicamente
consiste en lo siguiente:
1. Un especificador de acceso.
2. Un valor de retorno.
3. Un nombre, el cual puede ser cualquier identificador válido.
4. Una lista de parámetros, la cual aparece entre paréntesis.
5. Una definición del método.
En Java, la definición (a menudo referida como el cuerpo) de un método debe aparecer entre
llaves que siguen a la declaración del método.

Página 5 de 5

También podría gustarte