Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
APUNTES DE CLASES
Metodologías de
Programación:
Programación Orientada a Objetos
1
Metodologías de Programación: Programación Orientada a Objetos
Autor
Ing. Héctor M. Zelada Valdivieso
Chiclayo 2012
Escuela de Ingeniería De Sistemas y Computación
Facultad de Ingeniería.
Universidad Católica Santo Toribio de Mogrovejo
Copyright 2012, by the Contributing Authors, Esta obra se publica bajo una Creative
Commons License.
Copyright 2012, by the Contributing Authors. Esta obra se publica bajo una Creative
Commons License.
INDICE
ÍNDICE DE FIGURAS 4
PRESENTACIÓN 5
INTRODUCCIÓN 6
CAPÍTULO I: CONCEPTOS GENERALES DE POO
1.1. Programación Orientada A Objetos 7
1.2. Objeto 8
1.3. Atributos 9
1.4. Métodos 10
1.5. Clase 11
1.6. Paquete De Clases 11
1.7. Mensaje 13
1.8. Método Constructor 13
1.9. Método Destructor 14
1.10. Especificadores Y Modificadores De Acceso 15
1.11. Sobrecarga De Métodos 15
1.12. Métodos Recursivos 16
1.13. Diagrama De Clases 17
2.1. Abstracción 21
2.2. Encapsulamiento 22
2.3. Herencia 22
2.4. Polimorfismo 23
REFERENCIAS 25
3
Metodologías de Programación: Programación Orientada a Objetos
INDICES DE FIGURAS
4
Metodologías de Programación: Programación Orientada a Objetos
PRESENTACIÓN
5
INTRODUCCIÓN
6
Metodologías de Programación: Programación Orientada a Objetos
CAPITULO I
La Programación Orientada a Objetos define una estructura de más alto nivel llamada
objeto, que ofrece ventajas sobre la programación tradicional:
b) La segunda es que los datos globales desaparecen, siendo éstos junto con las
funciones parte interna de los objetos. Por lo tanto, cualquier cambio en la
estructura de alguno de los datos sólo debiera afectar las funciones definidas
en el mismo objeto y no en los demás [2].
7
Metodologías de Programación: Programación Orientada a Objetos
1.2. Objeto
El objeto es una instancia de una clase que combina datos y procedimientos, un objeto
es simplemente una variable de un tipo de clase, y para diferenciar las variables de
tipo clase de las variables de otro tipo, se utiliza el término objeto [4].
Un objeto, es una unidad que combina en uno solo, datos y funciones que operan
sobre esos datos. Por consiguiente, dentro de los objetos residen los datos de los
lenguajes de programación tradicional, tales como números, arrays, cadenas y
registros, así como funciones o subrutinas que operan sobre ellos. Los objetos son
instancias de las clases [5].
El objeto es una entidad que tiene unos atributos particulares, las propiedades, y unas
formas de operar sobre ellos, los métodos [6].
Un objeto es una cosa con la que se puede interactuar; se le puede enviar varios
mensajes y éste reacciona ante ellos [7].
Los objetos son abstracciones del mundo; es decir un objeto es un ente o alguna cosa
tangible o intangible que uno se pueda imaginar que interviene el sistema que
estamos analizando y es relevante para éste. Los objetos tienen unos atributos que
representan sus características, propiedades o su estado y unos métodos que
representan su comportamiento o acciones que puede realizar.
Ejemplo: Plumón color negro, Plumón color azul, Celular de marca Motorola, etc.
Los atributos y métodos comunes a los objetos se agrupan en unos tipos llamados
clases, Por lo que algunos autores llaman a estos atributos y métodos como
miembros de una clase. Por ejemplo la clase para los objetos mencionados antes
sería la clase Plumón; por eso se dice que un objeto es una instancia de una clase ya
que se crean a partir de una clase. “Si no hay una clase no se pueden crear objetos”.
8
Metodologías de Programación: Programación Orientada a Objetos
Shaer, Mellor y Yourdon definen categorías que nos pueden ayudar a identificar
objetos:
Cosas tangibles (mesa, silla, plumón, etc.)
Roles o papeles de las personas (cliente, proveedor, alumno, médico, etc.)
Transacción (compras, ventas, matricula, cita, etc.)
Organizaciones (empresa, área, equipo, etc.)
Incidentes (suceso, vuelo, accidente, evento, etc.)
Lugares (sala de embarque, muelle de carga, etc.)
1.3. Atributos
Los atributos son datos o variables que caracterizan o describen el estado de un
objeto, un atributo consta de un nombre de atributo y un valor de atributo [5].
Los atributos son las variables que se declaran al principio de la clase, fuera de los
métodos. Estas variables son compartidas por todos los métodos de la clase [6].
Los atributos son las características individuales que diferencian un objeto de otro y
determinan su apariencia, estado u otras cualidades. Los atributos se guardan en
variables denominadas de instancia, y cada objeto particular puede tener valores
distintos para estas variables [4].
Los atributos son las características, propiedades, estado o datos de los objetos. Se
dice que el estado del objeto es el valor que tienen todos sus atributos en un instante
dado.
9
Metodologías de Programación: Programación Orientada a Objetos
Los atributos vienen a ser los datos (simples o estructurados) que se definían en la
Programación Estructurada. En algunos libros de programación se les denomina,
variables miembro, variables de instancia, o campos.
Partes:
Los atributos tienen un especificador de acceso, el cual puede ser público (+),
privado (-), protegido (#) o amistoso.
Los atributos tienen un tipo de dato.
Los atributos tendrán un nombre
Ejemplo en Java: private float base;
1.4. Métodos
Los métodos son los procedimientos o acciones que cambian el estado de un objeto,
es un procedimiento o función que se invoca para actuar sobre un objeto, un método
es el algoritmo ejecutado en respuesta a la recepción de un mensaje cuyo nombre
corresponde con el nombre del método, los métodos son las operaciones o servicios
que describen el comportamiento asociado a un objeto, representa las acciones que
pueden realizarse por un objeto o sobre un objeto, cada método tiene un nombre y un
cuerpo que realiza la acción o comportamiento asociado con el nombre del método [5].
Un método se implementa en una clase y determina cómo tiene que actuar el objeto
cuando recibe el mensaje vinculado con ese método. A su vez, un método puede
también enviar mensajes a otros objetos solicitando una acción o información [6].
Los métodos son las operaciones que muestran el comportamiento del objeto [9].
Partes:
Los métodos tienen un especificador de acceso, el cual puede ser público (+),
privado (-), protegido (#) o amistoso.
Los métodos pueden retornar un valor o no.
10
Metodologías de Programación: Programación Orientada a Objetos
1.5. Clase
Una clase describe un grupo de objetos con estructuras y comportamientos común [2].
Una clase es una agrupación de datos (atributo) y de funciones (métodos), que operan
sobre esos datos. A clase es el centro de la programación Orientada a Objetos [4].
Una clase es un tipo definido por el usuario. Una clase equivale a la generalización de
un tipo específico de objetos. Un objeto de una determinada clase se crea en el
momento en que se define una variable de dicha clase [6].
Las clases encapsulan o agrupan los atributos y métodos comunes a varios objetos,
son una plantilla, prototipos o tipos de datos especiales que permite crear objetos. Por
eso se dice que los objetos son instancias de una clase, si no tenemos una clase, no
podremos crear el objeto ya que el objeto se crea a partir de una clase. Estas clases
también tienen un especificador de acceso que puede ser público (accedido por
cualquier clase) o de paquete (sólo puede ser accedido por clases del mismo
paquete).
11
Metodologías de Programación: Programación Orientada a Objetos
Los paquetes son un mecanismo utilizado por java que permite organizar las clases de
una manera estructurada y jerárquica. Básicamente, un paquete es un directorio en el
que se almacenan los archivos class con los byte codes de la clase; un paquete puede
a su vez estar compuestos de otros subpaquetes [6].
Ejemplo de paquetes:
java.lang: Donde encontraremos a la clase System, Math, Byte, Short, Integer,
Long, Float, Double, String, etc.
java.io: Donde encontraremos a la clase BufferedReader, InputStreamReader,
IOException, etc.
java.util: Donde encontraremos a la clase Date, Random, Arrays, Vector, etc.
javax.swing: Donde encontraremos a la clase JOptionPane, etc.
Cuando en lugar del nombre de la clase colocamos * significa que importaremos todas
las clases de ese paquete.
Ejemplo:
import java.lang.*;
import java.io.*;
import java.util.Date;
12
Metodologías de Programación: Programación Orientada a Objetos
1.7. Mensaje
El mensaje es esencialmente una orden que se envía a un objeto para indicarle que
realice alguna acción; es decir se le solicita que ejecute uno de sus métodos. Un
objeto accede a otro enviándole un mensaje. Estructuralmente, un mensaje consta de
tres partes: identidad del receptor, el método que se ha de ejecutar y una información
especial necesaria para realizar el método invocado (argumentos o parámetros
requeridos) [5].
Un mensaje es una orden que se le envía a un objeto para que ejecute uno de sus
métodos. Es la orden que hace que el objeto ejecute alguno de sus métodos.
13
Metodologías de Programación: Programación Orientada a Objetos
constructor puede, sin embargo, tomar cualquier número de parámetros (cero o más)
[5].
Los constructores pueden usarse para llevar acabo la inicialización, lo que da una
flexibilidad mayor en la programación [10].
Al igual que sucede con los constructores, se proporciona un constructor por defecto
en el caso de que no se incluya implícitamente en la declaración de la clase. Al
contrario que los constructores, sólo puede haber un destructor por clase. Esto se
debe a que los destructores no pueden tener argumentos ni devolver valores. Los
14
Metodologías de Programación: Programación Orientada a Objetos
15
Metodologías de Programación: Programación Orientada a Objetos
16
Metodologías de Programación: Programación Orientada a Objetos
Especificador de acceso:
Público (+), Privado (-), Protegido (#), por omisión (si no se indica nada)
17
Metodologías de Programación: Programación Orientada a Objetos
Ejemplos:
En la figura 2, se muestra un par de ejemplo de como diagramar una clase.
18
Metodologías de Programación: Programación Orientada a Objetos
En la figura 6 se muestra un ejemplo de como sería una relación entre una clase y una
interfaz.
19
Metodologías de Programación: Programación Orientada a Objetos
UML, además define una forma de como diagramar un objeto como se muestra en la
figura 7.
20
Metodologías de Programación: Programación Orientada a Objetos
CAPITULO II
2.1. Abstracción
21
Metodologías de Programación: Programación Orientada a Objetos
2.2. Encapsulamiento
El principio de encapsulamiento significa que las estructuras de datos internas
utilizadas en la implementación de una clase no pueden ser accesibles directamente al
usuario de la clase [5].
El encapsulamiento permite ofrecer a los usuarios una visión de caja negra, de forma
que sólo se exporte la interfaz de usuario. Esta aproximación, estrechamente ligada
con la ocultación de información, permite empaquetar la funcionalidad de un objeto, de
forma que se pueda cambiar la funcionalidad interna sin afectar a la visión externa de
un componente de un sistema [6].
2.3. Herencia
La herencia, es la propiedad que le permite a los objetos ser construidos a partir de
otros objetos. Dicho de otro modo, la capacidad de un objeto para utilizar las
estructuras de datos y los métodos previstos en antepasados o ascendientes. El
objetivo final es la reutilización, es decir, reutilizar código anteriormente ya
22
Metodologías de Programación: Programación Orientada a Objetos
2.4. Polimorfismo
El polimorfismo (múltiples formas) es la utilización de operadores o funciones de
formas diversas, dependiendo de cómo se estén operando [5]
24
Metodologías de Programación: Programación Orientada a Objetos
REFERENCIAS BIBLIOGRÁFICAS
[1] Grady Booch, Análisis y diseño orientado a Objetos con Aplicaciones, Segunda Ed.
México: Addison Wesley, 1995.
[2] Alfredo Weitzenfeld, Ingeniería de Software Orientada a Objetos con UML, Java e
Internet, México: Thomson. Learnign, inc., 2005.
[3] Shari Lawrence Pfleeger, Ingeniería de Software: Teoría y Práctica, Buenos Aires:
Perarson Educación, 2002.
[4] J. Castañeda, Desarrollo de Aplicaciones en Java, Primera Ed. Perú: Ritisa Graff,
2007.
[6] Fco. Javier Ceballos Sierra, Java 2: Curso de Programación, Segunda Ed., México
D.F.: Alfaomega Grupo Editor, 2003.
[10] Bruce Eckel, Piensa en Java, 2da Ed., Madrid: Pearson Educación, 2002.
25