0% encontró este documento útil (0 votos)
27 vistas12 páginas

Introducción A La POO

Cargado por

ruffaletz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas12 páginas

Introducción A La POO

Cargado por

ruffaletz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Unidad 1.

Introducción a la Programación Orientada a Objetos (POO)

2.1 Objetos y Clases

Un objeto es:

 Una cosa tangible y/o visible

Automóvil

 Algo que puede comprenderse intelectualmente

Proceso

 Una entidad software

Lista

Todo objeto del mundo real tiene 2 componentes: características y comportamiento.

Por ejemplo, los automóviles tienen características (marca, modelo, color, velocidad máxima,
etc.) y comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar llantas,
etc.).

Los Objetos de Software, al igual que los objetos del mundo real, también tienen
características y comportamientos. Un objeto de software mantiene sus características en
una o más "variables", e implementa su comportamiento con "métodos". Un método es una
función o subrutina asociada a un objeto.

Para redondear estas ideas, imaginemos que tenemos estacionado en nuestra cochera un
Ford Focus color azul que corre hasta 260 km/h. Si pasamos ese objeto del mundo real al
mundo del software, tendremos un objeto Automóvil con sus características
predeterminadas:

Marca = Ford

Modelo = Focus

Color = Azul
Velocidad Máxima = 260 km/h

Cuando a las características del objeto le ponemos valores decimos que el objeto tiene
estados. Las variables almacenan los estados de un objeto en un determinado momento.

Definición teórica: Un objeto es una unidad de código compuesto de variables y métodos


relacionados.

Los términos de objetos e instancia son intercambiables

Clases.

En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo,
nuestro teléfono celular es sólo uno de los miles que hay en el mundo. Si hablamos en
términos de la programación orientada a objetos, podemos decir que nuestro objeto celular
es una instancia de una clase conocida como "celular". Los celulares tienen características
(marca, modelo, sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y
recibir llamadas, enviar mensajes multimedia, transmisión de datos, etc.).

Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los celulares
comparten esas características comunes y construyen modelos o plantillas comunes, para
que a partir de esas se puedan crear muchos equipos celulares del mismo modelo. A ese
modelo o plantilla le llamamos CLASE, y a los equipos que sacamos a partir de ella la
llamamos OBJETOS.
Tipos de operaciones que se realizan sobre un objeto:

Modificador (setter): modifica el estado de un objeto

Selector (getter): accede al estado de un objeto sin alterarlo

Iterador: permite acceder a todas las partes de un objeto

Constructor: crea un objeto e inicializa su estado

Destructor: Limpia el estado de un objeto y lo destruye

Propósito general: la lógica del programa

Estructura de una clase

Nombre

Atributos

Métodos

Clase vs. Objetos

Clase:

Un patrón para la definición del estado y el comportamiento de un tipo particular de objetos

Todos los objetos de una clase dada son idénticos en estructura y comportamiento, pero
tienen identidad única

Objeto (instancia)

Pertenece a una clase en particular

Los objetos son creados y destruidos en tiempo de ejecución. Residen en el espacio de


memoria
2.2 Elementos primordiales en el modelo de objetos

 Abstracción
 Encapsulamiento
 Ocultamiento
 Herencia
 Polimorfismo

Abstracción

La abstracción consiste en captar las características esenciales de un objeto, así como su


comportamiento.

¿Qué características podemos abstraer de los automóviles? O lo que es lo mismo, ¿Qué


características semejantes tienen todos los automóviles? Todos tendrán una marca, un
modelo, número de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su
comportamiento todos los automóviles podrán acelerar, frenar, retroceder, etc.

En los lenguajes de programación orientada a objetos, el concepto de Clase es la


representación y el mecanismo por el cual se gestionan las abstracciones.

Por ejemplo, en Java tenemos:

public class Automovil {

// variables

// métodos

Encapsulamiento y ocultamiento

Encapsulamiento

El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto


es, las variables y métodos. Es tener todo esto en una sola entidad. En los lenguajes
estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la
abstracción y el ocultamiento que veremos a continuación.

La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que


tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento pero no
los detalles internos, y esto es conveniente porque nos interesará será conocer qué hace la
Clase pero no será necesario saber cómo lo hace.

Ocultamiento

Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer
sólo los detalles que sean necesarios para el resto del sistema.

El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase. Restringir porque


habrá cierto comportamiento privado de la Clase que no podrá ser accedido por otras Clases.
Y controlar porque daremos ciertos mecanismos para modificar el estado de nuestra Clase y
es en estos mecanismos dónde se validarán que algunas condiciones se cumplan. En Java el
ocultamiento se logra usando las palabras reservadas: public, private y protected delante de
las variables y métodos.

Herencia

La herencia es uno de los conceptos más cruciales en la POO. La herencia básicamente


consiste en que una clase puede heredar sus variables y métodos a varias subclases (la clase
que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de
los atributos y métodos propios, tiene incorporados los atributos y métodos heredados de la
superclase. De esta manera se crea una jerarquía de herencia.

Por ejemplo, imaginemos que estamos haciendo el análisis de un Sistema para una tienda
que vende y repara equipos celulares.

Polimorfismo

Permite implementar múltiples formas de un mismo método, dependiendo cada una de ellas
de la clase sobre la que se realice la implementación
Esto posibilita desencadenar operaciones diferentes en respuesta a un mismo mensaje, en
función del objeto que lo reciba.

Diagramas UML (Unified Modeling Language)

Lenguaje visual (diagramas) para modelar sistemas

Tipos de Diagramas UML

 Casos de uso
 Diagrama de clases
 Diagramas de interacción
o Diagramas de secuencia
o Diagramas de colaboración
 Diagramas de estado
 Diagramas de actividad
 Diagramas físicos
o Diagramas de componentes
o Diagramas de implantación

Diagramas de clases

Representa las clases que componen el sistema y sus relaciones estáticas.

Incluye:

 Clases con sus atributos y operaciones


 Asociación entre las clases
 Restricciones sobre las clases y asociaciones
 Datos relevantes de las asociaciones

Clases, atributos y operaciones

La clase se representa mediante un rectángulo dividido en 3 partes

 El nombre de la clase va arriba


 La definición de los atributos va en medio

Visibilidad nombre: tipo = valor por defecto

 La definición de los métodos va abajo

Visibilidad nombre (dirección lista de parámetros) : tipo de retorno


Ejemplos:

Defina un diagrama de clases llamado Rectangulo que tenga las siguientes


especificaciones:

Atributos:

 largo : double

 ancho : double

Métodos:

 calcularArea

 setLargo

 setAncho

 getLargo

 getAncho

Constructores:

 que inicialice los atributos de largo y ancho con los valores 25 y 50


respectivamente

 que reciba como parámetro los valores para los atributos largo y ancho.

+ Rectangulo

- largo : double

- ancho : double

+Rectangulo()

+Rectangulo(largo:double, ancho:double)

+ setLargo(nuevoLargo: double):void

+ setAncho(nuevoAncho: double, a:double):void

+ getLargo() : double

+ getAncho() : doublé

+ calcularArea() : double
Ejercicios:

1. Defina un diagrama de clases llamado Triangulo que tenga las siguientes


especificaciones:

Atributos:

 ladoA : double
 ladoB : double
 ladoC : double

Métodos:

 calcular Area()
 calcularPerimetro()
 setLadoA
 setLadoB
 setLadoC
 getLadoA
 getLadoB
 getLadoC

Constructores:

 que inicialice los atributos en valores


 que reciba como parámetro los valores para los atributos

2. Defina un diagrama de clases llamado Circulo que tenga las siguientes


especificaciones:

Atributos:

 radio

Métodos:

 calcular Area
 calcularCircunferencia
 setRadio
 getRadio

Constructores:

 que inicialice los atributos en cero


 que reciba como parámetro los valores para los atributos
3. Defina un diagrama de clases llamado Persona que tenga las siguientes
especificaciones:

Atributos:

 nombre : String
 edad : int
 peso : double
 altura : double

Constructores:

 que inicialice los atributos con valores probables


 que reciba como parámetro los valores para los atributos

 Métodos:
 getNombre
 setNombre
 getEdad
 setEdad
getPeso
setPeso
 getAltura
 setAltura
 calcularCalorias
 calcularIMC

4. Defina un diagrama de clases llamado Empleado que tenga las siguientes


especificaciones:

Atributos:

 nombre : String
 departamento : int
 horasTrabajadas : char
 pagoHora : double

Métodos:

 set Nombre
 setDepartamento
 setHorasTrabajadas
 setPAgoHora
 get Nombre
 getDepartamento
 getHorasTrabajadas
 getPAgoHora
 calcularSalario () : double
Constructores:

 que inicialice los atributos en:

nombre = “”

departamento : 1

horasTrabajadas : 0

pagoHora : 0

 que reciba como parámetro los valores para los atributos

Defina un diagrama de clases llamado Persona que tenga las siguientes


especificaciones:

Atributos:

 nombre : String
 edad : int
 peso : double
 altura : double

Métodos:

 calcularCalorias
 calcularIMC
 setNombre
 setEdad
 setPeso
 setAltura
 getNombre
 getEdad
 getPeso
 getAltura

Constructores:

 que inicialice los atributos en cero


 que reciba como parámetro los valores para los atributos

5. Defina un diagrama de clases llamado Estudiante que tenga las siguientes


especificaciones:

Atributos:

 nombre : String
 matricula : int
 calificacion1 : double
 calificacion2 : double
 calificación3 : double

Métodos:

 setNombre
 setMatricula
 setCalificacion1
 setCalificacion2
 setCalificacion3
 getCalificacion1
 getCalificacion2
 getCalificacion3
 calculaPromedioAritmetico :double
 calculaPromedioPonderado(int c1, int c2, int c3)

Constructores:

 que inicialice los atributos en:

nombre = “Pendiente”

matricula = 0

calificacion1= 0

calificacion2= 0

calificacion3= 0

 que reciba como parámetro los valores para los atributos

++++++++++

6. Defina un diagrama de clases llamada Persona que tenga las siguientes


especificaciones:

Atributos:

nombre : String

edad : int

peso : double

altura : double

Métodos:

 set Nombre
 setEdad
 setPeso
 setAltura
 get Nombre
 getEdad
 getPeso
 getAltura
 calcularCalorias () : double
 calcularIMC () : double

Constructores:

 que inicialice los atributos en:

nombre = “Pendiente”

edad = 0

peso= 0

altura= 0

 que reciba como parámetro los valores para los atributos

También podría gustarte