Está en la página 1de 26

UNIDAD 2

CLASES Y OBJETOS

34
OBJETIVO ESPECÍFICO

El alumno reconocerá el uso de los conceptos de clase y de objeto en la


programación orientada a objetos, e interactuará con ellos mediante un
lenguaje de programación

35
INTRODUCCIÓN
Es natural pensar en las cosas que nos rodean y el uso que les podemos dar.
Un auto o un refrigerador (objetos de nuestra vida cotidiana) tienen
capacidades que podemos simplificar y abstraer para representar a todo el
conjunto de autos o refrigeradores.

El paradigma orientado a objetos posee dos conceptos fundamentales: las


clases y los objetos (que veremos a lo largo de esta unidad).

Las clases son el “molde” que permite crear nuevos objetos, permiten
agruparlos y poder establecer características y comportamientos en común.

Por otra parte, los objetos son abstracciones del mundo real, buscan
representar ideas y objetos cotidianos.

Podemos imaginar a una clase como el molde para preparar galletas y, los
objetos, las galletas preparadas a partir de ese molde. Un objeto siempre
estará relacionado con una clase, pues a través de objetos es que usaremos el
potencial de las clases.

Entender cada uno de los conceptos que se asocian a las clases y objetos,
permite contar con una base sólida para el posterior desarrollo de aplicaciones
basándose en este paradigma.

36
Los conceptos asociados a estos términos, y que se desarrollarán en esta
unidad, son:

 Encapsulamiento.
 Constructor.
 Deconstructor.
 Sobrecarga.
 Polimorfismo.

Para poder llevar a cabo la implementación de un sistema empleando el


paradigma orientado a objetos, es necesario contar con una herramienta de
desarrollo, como lo es un lenguaje de programación enfocado a este
paradigma.

La elección del lenguaje puede obedecer a múltiples factores, como puede ser
la experiencia previa, el tipo de aplicación por desarrollar, el tiempo
establecido, entre otros.

Sin embargo, para llevar a cabo la selección, se recomienda analizar las


ventajas y desventajas; de la misma manera, si se cuenta con conocimientos
previos, el aprendizaje resulta más ágil.

Para la realización de ejemplos y ejercicios se propone su implementación en


lenguaje Java, sin embargo, pueden realizarse en cualquier lenguaje de
programación orientado a objetos.

37
LO QUE SÉ

Elabora un mapa conceptual, acerca del paradigma orientado a objetos.

Realiza tu actividad en un procesador de textos o en un presentador de


diapositivas, guárdala en tu computadora y una vez concluida presiona el botón
Examinar, localiza el archivo, selecciónalo y haz clic en Subir este archivo
para guardarlo en la plataforma.

38
TEMARIO DETALLADO
(12 horas)

2.1. Definición de clase y objeto


2.2. Atributos
2.3. Métodos
2.3.1. Sobrecarga de métodos
2.4. Mensajes
2.5. Encapsulación
2.6. Constructores
2.7. Destructores

39
2.1. Definición de clase y objeto
Para poder llevar a cabo el desarrollo de aplicaciones dentro del paradigma
orientado a objetos, es necesario que identifiquemos los elementos principales
de ello, como lo son clase y objeto.

Su importancia radica en que ambos son los pilares, sobre los cuales se
construyen módulos y funcionalidades que poseen las aplicaciones
desarrolladas con esta metodología.

Clase
Es la descripción de una situación real o de un conjunto de objetos y, al igual
que ellos, se encuentra formada por atributos y métodos, pero de forma
genérica, ya que representa a un grupo que posee determinadas
características en común.

Visto de otra forma, una clase es la abstracción de un conjunto de objetos con


propiedades y comportamiento similares.

Se pueden definir muchos objetos a partir de una clase, es decir, se pueden


instanciar.

A continuación, se tiene un ejemplo de sintaxis en lenguaje Java para realizar


la declaración de una clase:

public class NombreDeLaClase {


/*...*/
}

La palabra “public” hace referencia a la visibilidad de la clase; “class” le dice a


nuestro programa que estamos declarando una clase; y “NombreDeLaClase”,

40
es la forma en que se escribe una variable, de acuerdo con la convención
CamelCase para el nombre de variables. Seguir la convención CamelCase 1 no
es obligatorio, pero sí muy recomendable para saber a qué nos referimos en el
programa, porque usando este tipo de palabras podemos expresar mejor el
propósito de la variable o elemento que se está nombrando.

Objeto
Un objeto es una representación abstracta de una cosa del mundo real, con
sus características y propiedades, por lo que un objeto busca combinar en una
sola unidad, datos y funciones que operan sobre esos datos.

En otras palabras, un objeto es la instanciación de una clase, o bien, un


ejemplo práctico de una clase.

Los objetos son la base de la construcción de estructuras, funcionalidades o


módulos de las aplicaciones que se quieren implementar. Este concepto tiene
relevancia, ya que brinda soporte a una de las características más importantes
de la programación orientada a objetos: la modularidad.

Si se piensa en los objetos como piezas base a partir de las cuales se pueden
elaborar construcciones y estructuras más complejas, entonces también se
debe contemplar la idea de que son intercambiables y reusables.

En la concepción de un lenguaje orientado a objetos, un objeto encapsula


datos al igual que sus procedimientos o funciones (métodos) que manejan esos
datos.

Los objetos cuentan con 3 partes o componentes importantes:

1
CamelCase es un estilo de escritura que se utiliza cuando debemos hacer referencia a varias
palabras en una sola, el nombre viene de la semejanza con el subir y bajar de las jorobas de un
camello. Consiste en usar mayúscula, como elemento para distinguir una palabra de otra, en la
misma palabra compuesta.

41
Nombre del Atributos o Métodos o
concepto por propiedades funciones del
representar del objeto objeto

En la siguiente figura (2.1) se puede ver una representación esquemática de un


objeto, junto con su ejemplo. En este caso se está eligiendo la representación
de un automóvil.

Nombre del Focus


objeto

rojo

Atributos grande
Ford
Avanzar()
Métodos
Frenar()

Figura 2.1. Ejemplo de un objeto


A continuación, se tiene un ejemplo de sintaxis en lenguaje Java para realizar
la declaración de un objeto.
Primero se declara la clase:

public class Persona {


/*...*/
}

Posteriormente, se hace una instancia de esa clase:

persona juan = new Persona();

42
2.2 . Atributos
Los atributos son una característica del concepto que se quiere representar; se
refiere a las propiedades que pertenecen a una determinada clase.
Normalmente se usan para describir el estado de un objeto.

Los atributos están compuestos de dos elementos:

1. Tipo del atributo. Por ejemplo: integer, boolean, char, entre otros.
2. Nombre del atributo. Por ejemplo: nombre, género, edad, etc.

A continuación se tiene un ejemplo de sintaxis en lenguaje Java para indicar los


atributos de una clase:

public class NombreDeLaClase {


tipo_variable nombre_atributo1;
tipo_variable nombre_atributo2;
/*...*/
}

2.3 . Métodos
Es una propiedad del concepto que se quiere representar. Son las operaciones
que puede realizar un objeto; es decir, describen el comportamiento de un
objeto. Es importante saber que la puesta en marcha de un método puede
modificar el estado o atributo del objeto.

Cada método posee un nombre y un cuerpo que se encarga de realizar la


acción o comportamiento que se desea y que está asociado al nombre del
método.

43
A continuación se tiene un ejemplo de sintaxis en lenguaje Java para indicar los
métodos de una clase.

Ejemplo.
Representación de los zapatos.
Un zapato posee características, tales como:
Tipo: deportivo, casual, formal, etc.
Talla: 4, 5, 6, etc.
Color: café, negro, azul, etc.

También posee ciertas propiedades, por ejemplo: abrocharse, lustrarse,


etc.

La figura 2.2 muestra una representación esquemática de la clase “zapato”,


teniéndose:

Zapato

Tipo
Talla
Color

Abrocharse()
Desgastarse()

Figura 2.2. Representación de un objeto

A continuación, se tiene la declaración de métodos de una clase sintaxis del


lenguaje Java:

public class NombreDeLaClase {


/*...*/
tipo_devuelto nombreMetodo1 (lista_de_parametros) {
cuerpo_del_metodo1;
}
tipo_devuelto nombreMetodo2 (lista_de_parametros) {
cuerpo_del_metodo2;
}

44
}

2.4 . Mensajes
Es necesario que los distintos objetos interactúen entre sí. La interacción se
lleva a cabo mediante el envío de mensajes. El envío de mensajes no se
realiza en el ámbito de redes de computadoras, sino más bien en la puesta en
marcha de diversas solicitudes de un objeto hacia otro.

Al implementarse, el envío de mensajes consiste en que un objeto solicite a


otro la realización de alguno de sus métodos. Cuando un objeto ha recibido un
mensaje, puede responderlo, realizar alguna acción o modificar alguna de sus
características.

Un mensaje se compone por tres elementos:

1. El objeto al cual va destinado el mensaje.


2. El nombre del método que se desea poner en marcha.
3. Los valores que emplea ese método para su realización.

Por ejemplo, un objeto “calculadora” puede implementar el método suma(), el


cual suma dos números y devuelve el resultado. Si el objeto “caja fuerte”
requiere realizar una suma de dos cantidades de dinero que contiene, puede
enviar un mensaje al objeto “calculadora” pidiéndole que realice la suma de las
dos cantidades, que efectúe la operación por él y le devuelva el resultado.

En la figura 2.4 se puede ver una representación esquemática del envío de


mensajes.

45
Libro

El método 1 llama al
Atributos método 2 mediante
El método 3 se invoca un mensaje
por un mensaje de otro Método_1
objeto

Método_2

Método_3

Figura 2.4. Ejemplo de envío de mensajes

A continuación se tiene el envío de mensajes en Java:

/*…*/
Libro objLibro1 = new Libro();
objLibro1.metodo1(param1);
/*…*/

Los mensajes en Java son simplemente la invocación de un método para


realizar alguna acción o cambiar el atributo del objeto que lo ejecuta.

2.5 . Encapsulamiento
El encapsulamiento es otro de los conceptos fundamentales dentro del
paradigma orientado a objetos. Hace referencia a la capacidad que tiene un
objeto de ocultar determinada información a los otros objetos con los que se
encuentra interactuando. De esta manera, se permite seleccionar qué se desea
hacer público y qué no, ya que los otros objetos no tienen necesidad de
conocer lo que es parte del funcionamiento interno de ese objeto.

46
Visto desde el punto de vista de un lenguaje orientado a objetos, permite que
determinadas variables sean visibles o públicas para otros objetos, mientras
que las que están orientadas a su funcionamiento son privadas y sólo pueden
ser llamadas por algún método de ese mismo objeto.

Su importancia radica en la modularidad y escalabilidad que puede llegar a


obtenerse a partir de este concepto en las aplicaciones desarrolladas en este
paradigma. La visibilidad se encuentra establecida de tres formas diferentes:

Público Privado Protegido


Sólo los mismos
Cualquier otra clase Sólo los mismos
métodos de la clase
con la que se métodos de
y clases hijas (que
encuentre cualquier miembro
heredan) pueden
relacionada puede de la clase pueden
ver los atributos y
ver los atributos y ver los atributos y
métodos
métodos métodos que se
establecidos en
clasificados en este encuentran en este
este tipo de
tipo de visibilidad. tipo de visibilidad.
visibilidad.

En la definición de clase siguiente, se ejemplifica la manera de declarar la


visibilidad.

public class Punto


{
private int modulo;
public int x;
public int y;
protected int dibujarPunto();
}

47
 El atributo modulo, al ser declarado como privado, sólo puede ser
accedido dentro del mismo objeto de la clase Punto.
 Los atributos x - y, pueden ser accedidos desde cualquier parte del
programa.
 El método dibujarPunto() puede ser invocado desde un objeto declarado
a partir de la clase Punto.

2.6 Constructores
Un constructor es una función especial que se llama de forma automática
cuando se instancia una clase para crear un objeto, a fin de que sea colocado
en la memoria e inicializar los atributos que se declararon en la clase.

El constructor tiene el mismo nombre que la clase y no tiene un tipo de dato de


retorno (retorno vacío2 o void), además de ser de tipo público (public).

El objetivo de un constructor es asignar valores a los atributos de una clase al


momento de ser instanciado.

Una clase puede tener más de un constructor, a esta situación se le conoce


como sobrecarga de constructores. Todos ellos tienen el mismo nombre, pero
varían en la cantidad, orden y tipo de datos que reciben.

A continuación se presenta un ejemplo de constructor en lenguaje Java.

 Primero se tiene la clase “Libro” con su constructor llamado de la misma


forma (pero que no contiene código fuente) y un método que se llama
“tituloLibro”:

2
El tipo de retorno vacío hace referencia a que la ejecución del código fuente de determinada
funcionalidad, no regresa ningún valor. En una suma de 2 cantidades A y B, el resultado D.

48
public Class Libro{
public Libro(){
}
public tituloLibro(char titulo) {
System.out.println(“El titulo del libro es:
”+titulo);
}
}
 Posteriormente se tiene la llamada a instanciar un elemento de la clase
“Libro” e indicar su título:

public static void main(String args[]){


Libro miLibroDeLecturas = new tituloLibro(“El gato con
botas”);
}

2.7 Destructores

Es un método que se activa cuando la ejecución del código del programa


termina. Se llama automáticamente, por lo que no es necesario llamarlo
mediante alguna sentencia de programación, como sucede en el caso de un
constructor.

Su función consiste en liberar memoria y otros recursos empleados por los


objetos durante el tiempo de ejecución del programa, así como los vínculos con
otros objetos.

No existe una sintaxis para implementar destructores en lenguaje de


programación Java, ya que, al no emplearse un objeto, la memoria asignada a
él es liberada de forma automática; sin embargo, si se desea, se puede

49
implementar un método del tipo “finalize” para llevar a cabo esta tarea de forma
manual.

A continuación se presenta un ejemplo en lenguaje de programación Java.

 Se tiene la clase “Contador”, la cual implementa un método que suma


elementos de 1 en 1 hasta llegar al 10, posteriormente se tiene implementado
el método de tipo “finalize”, el cual realiza la resta hasta llegar a cero.

public Class Contador {


public static int conteo = 0;
public Contador(){ }
public ContadorSuma() {
while(conteo<=10) {
conteo = conteo + 1;
}
}
finalize(){
while(conteo<=0) {
conteo = conteo - 1;
}
}
}

50
RESUMEN

Para poder realizar el desarrollo exitoso de una aplicación en lenguaje


orientado a objetos, es importante contar los conceptos básicos del paradigma
orientado a objetos:

Una clase es una forma de agrupar a distintos objetos que poseen


propiedades y comportamientos similares. Las clases poseen un
nombre, atributos y métodos.

Los atributos caracterizan a la clase, mientras que los métodos son las
operaciones que puede realizar.

La sobrecarga de los métodos consiste en dar, a un mismo método, dos


usos diferentes, pero no lo usan de manera exactamente igual.

La modularidad de un sistema desarrollado bajo el paradigma orientado


a objetos se logra mediante el encapsulamiento de los atributos y
métodos de una clase, lo que permite dejar visible sólo aquello que es
necesario para la interacción con otras clases.

Para poder instanciar una clase y generar uno o más objetos, es


necesario emplear un constructor, el cual se nombrará igual que la
clase, pero que permite inicializar los atributos para su posterior empleo.

Finalmente, cuando un objeto ya no se usa, para optimizar el uso de memoria y


otros recursos de la computadora, se recomienda el uso de destructores o
deconstructores, los cuales liberan el espacio ocupado por el objeto.

51
GLOSARIO

Clase
Es un molde a partir del cual se pueden generar distintos tipos de objetos con
características en común.

Constructor
Es un método empleado para la inicialización de los atributos de un objeto para
su posterior uso.

Deconstructor o destructor
Es un método que se emplea para liberar los recursos empleados por un objeto
y que ya no son necesarios.

Encapsulamiento
Se refiere al establecimiento de la visibilidad de los atributos y métodos de una
clase en su relación con otras clases.

Objeto
Abstracción de un concepto físico o lógico del mundo real. Posee identidad,
atributos y métodos.

Sobrecarga
Es el empleo de un mismo método de distinta forma.

52
ACTIVIDADES DE APRENDIZAJE

ACTIVIDAD 1
Proporciona un ejemplo de clase, e instancia un objeto que pertenezca a esa
clase.

Para enviar tu respuesta, pulsa el botón Editar mi envío; se mostrará un editor


de textos en el cual puedes redactar tu información; una vez que hayas
concluido, salva tu actividad pulsando el botón Guardar cambios

ACTIVIDAD 2

Escribe un ejemplo donde ubiques una clase padre, con dos clases hijas, que
realicen la sobrecarga de uno de los métodos de la clase padre.

Utiliza un procesador de textos para hacer tu actividad; una vez que concluyas
envía tu información; presiona el botón Examinar para localizar el archivo en tu
computadora y por último presiona Subir este archivo.

ACTIVIDAD 3
Ejemplifica dos clases e indica cómo se llevaría a cabo el envío de mensajes
entre ellas. Utiliza un editor de textos para hacer tu actividad; una vez que
concluyas envía tu información; presiona el botón Examinar para localizar el
archivo en tu computadora y por último presiona Subir este archivo.

53
ACTIVIDAD 4

Proporciona un ejemplo de encapsulación de los métodos de una clase.

Utiliza un editor de textos para hacer tu actividad; una vez que concluyas envía
tu información; presiona el botón Examinar para localizar el archivo en tu
computadora y por último presiona Subir este archivo.

ACTIVIDAD 5

Proporciona un ejemplo de un constructor y un deconstructor.

Utiliza un editor de texto para hacer tu actividad; una vez que concluyas envía
tu información; presiona el botón Examinar para localizar el archivo en tu
computadora y por último presiona Subir este archivo.

54
CUESTIONARIO DE
REFORZAMIENTO

Contesta las siguientes preguntas.

1. Indica qué es un objeto.


2. Define qué es una clase.
3. Indica la diferencia entre clase y objeto.
4. Menciona los componentes de las clases.
5. ¿Qué es la sobrecarga de un método?
6. ¿Qué es y cómo se da un mensaje entre clases?
7. Explica qué es el encapsulamiento.
8. Define qué es un constructor.
9. Describe qué es un deconstructor.
10. Proporcionar un ejemplo de clase y de objeto.

Realiza tu actividad en un procesador de textos, guárdala en tu computadora y


una vez concluida, presiona el botón Examinar. Localiza el archivo, ya
seleccionado, presiona Subir este archivo para guardarlo en la plataforma

55
LO QUE APRENDÍ

Para la siguiente actividad, establece las clases, la visibilidad de sus atributos y


métodos, así como la relación entre ellas.

- Para un videoclub se tienen distintos tipos de películas, las cuales poseen las
siguientes características: nombre, año de realización, género, si es estreno
o no, clasificación interna de la tienda (5 estrellas significa muy buena, 1
significa que es mala) y número de serie.

- Se cuenta con varios vendedores en la tienda, los cuales se encargan de


rentar o vender las películas a los socios del videoclub. Una persona que no
es socio, solamente puede comprar una película, pero no rentarla.

- El proveedor llega una vez por semana y surte el catálogo con nuevos títulos,
los cuales son etiquetados en primer momento como estrenos.

- Los vendedores están registros en el videoclub en donde se encuentra su


nombre, teléfono, edad, dirección y puesto dentro de la tienda.

Realiza tu actividad en un procesador de textos, guárdala en tu computadora y


una vez concluida, presiona el botón Examinar. Localiza el archivo, ya
seleccionado, presiona Subir este archivo para guardarlo en la plataforma

56
EXAMEN DE AUTOEVALUACIÓN

Indica si las siguientes aseveraciones son verdaderas o falsas.

Verdadera Falsa
1. Un objeto es un molde para crear clases, las cuales ( ) ( )
poseen atributos, métodos e identidad.
2. Un objeto se comunica con otro a través de mensajes, ( ) ( )
los cuales llaman a la ejecución de un método.
3. El encapsulamiento consiste en guardar dentro de una ( ) ( )
clase distintos objetos.
4. La sobrecarga de un método consiste en emplear ese ( ) ( )
mismo método, pero de distintas formas.
5. Un constructor es una forma de instanciar una clase y ( ) ( )
crear un nuevo objeto.
6. Un deconstructor es una forma de eliminar un objeto ( ) ( )
que ya no es necesario

57
MESOGRAFÍA

Bibliografía sugerida

Autor Capítulo Páginas


Jenkins y Hardman 11 136-148
(2004)
12 155-158
Sierra & Bates (2005) 7 168-171

Bibliografía Básica

Jenkins, Tony & Hardman, Graham. (2004) How to program using Java.
Palgrave Macmillan: Nueva York, NY. [Vista previa]

Joyanes Aguilar, Luis. (1996). Programación orientada a objetos. Madrid:


McGraw-Hill.

Sierra, Kathy & Bates, Bert. (2005). Head First Java. (2nd ed.) O’Reilly:
Sebastopol, CA. [Vista previa]

Bibliografía Complementaria

58
Booch, G. (1996) Análisis y diseño orientado a objetos con aplicaciones. (2ª
ed.) México: Addison Wesley.

Keogh, Jim y Giannini, Mario. (2004). OOP Demystified: A Self-Teaching Guide.


USA: McGraw-Hill / Osborne.

McLaughlin, Brett D.; Pollice, Gary y West, David. (2006). Head First Object
Oriented Analysis and Design. O’Reilly: Sebastopol, CA.

Sitios de Internet

Sitio Descripción
http://zarza.usal.es/~fgarcia/doc/tuto2/II_5. Guía de iniciación al lenguaje Java:
htm clases y objetos.
http://tikal.cifn.unam.mx/~jsegura/LCGII/ja Curso de Java
va1.htm
http://docs.oracle.com/javase Java SE Technical Documentation
http://www.devtroce.com/2010/10/28/progr Programación orientada a objetos:
amacion-orientada-a-objetos- Constructores y sobrecarga.
constructores-y-sobrecarga/

59

También podría gustarte