Clase 1 Java POO
Clase 1 Java POO
Clase 1 Java POO
Facultad de Ingeniería
Sistemas de Programas
Programación
Orientada a Objeto
•Introducción
•Conceptos
•Características
Introducción
El concepto de programación orientada a objeto (POO) no es nuevo, lenguajes
clásicos como SmallTalk se basan en ella. Dado que la POO. se basa en la idea natural
de la existencia de un mundo lleno de objetos y que la resolución del problema se
realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta
objetos como una característica fundamental del mismo.
1 - RELACIONES
2 - PROPIEDADES
3 - METODOS
Cada uno de estos componentes desempeña un papel totalmente independiente:
Las relaciones permiten que el objeto se inserte en la organización y están formadas esencialmente por
punteros a otros objetos.
Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma
organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto
pueden ser heredadas a sus descendientes en la organización.
Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán
incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a
disposición de sus descendientes a través de la herencia
El desarrollo de la POO empieza a destacar durante la década de lo 80 tomando en cuenta la
programación estructurada, a la que engloba y dotando al programador de nuevos elementos para
el análisis y desarrollo de software.
Programación Orientada a Objeto
Clases y objetos
Por ejemplo, en una biblioteca podemos distinguir los objetos biblioteca, libros, revistas,
usuarios, ficheros, fichas, etc.
Un ejemplo para entenderlo mejor: Analicemos un grupo de perros, cada uno de ellos
tiene características comunes como son talla, peso, color de pelo, etc. Al referirnos a un
perro, nos estamos refiriendo a un objeto de la clase perro, pero no podemos interactuar
con un perro, debemos referirnos a uno en particular; para esto, instanciamos un objeto de
la clase perro que llamaremos, por ejemplo, Perseo. Perseo es un objeto de la clase perro y
podemos interactuar con Perseo, averiguar su peso, su talla y su color de pelo.
Programación Orientada a Objeto
Clases
Una clase es un tipo definido por el usuario que determina las estructuras de
datos y las operaciones asociadas con ese tipo. Cada vez que se construye un
objeto de una clase, se crea una instancia de esa clase. En general, los términos
objetos e instancias de una clase se pueden utilizar indistintamente.
Variables miembro
Las propiedades o atributos que son características de los objetos. Cuando definimos una
propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que
las variables son algo así como el almacén de los datos de estado relacionados con los objetos.
Habitualmente, las variables miembro son privadas al objeto (siguiendo las directrices de diseño
del Principio de ocultación) y su acceso se realiza mediante propiedades o métodos que realizan
comprobaciones adicionales.
Implementan la funcionalidad asociada al objeto. Los métodos son el equivalente a las funciones
en los lenguajes estructurados. Se diferencian de ellos en que es posible acceder a las variables de
la clase de forma implícita.
Cuando se desea realizar una acción sobre un objeto, se dice que se le manda un mensaje
invocando a un método que realizará la acción.
Programación Orientada a Objeto
Abstracción
Encapsulamiento
Polimorfismo
Herencia
Las clases no están aisladas, sino que se relacionan entre sí, formando una
jerarquía de clasificación. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen.
•Private (privado)
•Protected(protegido)
•Public(publico)
private: La sección privada contiene todas las funciones y datos que serán
privados, es decir, ninguna de características serán accesibles por entidades
ajenas a la clase. Solo los métodos de la clase podrán manipular la sección
privada
Programación Orientada a Objeto
Protected
El acceso protegido sirve como un nivel intermedio de restricción entre la
sección privada y la sección publica.
La sección protegida de la clase base es solo accesible miembros y amigos
de la clase base y por los miembros y amigas de la clase derivada.
Public
La sección publica contiene todas las funciones y datos que serán públicos,
es decir, se le puede acceder libremente por cualquier entidad sin ningún tipo
de restricción, sin importar si pertenece o no a la clase.
Por defecto todos los datos y funciones miembro de una clase son privados
Es recomendable que todos los datos miembro de una clase sean privados y
que las funciones miembro sean publicas
Constructores y Destructores
Constructor
Destructor
Clases abstractas.
Existe una clase especial muy útil para crear jerarquías, o mejor digamos que es muy
típico usarla para diseñar jerarquías. Estas clases se llaman "clases abstractas", son
como cualquier otra, pero definidas con la intención de que sirvan como clase base de
otras clases. O sea que nunca se va a crear una instancia de una clase abstracta, (nunca
se creará un objeto de esa clase).
Se podría decir que una clase abstracta presenta la interfase común para los objetos de
clases derivadas.
Funciones virtuales
Técnicamente una clase abstracta define por lo menos una función virtual, que es
aquella que puede ser rescrita en la clase derivada, (que heredó esa función virtual).
Una función virtual en una clase es solamente la definición del prototipo de la
función, no hay implementación de la misma en esa clase, sino que queda a criterio
de clases derivadas, si es aplicable, la escritura de la implementación
HERENCIA
Tipos de herencia
En la programación Orientada a Objeto tiene dos tipos de herencia
Herencia Simple: es cuando la clase o clases derivadas, heredan las
propiedades de una sola clase Base
Herencia Múltiple: es cuando la clase o clases derivadas, heredan propiedades
de mas de una clase Base (dos o mas clases bases), este tipo de herencia no es
aplicable en todos los L.P.O.O.
A B A C
B C D
D
Jerarquía A Jerarquía B