100% encontró este documento útil (1 voto)
42 vistas35 páginas

Conceptos POO

CONCEPTOS Y CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.

Cargado por

sarielruiz2003
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
100% encontró este documento útil (1 voto)
42 vistas35 páginas

Conceptos POO

CONCEPTOS Y CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.

Cargado por

sarielruiz2003
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
Está en la página 1/ 35

U.A.G.R.M.

TEMA # 1

F.IN.I. CONCEPTOS Y
CARACTERISTICAS DE
LA PROGRAMACION
ORIENTADA A OBJETOS

Ing. Fernando Villarroel Santa Cruz


Contenido del Tema
 Introducción
 Conceptos de Objetos y Clases
 Características de la Programación
Orientada a Objetos

 Tipos de Clases

 Propiedades y Métodos
 Clases e instancias
 Constructores y tipos de
constructores
Introducción
La programación orientada a objetos es
un enfoque de programación de los más
populares y viene teniendo gran
aceptación en el desarrollo de proyectos
de software.
Concepto de CLASE
Son las definiciones de las propiedades y
comportamiento de un tipo de objeto
concreto. La instanciación es la lectura de
estas definiciones y la creación de un
objeto a partir de ellas.
Concepto de OBJETO
En P.O.O. es una entidad provista de un
conjunto de propiedades o atributos
(datos) y de comportamiento o
funcionalidad (métodos). Corresponden a
los objetos reales del mundo que nos
rodea, o a objetos internos del sistema
(del programa). Es una instancia a una
clase.
Objeto y Clase
Un objeto es algo de lo Una clase describe los
que hablamos y que objetos del mismo tipo
podemos manipular • Todos los objetos son instancias de una
clase
• Existen en el mundo real (o en nuestro
entendimiento del mismo) • Describe las propiedades y el
comportamiento de un tipo de objetos

Objeto:Clase Clase
Atributo1=valor Atributos
Atributo2=valor
... Operaciones
Atributos
• Son los datos que caracterizan a los objetos de una
clase y determinan el estado de un objeto;

• El Objeto vehículo puede tener varios atributos:

 Marca
 Año
 Color
 Patente, etc.
Métodos
• Representan todas aquellas acciones que se pueden
realizar sobre un objeto de cierta clase

• La clase Vehículo puede incluir los métodos:


 Encender
 Acelerar
 Virar
 Frenar
CARACTERISTICAS DE LA
P.O.O.
Son Propiedades, que lo llevan a ser un
estilo de desarrollo que permite crear código
re-utilizable
 Abstracción
 Encapsulamiento
 Herencia
 Modularidad
 Polimorfismo
Abstracción

Nos permite trabajar con la complejidad del


mundo real resaltando los aspectos
relevantes de los objetos de una clase.

Es más importante saber qué se hace en


lugar de cómo se hace.
Ejemplos: Abstracción

Nos permite trabajar con la complejidad del mundo real


 Resaltando los aspectos relevantes de los objetos de una clase
 Ocultando los detalles particulares de cada objeto
Separaremos el comportamiento de la implementación
Es más importante saber qué se hace en lugar de cómo se
hace:
Un sensor de temperatura
Se define porque...
 mide la temperatura
 nos muestra su valor
 se puede calibrar...
No sabemos... (no nos importa)
 cómo mide la temperatura
 de qué está hecho
 cómo se calibra
Encapsulamiento

 Permite considerar a los objetos como


"cajas negras", evitando que otros objetos
accedan a detalles que NO LES INTERESA
 Una vez creada la clase, las funciones
usuarias no requieren conocer los detalles
de su implementación
Ejemplo: Encapsulamiento

Ejemplo: Un paralelogramo

Vemos que se puede... No vemos...


Construir con: Como está representado
 4 puntos (y internamente
restricciones)  4 puntos?
 1 punto y 2 vectores
 1 punto y 2 vectores?
 1 punto, 1 vector, 1
ángulo y 1 lado  ...
Transformaciones: Como se modifica su escala
 Escalado  Guardando el factor?
 Rotación  Escalando en el momento?
 Desplazamiento Idem para rotación,
Dibujar traslación, etc...
Herencia

Permite reutilizar código creando nuevas clases a


partir de las existentes (construidas y depuradas)

Una nueva clase se generará agregando atributos


y/o código a una clase existente

Una clase (derivada) puede heredar de otra clase


(base):
 Atributos y
 Métodos
Modularidad

 Consiste en separar el sistema en bloques poco


ligados entre sí: módulos.
 Organización del código

 Es una especie de encapsulamiento de más alto nivel.


 El Java es más formal (packages)

 Difícil pero muy importante en sistemas grandes.


 Cada módulo debe definir una interfaz clara
Conceptos: Modularidad

Consiste en separar el sistema en bloques poco


ligados entre sí: módulos.
Organización del código
Es una especie de encapsulamiento de más alto nivel.
El Java es más formal (packages)
Difícil pero muy importante en sistemas grandes.
Cada módulo debe definir una interfaz
clara
Ejemplo: Modularidad

Ejemplo: Simulación detector de AAEE


Puede dividirse en los siguientes módulos...
1. Geometría: Describe el detector
físicamente (forma, materiales, tamaño)
2. Partículas: Las partículas cuyas
interacciones nos interesan
3. Procesos: Aquí enlazamos la información
del detector (materia) con las propiedades
de las partículas.
4. ...
Podríamos dividir el módulo de procesos en procesos
electromagnéticos, procesos hadrónicos, ...
Lo mismo podríamos hacerlo con las partículas: leptones,
hadrones, ...
Polimorfismo

Capacidad que permite a dos clases diferentes


responder de forma distinta a un mismo mensaje

Esto significa que dos clases que tengan un método


con el mismo nombre y que respondan al mismo tipo
de mensaje (es decir, que reciban los mismo
parámetros), ejecutarán acciones distintas
Ejemplo Polimorfismo
TIPOS DE CLASES

Una parte muy importante de


la programación orientada a
objetos son las clases, si no
fuera por ellas ni siquiera
habría objetos. Cada una tiene
sus propias características y
ventajas. Un programador que
conoce estas características
sabe cuando debe usar una y
no otra, de manera que su
desarrolla un buen software.
TIPOS DE CLASES
• Class. Abstract: Aquellas que tienen por lo menos un método
abstracto. No implementan sus métodos, sino que dan las bases para que
sean implementados en la herencia.

• Class. Public: Son muy comunes, accesibles desde cualquier otra


clase en la misma librería (de otro modo hay que importarlas).

• Class. Final: Son las que terminan la cadena de herencia. Útiles por
motivos de seguridad y eficiencia de un programa, ya que no permiten
crear más sub-divisiones por debajo de esta clase.
• Class. Synchronizable: Especifica que sus métodos son
sincronizados, de forma que estos no pueden empezar a correr un
método si no ha acabado el otro.
EJEMPLO TIPOS DE CLASES
CARACTERISTICAS FUNDAMENTALES
•Nombre de la clase. Sirve para identificar a todos los objetos que tengan
unas determinadas características.
•Conjunto de atributos. Datos miembros. El valor de los atributos
representan el estado de cada objeto.
•Conjunto de métodos. Funciones miembro. Permite que los objetos
cambien de estado, dependiendo del estado anterior que tuviera el objeto.
•Niveles de acceso para proteger ciertos miembros de la clase.
Normalmente, se definirán como ocultos (privados) los atributos y visibles
(públicos) los métodos.
PROPIEDADES Y METODOS
Objetos ¿Qué es una propiedad?
Hemos hablado antes brevemente del concepto de Una propiedad es un atributo de un objeto o un aspecto de su
objeto, al ver los distintos tipos de variables y datos. comportamiento. Por ejemplo, en las propiedades de un
Documento se incluyen el nombre, el contenido y el estado con
Lo definíamos como una especie de modelo con el
que se guarda, así como si está activado el control de cambios.
que representamos una cosa o un concepto de la vida
Para cambiar las características de un objeto, se cambian los
real. valores de sus propiedades.

¿Qué es un método?
Un método es una acción que puede realizar un objeto. Por
ejemplo, dado que los documentos pueden imprimirse, el
objeto Documento tiene un método PrintOut. Con frecuencia,
los métodos tienen argumentos que califican cómo se realiza la
acción.
PROPIEDADES DE LOS OBJETOS
Cuando definimos un objeto en programación,
solo elegimos las propiedades que nos interesan
Propiedades de los objetos para el tipo de proceso o tarea que estamos
Podemos definir variables y asociarlas a un objeto. A intentando gestionar o resolver. Por ejemplo, en el
esas variables las denominamos propiedades (también contexto de un Taller, puede interesar saber el
se les suele llamar atributos) y son características número de kilómetros que tiene el coche o cuándo
propias de ese objeto. ha sido su última reparación o mantenimiento, y
Por ejemplo, en un coche, podían ser la marca, el por tanto tener definidas propiedades/variables
modelo, potencia del motor, numero de puertas, etc. para almacenar esos datos, mientras que esa
información no es necesaria o útil si el contexto es
otro, como por ejemplo si gestionamos
un concesionario de venta de vehículos nuevos.
METODOS DE LOS OBJETOS
Métodos de los objetos
Además de propiedades, a los objetos podemos definirle una
serie de métodos, que son instrucciones que pueden cambiar los
valores que hemos asignado a esas propiedades. En el caso del
Taller podrían ser métodos como ‘realizar revisión periódica’ o
‘arreglar avería’, que podrían cambiar las fechas de la última En la mayoría de los casos, los
revisión y de la última reparación respectivamente. métodos son acciones y las
propiedades cualidades. Si se utiliza
JavaScript es un lenguaje basado en objetos. De hecho la
mayoría de elementos son objetos, o pueden ser tratados como
un método, la acción recae sobre el
tales. Esto incluye a los tipos de datos ‘string’ o ‘number’ o a los objeto, mientras que si se usa una
‘arrays’ propiedad, se devuelve información
acerca del objeto o se cambia una de
sus cualidades.
CLASES E INSTANCIAS

Clases:
Descripción de objeto. Consta de una
serie de métodos y datos que
resumen las características de este
objeto. Definir clases permite Instancia:
trabajar con código reutilizable. Se llama instancia a todo objeto que derive
Puesto que desde una clase se puede de algún otro. De esta forma, todos los
crear una instancia y así reutilizar el objetos son instancias de algún otro, menos
código escrito para esta sin tener que la clase Object que es la madre de todas.
volver a escribir el código para la
instancia. La instancia toma el patrón
de la clase padre. Sin embargo, las
variables son independientes.
CLASES E INSTANCIAS
INSTANCIA DE CLASE
Una instancia (en inglés, instance) es la particularización, realización
específica u ocurrencia de una determinada clase, entidad (modelo entidad-
relación) o prototipo. En general, cuando se ejecuta un programa en un
computador, se dice que éste se instancia. En los lenguajes de programación
orientada a objetos un objeto es una instancia de una clase. Esto es, un
miembro de una clase que tiene atributos en lugar de variables. En un
contexto del mundo real, podríamos pensar en “Casa” como una clase y en un
chalet como una instancia de esta e incluso otro chalet u otro tipo de casa
como puede ser un apartamento como otra instancia. En este caso no importa
el tipo de casa, si fuese de nuestro interés modelarlo y especificarlo,
diferenciaríamos entre un chalet y un apartamento con dos clases, entidades
o prototipos diferentes.
EJEMPLO CLASE E INSTANCIA
CONSTRUCTORES Y TIPOS DE
CONSTRUCTORES
CONSTRUCTOR
En programación orientada a objetos (POO), un
constructor es una subrutina cuya misión es
inicializar un objeto de una clase. En el constructor
se asignan los valores iniciales del nuevo objeto. Se
utiliza para crear tablas de clases virtuales y poder
así desarrollar el polimorfismo, una de las
herramientas de la programación orientada a
objetos. Al utilizar un constructor, el compilador
determina cuál de los objetos va a responder al
mensaje (virtual) que hemos creado. Tiene un tipo
de acceso, un nombre y un paréntesis.
IDENTIFICADORES
Un identificador es un conjunto de caracteres
alfanuméricos de cualquier longitud que sirve para
identificar las entidades del programa (clases,
funciones, variables, tipos compuestos) Los
identificadores pueden ser combinaciones de letras y
números. Cada lenguaje tiene sus propias reglas que
definen como pueden estar construidos. Cuando un
identificador se asocia a una entidad concreta,
entonces es el “nombre” de dicha entidad, y en
adelante la representa en el programa. Nombrar las
entidades hace posible referirse a las mismas, lo cual
es esencial para cualquier tipo de procesamiento
simbólico. En muchos lenguajes algunas secuencias
tienen la forma léxica de un identificador pero son
conocidos como palabras clave (o palabras
reservadas). Lo habitual es que si un identificador se
corresponde con una palabra clave o reservada, éste
ya no pueda utilizarse para referirse a otro tipo de
entidades como variables o constantes.
EJEMPLO IDENTIFICADOR

También podría gustarte