SlideShare una empresa de Scribd logo
Lenguaje de Programación
Orientada a Objetos
Marielena Lujano G.
 La programación orientada a objetos, es, desde su raíz, una forma de
concebir un programa de computadora. Un programa es una serie de
instrucciones que le indican a la computadora que hacer. La manera en
que la POO ve a un programa es como un conjunto de objetos que
operan juntos en formas predefinidas para realizar tareas.
Programación Orientada a Objetos
Abstracción:Cada objetoen el sistemasirve comomodelodeun “agente”abstractoque puederealizar trabajo, informary cambiar su estado,y “comunicarse”
con otrosobjetosen el sistemasin revelar cómo se implementanestascaracterísticas.
Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto
permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque
se suelen emplearconjuntamente.
Principio de ocultación: El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente
los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de
maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos
internos del objetode una manera controlada y limitando el grado de abstracción
Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de
diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado.
Cuando esto ocurre en “tiempo de ejecución”, esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan
medios másestáticos (en “tiempodecompilación”)depolimorfismo,talescomolas plantillas y lasobrecargade operadoresdeC++.
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. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser
definidos y creados como tipos especializados de objetos preexistentes. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple; esta
característica no está soportadaporalgunos lenguajes (comoJava).
CARACTERISTICAS DE LA PROGRAMACIÓN
ORIENTADA A OBJETOS
Objetos
 Un objeto es un elemento independiente de un programa de
computadora, que representa a un grupo asociado de
características y esta diseñado para realizar tareas específicas. A
los objetos también se les conoce como instancias.
FUNDAMENTO DE LA PROGRAMACIÓN
ORIENTADA A OBJETOS
Clases:
Una clase es una plantilla que se utiliza para crear múltiples objetos
con características similares. Las clases engloban todas las
características de un conjunto particular de objetos. Cuando
escribe un programa en un lenguaje orientado a objetos, usted no
define objetos individuales, sino que define clases de objetos.
Lenguaje  de  Programación  Orientada  a Objetos
En general, cada claseque escribas esta compuesta de dos componentes:
 Atributos
 Comportamiento
Comportamiento: Es la manera en que una clase de objetos puede hacer cualquier cosa
para sí o para otros objetos. El comportamiento de una clase determina qué objetos de
esa clase hacen cambiar sus atributos y también qué hacen cuando otros objetos les piden
hacer algo. El comportamiento para una clase de objetos se implementa a través de
métodos.
Atributos: Los atributos son las cosas individuales que diferencian una clase de objetos de
otros y determinan la apariencia, estado y otras cualidades de la clase. También pueden
incluir información acerca del estado de un objeto. En una clase, los atributos están
definidos por variables. Cada objeto puede tener valores distintos para sus variables y a
éstas se les denominavariables de instancia.
COMPORTAMIENTO Y ATRIBUTOS
Lenguaje  de  Programación  Orientada  a Objetos
Un especificador (modificador) de acceso o alcance es una palabra clave (reservada) que nos
permite controlar nivel de alcance que tiene cada variable, método o clase. Existen tres public,
protected, private, static, final.
 public establece un nivel de acceso total, es decir una clase public puede ser usada por otras clases del mismo paquete y de
otros paquetes no relacionados, lo mismo para los métodos y variables. public es el especificador de acceso mas utilizado en
estudiantes ya que no nos enfrentamos a la dificultad (¿..?) de tener que determinar que se puede y que no se puede utilizar
en un clase.
 private establece un nivel restringido de acceso, En el cual los miembros declarados como tal solo son accesibles dentro de
la clase, aunque la clase herede de esta ultima. las variable y métodos private son usados cuando los clientes de una clase no
deben preocuparse (ni les debe importar) como se efectúan las acciones claves de un programa. establecer miembros
private establece el mayor nivel de seguridad.
 protected establece un nivel de acceso intermedio entre public y private en el que los miembros solo son accesibles por
clases y métodos dentro del mismo paquete.
 static el modificador static crea variables y metodos de clase (a esto es lo que nos referimos cuando hablamos de variables
de clase) estos objetos pueden ser llamados desde cualquier parte de la clase modificando sus valores reales de forma
definitiva.
 final el modificador final, crea una constante, en realidad en java no existen las constantes, pero final hace que las variables
imiten su comportamiento. Cualquier intento por modificar una variable final creara un error en tiempo de ejecucion.
Un ejemplo de final, es la variable PI, de la clase Math
ESPECIFICADORES DE ACCESO
Un método constructor es aquél que un objeto llamacuando es creado, es decir, cuando
se construye.
Un constructortiene las siguientescaracterísticas:
• Siempre tienenel mismo nombre que la clase
• No tienentipo de regreso
• El objetivo de un constructor es el de inicializar un objeto cuando éste es creado.
Asignaremoslos valores inicialesasí como los procesos que ésta clase deba realizar.
• Se utiliza para crear tablas de métodos virtuales y poder así desarrollarel polimorfismo,
una de las herramientasde la programación orientadaa objetos.Al utilizar un constructor,
el compiladordeterminacual de los objetos va a responderal mensaje(virtual) que
hemos creado.
• Tiene un tipo de acceso, un nombre y un paréntesis.
CONSTRUCTORES
Lenguaje  de  Programación  Orientada  a Objetos
Un destructor es una función miembro con igual nombre que
la clase, pero precedido por el carácter ~. Una clase sólo tiene
una función destructor que, no tiene argumentos y no
devuelve ningún tipo.
o Un destructor realiza la operación opuesta de un
constructor, limpiando el almacenamiento asignado a los
objetos cuando se crean. El compilador llama
automáticamente a un destructor del objeto cuando el
objeto sale fuera del ámbito.
o Si un destructor no se define en una clase, se creará por
defecto un destructor que no hace nada.
DESTRUCTORES
La herencia es específica de la programación orientada a objetos, donde una
clase nueva se crea a partir de una clase existente. La herencia (a la que
habitualmente se denomina subclases) proviene del hecho de que la subclase
(la nueva clase creada) contiene las atributos y métodos de la clase primaria.
 La principal ventaja de la herencia es la capacidad para definir atributos y
métodos nuevos para la subclase, que luego se aplican a los atributos y
métodos heredados. Esta particularidad permite crear una estructura
jerárquica de clases cada vez más especializada.
 La gran ventaja es que uno ya no debe comenzar desde cero cuando desea
especializar una clase existente. Como resultado, se pueden adquirir
bibliotecas de clases que ofrecen una base que puede especializarse a
voluntad (la compañía que vende estas clases tiende a proteger las datos
miembro usando la encapsulación).
LA HERENCIA EN PROGRAMACIÓN
ORIENTADA A OBJETOS
Existen dos tipos de herencia
 Herencia Simple: En esta jerarquía cada clase tiene como
máximo una sola superclase. La herencia simple permite que
una clase herede las propiedades y métodos de su superclase
en una cadena jerárquica.
 Herencia múltiple: Una malla o retícula consta de clases, cada
una de las cuales pueden tener dos o más superclases
inmediatas. Una herencia múltiple es aquella en la que cada
clase puede heredar las propiedades y métodos de cualquier
número de clases.
TIPOS DE HERENCIA EN POO
Una clase base virtual es una clase que es compartida por otras clases base con independencia
del número de veces que esta clase se produce en la jerarquía de derivación.
Suponer, por ejemplo, que la clase T se deriva de las clases C y D cada una de las cuales se deriva
de la clase A. Esto significa que la clase T tiene dos instancias de A en su jerarquía de derivación.
C++ permite instancias múltiples de la misma clase base. Sin embargo, si sólo se desea una
instancia de la clase A para la clase T, entonces se debe declarar A como una clase base virtual.
 Las clases base virtuales proporcionan un método de anular el mecanismo de herencia
múltiple, permitiendo especificar una clase que es una clase base compartida.
 Una clase derivada puede tener instancias virtuales y no virtuales de la misma clase base.
CLASE BASES VIRTUALES
 La visibilidad de una propiedad o método se puede definir
anteponiendo a su declaración una de las palabras
reservadas public, protected o private.
 A los miembros de clase declarados como 'public' se puede
acceder desde donde sea; a los miembros declarados
como 'protected', solo desde la misma clase o medianta
clases heredadas.
 A los miembros declarados como 'private' únicamente se
puede acceder desde la clase que los definió.
VISIBILIDAD DE LA HERENCIA EN
POO
CLASES ABSTRACTAS: Estas clases se caracterizan por tener algunos de sus
métodos declarados como abstractos, pero ¿qué es un método abstracto?. Un
método abstracto es aquel que está definido, pero no tiene cuerpo, es decir, le
declaramos el nombre, los parámetros y el tipo de devolución pero no le
declaramos lo que va entre llaves "{}", es más, no le ponemos llaves.
Estas clases se utilizan para permitir que otras clases hereden de ella y
proporcionar un modelo a seguir.
La declaración de una clase y método abstracto es el siguiente:
Public abstract class nombreClase{
public abstract tipo nombre(argumentos(si los lleva));
}
CLASES ABSTRACTAS EN POO
Lenguaje  de  Programación  Orientada  a Objetos
Es una función cuyo comportamiento, al ser declarado "virtual", es determinado por la
definición de una función con la misma cabecera en alguna de sus subclases. Este concepto es
una parte muy importante del polimorfismo en la POO.
El concepto de función virtual soluciona los siguientes problemas:
 En POO, cuando una clase derivada hereda de una clase base, un objeto de la clase
derivada puede ser referido (o coercionado) tanto como del tipo de la clase base como
del tipo de la clase derivada. Si hay funciones de la clase base redefinidas por la clase
derivada, aparece un problema cuando un objeto derivado ha sido coercionado como
del tipo de la clase base. Cuando un objeto derivado es referido como del tipo de la base,
el comportamiento de la llamada a la función deseado es ambiguo.
 Distinguir entre virtual y no virtual sirve para resolver este problema. Si la función en
cuestión es designada "virtual", se llamará a la función de la clase derivada (si existe). Si no
es virtual, se llamará a la función de la clase base.
MÉTODOS VIRTUALES EN POO
 En principio se hereda todo menos:
Constructor y Destructor
Aunque no se heredan ni el constructor ni el destructor
de la clase base, cuando se crea o se destruye un objeto
de la clase derivada se invocan automáticamente los de
la clase base. Se usa el constructor por defecto (es decir
sin parámetros).
CONSTRUCTORES Y DESTRUCTORES
CON HERENCIA
Gracias por su atención

Más contenido relacionado

PDF
Nouveautés Java 9-10-11
PPTX
How to get http query parameters in mule
PDF
Domain driven design and model driven development
PDF
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
PDF
Blockchain 2nd ethereum_core
PPTX
PPTX
Jakarta EE: Today and Tomorrow
Nouveautés Java 9-10-11
How to get http query parameters in mule
Domain driven design and model driven development
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Blockchain 2nd ethereum_core
Jakarta EE: Today and Tomorrow

La actualidad más candente (14)

KEY
Solid principles
PDF
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
PDF
Sending emails through PHP
PPTX
Express JS Rest API Tutorial
PDF
Node Architecture and Getting Started with Express
PPTX
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
PDF
Guide To API Development.pdf
PDF
API : l'architecture REST
PPT
Core java concepts
PDF
Chapitre3 2013 POO
PDF
Hexagonal architecture in PHP
PDF
An introduction to MongoDB
PDF
Cours php & Mysql - 2éme partie
PPTX
Php intro
Solid principles
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Sending emails through PHP
Express JS Rest API Tutorial
Node Architecture and Getting Started with Express
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Guide To API Development.pdf
API : l'architecture REST
Core java concepts
Chapitre3 2013 POO
Hexagonal architecture in PHP
An introduction to MongoDB
Cours php & Mysql - 2éme partie
Php intro
Publicidad

Destacado (20)

DOCX
MÁS DE 400 COMANDOS PARA GNU/LINUX QUE DEBERÍAS CONOCER
PPTX
Lenguajes programación orientada a objetos
PPTX
Programación orientada a objetos
PDF
Marketperu en base de datos comandos
PDF
Migracion de rational a sql server 2014
PPTX
Programación orientada a objetos
PDF
Las funciones en JavaScript para la programación orientada a objetos
PDF
Mongo db comandos básicos
PDF
Introducción a la programación orientada a objetos con JavaScript
PDF
Programación orientada a objetos
PPTX
Protocolo tpc ip
ODP
Programación Orientada a Objetos para Python
PPTX
Programacion Orientada a Eventos
PDF
Tema 1 introduccion a la programacion en visual basic
PPTX
Programación!! . .
PPTX
programacion orientada a objetos
PPTX
Programación Orientada a Objetos - Resumen
PPTX
Programacion orientada a objetos - unidad 3 herencia
PPTX
Programacion Orientada a Objetos - Undiad 4 polimorfismo
PPT
POO: Herencia, Abstraccion y Polimorfismo
MÁS DE 400 COMANDOS PARA GNU/LINUX QUE DEBERÍAS CONOCER
Lenguajes programación orientada a objetos
Programación orientada a objetos
Marketperu en base de datos comandos
Migracion de rational a sql server 2014
Programación orientada a objetos
Las funciones en JavaScript para la programación orientada a objetos
Mongo db comandos básicos
Introducción a la programación orientada a objetos con JavaScript
Programación orientada a objetos
Protocolo tpc ip
Programación Orientada a Objetos para Python
Programacion Orientada a Eventos
Tema 1 introduccion a la programacion en visual basic
Programación!! . .
programacion orientada a objetos
Programación Orientada a Objetos - Resumen
Programacion orientada a objetos - unidad 3 herencia
Programacion Orientada a Objetos - Undiad 4 polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
Publicidad

Similar a Lenguaje de Programación Orientada a Objetos (20)

PDF
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PDF
[ES] Programación orientada a objeto con java
DOCX
Act10byme
PPT
Poo Java
DOCX
Definiciones taller 8 agost
PPTX
Conceptos basicos POO
PPT
FPJUCE - Capitulo2
PPTX
phpapp02- programación orientado a objetvos
PPTX
Trabajo de diceño y realizacion
PPTX
Doc.construccion del conocimiento.
DOCX
Cuestionario poo
DOCX
DOCX
Analisis orientado a objetos
PDF
Unidad 4. Herencia y Polimorfismouskssss
PPTX
PROGRAMACIÓN ORIENTADA A OBJETOS
DOCX
Cuestionario poo
DOCX
Cuestionario poo
DOCX
Cuestionario poo
PPTX
Conceptos poo
DOCX
Cesar adrian barrios alarcon unidad 2
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
[ES] Programación orientada a objeto con java
Act10byme
Poo Java
Definiciones taller 8 agost
Conceptos basicos POO
FPJUCE - Capitulo2
phpapp02- programación orientado a objetvos
Trabajo de diceño y realizacion
Doc.construccion del conocimiento.
Cuestionario poo
Analisis orientado a objetos
Unidad 4. Herencia y Polimorfismouskssss
PROGRAMACIÓN ORIENTADA A OBJETOS
Cuestionario poo
Cuestionario poo
Cuestionario poo
Conceptos poo
Cesar adrian barrios alarcon unidad 2

Último (20)

PPTX
EPCE_EXCEL 365 CURSO DE ENTRENAMIENTO.pptx
PPTX
DOROTHEA E OREM EXPO.pptx de una teoridta importante
PDF
Presentación para empoderar a un equipo a factirar
PPTX
Milder Antoni quirhuayo segura trabajo de investigación .pptx
PDF
EJERCICIOS RESUELTOS CON SOLVER EXCEL.pdf
PPTX
Características de jean Piaget y su fase cognitivo
PDF
Rendición_Pública_de_Cuentas_Inicial_2019.pdf
PPTX
lareformaprevisional-091013175510-phpapp01.pptx
DOCX
Clase 2.1 Estudio de Casos - preguntas, hipótesis y objetivos 13.04.23.docx
PDF
PRESENTACION DE LA ASIGNATURA materiales no convencionales.pdf
DOCX
LAS DROGAS, SU CONSUMO Y LAS ADICCIONES.docx
PDF
Riesgos en Negociaciones_comercio exterior.pdf
DOCX
DUA 2025 para maestros especiales del área de español
PDF
Registro de Limpieza y Desinfección.pdf1
PDF
NORMA_1887_LEY_27269_Modificada_por_LEY_27310.pdf
PPTX
TICS EN HONDURAS, PAIS DE CENTROAMERICA.pptx
PPTX
ESTRADA ORDEN INTERNO 111111111111111111
PDF
docsity-diapositivas-de-la-salud-mental.pdf
PPTX
Copia de Plantilla VSL Method Como crear videos ee 7 minutos hipnoticods.pptx
PDF
Actualización en el uso de uterotónico.pdf
EPCE_EXCEL 365 CURSO DE ENTRENAMIENTO.pptx
DOROTHEA E OREM EXPO.pptx de una teoridta importante
Presentación para empoderar a un equipo a factirar
Milder Antoni quirhuayo segura trabajo de investigación .pptx
EJERCICIOS RESUELTOS CON SOLVER EXCEL.pdf
Características de jean Piaget y su fase cognitivo
Rendición_Pública_de_Cuentas_Inicial_2019.pdf
lareformaprevisional-091013175510-phpapp01.pptx
Clase 2.1 Estudio de Casos - preguntas, hipótesis y objetivos 13.04.23.docx
PRESENTACION DE LA ASIGNATURA materiales no convencionales.pdf
LAS DROGAS, SU CONSUMO Y LAS ADICCIONES.docx
Riesgos en Negociaciones_comercio exterior.pdf
DUA 2025 para maestros especiales del área de español
Registro de Limpieza y Desinfección.pdf1
NORMA_1887_LEY_27269_Modificada_por_LEY_27310.pdf
TICS EN HONDURAS, PAIS DE CENTROAMERICA.pptx
ESTRADA ORDEN INTERNO 111111111111111111
docsity-diapositivas-de-la-salud-mental.pdf
Copia de Plantilla VSL Method Como crear videos ee 7 minutos hipnoticods.pptx
Actualización en el uso de uterotónico.pdf

Lenguaje de Programación Orientada a Objetos

  • 1. Lenguaje de Programación Orientada a Objetos Marielena Lujano G.
  • 2.  La programación orientada a objetos, es, desde su raíz, una forma de concebir un programa de computadora. Un programa es una serie de instrucciones que le indican a la computadora que hacer. La manera en que la POO ve a un programa es como un conjunto de objetos que operan juntos en formas predefinidas para realizar tareas. Programación Orientada a Objetos
  • 3. Abstracción:Cada objetoen el sistemasirve comomodelodeun “agente”abstractoque puederealizar trabajo, informary cambiar su estado,y “comunicarse” con otrosobjetosen el sistemasin revelar cómo se implementanestascaracterísticas. Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplearconjuntamente. Principio de ocultación: El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objetode una manera controlada y limitando el grado de abstracción Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en “tiempo de ejecución”, esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios másestáticos (en “tiempodecompilación”)depolimorfismo,talescomolas plantillas y lasobrecargade operadoresdeC++. 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. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple; esta característica no está soportadaporalgunos lenguajes (comoJava). CARACTERISTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS
  • 4. Objetos  Un objeto es un elemento independiente de un programa de computadora, que representa a un grupo asociado de características y esta diseñado para realizar tareas específicas. A los objetos también se les conoce como instancias. FUNDAMENTO DE LA PROGRAMACIÓN ORIENTADA A OBJETOS
  • 5. Clases: Una clase es una plantilla que se utiliza para crear múltiples objetos con características similares. Las clases engloban todas las características de un conjunto particular de objetos. Cuando escribe un programa en un lenguaje orientado a objetos, usted no define objetos individuales, sino que define clases de objetos.
  • 7. En general, cada claseque escribas esta compuesta de dos componentes:  Atributos  Comportamiento Comportamiento: Es la manera en que una clase de objetos puede hacer cualquier cosa para sí o para otros objetos. El comportamiento de una clase determina qué objetos de esa clase hacen cambiar sus atributos y también qué hacen cuando otros objetos les piden hacer algo. El comportamiento para una clase de objetos se implementa a través de métodos. Atributos: Los atributos son las cosas individuales que diferencian una clase de objetos de otros y determinan la apariencia, estado y otras cualidades de la clase. También pueden incluir información acerca del estado de un objeto. En una clase, los atributos están definidos por variables. Cada objeto puede tener valores distintos para sus variables y a éstas se les denominavariables de instancia. COMPORTAMIENTO Y ATRIBUTOS
  • 9. Un especificador (modificador) de acceso o alcance es una palabra clave (reservada) que nos permite controlar nivel de alcance que tiene cada variable, método o clase. Existen tres public, protected, private, static, final.  public establece un nivel de acceso total, es decir una clase public puede ser usada por otras clases del mismo paquete y de otros paquetes no relacionados, lo mismo para los métodos y variables. public es el especificador de acceso mas utilizado en estudiantes ya que no nos enfrentamos a la dificultad (¿..?) de tener que determinar que se puede y que no se puede utilizar en un clase.  private establece un nivel restringido de acceso, En el cual los miembros declarados como tal solo son accesibles dentro de la clase, aunque la clase herede de esta ultima. las variable y métodos private son usados cuando los clientes de una clase no deben preocuparse (ni les debe importar) como se efectúan las acciones claves de un programa. establecer miembros private establece el mayor nivel de seguridad.  protected establece un nivel de acceso intermedio entre public y private en el que los miembros solo son accesibles por clases y métodos dentro del mismo paquete.  static el modificador static crea variables y metodos de clase (a esto es lo que nos referimos cuando hablamos de variables de clase) estos objetos pueden ser llamados desde cualquier parte de la clase modificando sus valores reales de forma definitiva.  final el modificador final, crea una constante, en realidad en java no existen las constantes, pero final hace que las variables imiten su comportamiento. Cualquier intento por modificar una variable final creara un error en tiempo de ejecucion. Un ejemplo de final, es la variable PI, de la clase Math ESPECIFICADORES DE ACCESO
  • 10. Un método constructor es aquél que un objeto llamacuando es creado, es decir, cuando se construye. Un constructortiene las siguientescaracterísticas: • Siempre tienenel mismo nombre que la clase • No tienentipo de regreso • El objetivo de un constructor es el de inicializar un objeto cuando éste es creado. Asignaremoslos valores inicialesasí como los procesos que ésta clase deba realizar. • Se utiliza para crear tablas de métodos virtuales y poder así desarrollarel polimorfismo, una de las herramientasde la programación orientadaa objetos.Al utilizar un constructor, el compiladordeterminacual de los objetos va a responderal mensaje(virtual) que hemos creado. • Tiene un tipo de acceso, un nombre y un paréntesis. CONSTRUCTORES
  • 12. Un destructor es una función miembro con igual nombre que la clase, pero precedido por el carácter ~. Una clase sólo tiene una función destructor que, no tiene argumentos y no devuelve ningún tipo. o Un destructor realiza la operación opuesta de un constructor, limpiando el almacenamiento asignado a los objetos cuando se crean. El compilador llama automáticamente a un destructor del objeto cuando el objeto sale fuera del ámbito. o Si un destructor no se define en una clase, se creará por defecto un destructor que no hace nada. DESTRUCTORES
  • 13. La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se denomina subclases) proviene del hecho de que la subclase (la nueva clase creada) contiene las atributos y métodos de la clase primaria.  La principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la subclase, que luego se aplican a los atributos y métodos heredados. Esta particularidad permite crear una estructura jerárquica de clases cada vez más especializada.  La gran ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase existente. Como resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que puede especializarse a voluntad (la compañía que vende estas clases tiende a proteger las datos miembro usando la encapsulación). LA HERENCIA EN PROGRAMACIÓN ORIENTADA A OBJETOS
  • 14. Existen dos tipos de herencia  Herencia Simple: En esta jerarquía cada clase tiene como máximo una sola superclase. La herencia simple permite que una clase herede las propiedades y métodos de su superclase en una cadena jerárquica.  Herencia múltiple: Una malla o retícula consta de clases, cada una de las cuales pueden tener dos o más superclases inmediatas. Una herencia múltiple es aquella en la que cada clase puede heredar las propiedades y métodos de cualquier número de clases. TIPOS DE HERENCIA EN POO
  • 15. Una clase base virtual es una clase que es compartida por otras clases base con independencia del número de veces que esta clase se produce en la jerarquía de derivación. Suponer, por ejemplo, que la clase T se deriva de las clases C y D cada una de las cuales se deriva de la clase A. Esto significa que la clase T tiene dos instancias de A en su jerarquía de derivación. C++ permite instancias múltiples de la misma clase base. Sin embargo, si sólo se desea una instancia de la clase A para la clase T, entonces se debe declarar A como una clase base virtual.  Las clases base virtuales proporcionan un método de anular el mecanismo de herencia múltiple, permitiendo especificar una clase que es una clase base compartida.  Una clase derivada puede tener instancias virtuales y no virtuales de la misma clase base. CLASE BASES VIRTUALES
  • 16.  La visibilidad de una propiedad o método se puede definir anteponiendo a su declaración una de las palabras reservadas public, protected o private.  A los miembros de clase declarados como 'public' se puede acceder desde donde sea; a los miembros declarados como 'protected', solo desde la misma clase o medianta clases heredadas.  A los miembros declarados como 'private' únicamente se puede acceder desde la clase que los definió. VISIBILIDAD DE LA HERENCIA EN POO
  • 17. CLASES ABSTRACTAS: Estas clases se caracterizan por tener algunos de sus métodos declarados como abstractos, pero ¿qué es un método abstracto?. Un método abstracto es aquel que está definido, pero no tiene cuerpo, es decir, le declaramos el nombre, los parámetros y el tipo de devolución pero no le declaramos lo que va entre llaves "{}", es más, no le ponemos llaves. Estas clases se utilizan para permitir que otras clases hereden de ella y proporcionar un modelo a seguir. La declaración de una clase y método abstracto es el siguiente: Public abstract class nombreClase{ public abstract tipo nombre(argumentos(si los lleva)); } CLASES ABSTRACTAS EN POO
  • 19. Es una función cuyo comportamiento, al ser declarado "virtual", es determinado por la definición de una función con la misma cabecera en alguna de sus subclases. Este concepto es una parte muy importante del polimorfismo en la POO. El concepto de función virtual soluciona los siguientes problemas:  En POO, cuando una clase derivada hereda de una clase base, un objeto de la clase derivada puede ser referido (o coercionado) tanto como del tipo de la clase base como del tipo de la clase derivada. Si hay funciones de la clase base redefinidas por la clase derivada, aparece un problema cuando un objeto derivado ha sido coercionado como del tipo de la clase base. Cuando un objeto derivado es referido como del tipo de la base, el comportamiento de la llamada a la función deseado es ambiguo.  Distinguir entre virtual y no virtual sirve para resolver este problema. Si la función en cuestión es designada "virtual", se llamará a la función de la clase derivada (si existe). Si no es virtual, se llamará a la función de la clase base. MÉTODOS VIRTUALES EN POO
  • 20.  En principio se hereda todo menos: Constructor y Destructor Aunque no se heredan ni el constructor ni el destructor de la clase base, cuando se crea o se destruye un objeto de la clase derivada se invocan automáticamente los de la clase base. Se usa el constructor por defecto (es decir sin parámetros). CONSTRUCTORES Y DESTRUCTORES CON HERENCIA
  • 21. Gracias por su atención