En esta primera sesión tiene por nombre «Fundamentos de Programación Orientada a Objetos», en donde se verán temas como que es un objeto, una clase así como que es un atributo y métodos.
Fundamentos de Programación Orientada a Objetos
Metodología que define los programas en términos de «clases de objetos», objetos que son entidades que combinan estado (datos), comportamiento (procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto).
Tomas las mejores ideas de la programación estructurada y modular combinándola con nuevos y poderosos conceptos.
Área Donde se Aplica la Tecnología de Objetos
- Lenguajes de programación
- Bases de datos
- Dibujo y Visualización
- Sistemas Operativos
- Interfaz de Usuario
- Metodología de análisis y diseño
- Sistemas de conmutación telefónica
Ventajas de POO
- Uniformidad: la representación de los objetos esta presente tanto en el diseño como en la codificación
- Flexibilidad: Cualquier cambio se ve reflejado en cualquier lugar donde aparecen los datos involucrados.
- Objetivismo: representa el mundo real.
- Reusabilidad: permite utilizar una clase definida previamente en aplicaciones que nos sea conveniente.
- Mantenibilidad: las clases, vistas como módulos independientes son fáciles de mantener.
- Extensibilidad: gracias a la modularidad y herencia pueden ser fácilmente extensibles al crecimiento de la aplicación.
La Máquina Virtual Java – JVM
Es el entorno en el que se ejecutan los programas Java, su misión principal es la de garantizar la portabilidad de las aplicaciones Java. Define esencialmente un ordenador abstracto y especifica las instrucciones (bytecodes) que este ordenador puede ejecutar.
Características de JAVA
- Simple: Java ofrece toda la funcionalidad de un lenguaje potente, elimina las características menos usadas y más confusas
- Orientado a Objetos: Soporta las tres características propias del paradigma de la orientación a objetos: encapsulación, herencia y polimorfismo.
- Distribuido: Java en sí no es distribuido, sino que proporciona las librerías y herramientas para que los programas puedan ser distribuidos.
- Robusto: Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución.
- Seguro: El código Java pasa muchos tests antes de ejecutarse en una máquina.
- Interpretado: El intérprete Java (sistema run-time) puede ejecutar directamente el código objeto.
- Multihilo: Al ser MultiHilo, Java permite muchas actividades simultáneas en un programa.
- Portable: Java construye sus interfaces de usuario a través de un sistema abstracto de ventanas.
- Dinámico: Las librerías nuevas o actualizadas no paralizarán la ejecución de las aplicaciones actuales (siempre que mantengan el API anterior).
- Arquitectura Neutral: el compilador Java compila su código a un fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará.
¿Qué es un Objeto?
Es la representación de una entidad del mundo real o inventado.
Son llamados también “instancias”, es un concepto, una abstracción o una cosa con límites bien definidas y significado para una aplicación. Un objeto es algo que tiene:
- Estado
- Comportamiento
- Identidad
Un Objeto tiene Estado
El estado de un objeto se compone de los valores de los atributos y los enlaces (referencias) que mantiene un objeto en un momento determinado. Los objetos interactúan unos con otros y como consecuencia de esas interacciones cambian de estado (es decir, cambian el valor de sus atributos o sus enlaces con otros objetos).
Un Objeto tiene Comportamiento
- El comportamiento de un objeto es cómo actúa y reacciona un objeto, en función de sus cambios de estado y paso de mensajes.
- El comportamiento de un objeto es modelado por un conjunto de mensajes a los que puede responder (las operaciones que el objeto puede realizar)
Paso de Mensajes
- Es la acción de efectuar una llamada a un método.
- Medio de colaboración entre objetos
Un Objeto tiene Identidad
- Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otro objeto.
- Los objetos son distinguidos por su existencia inherente y NO por sus propiedades descriptivas.
¿Qué son las Clases?
Es un conjunto de objetos que comparten una estructura común y un comportamiento común Una clase es una descripción de un grupo de objetos con propiedades en común (atributos), comportamiento similar (operaciones), la misma manera de relacionarse entre objetos (asociaciones y agregados) y una semántica en común
Para representar una clase se utiliza un rectángulo dividido en tres partes.
- Parte: Se coloca el nombre de la clase.
- Parte: Se colocan los atributos.
- Parte: Se especifican las operaciones de la clase.
La clase Persona contiene atributos y operaciones que caracterizan a cualquier elemento de su tipo. Los valores que contenga cada atributo establecerán la diferencia entre todos los elementos de la misma clase.
La clase Vehículo contiene atributos y operaciones que caracterizan a cualquier elemento de su tipo. Los valores que contenga cada atributo establecerán la diferencia entre todos los elementos de la misma clase.
Principios de la POO
- Abstracción
- Modularidad
- Encapsulamiento
- Herencia
- Polimorfismo
Declaración en JAVA:
- Clases
- Objetos
- Métodos
- Acceso a datos
- Atributos
Clase
Es una plantilla para un objeto. Define la estructura de un objeto y su interfaz funcional, es decir, define los métodos y atributos de un grupo de objetos de características similares.
Atributos
Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables.
Métodos
Los métodos son subrutinas que definen la interfaz de una clase, sus capacidades y comportamiento. Los métodos pueden tener una lista de parámetros que permiten comunicar información entre métodos.
Clase, Atributos y Métodos
Objeto
Un objeto es una instancia o variable de una clase. La declaración de una referencia a objeto se realiza:

Método Constructor
Un constructor es un método que inicia un objeto inmediatamente después de su creación, evitándonos tener que iniciar las variables. Tiene el mismo nombre de la clase a la que pertenece.
Operador new
Permite crear un nuevo objeto invocando al método constructor de la clase, y devuelve una referencia a ese objeto, proporcionando almacenamiento persistente.
Operador punto (.)
Las variables de instancia:
Los métodos contenidos en un objeto:
Modificadores de Acceso
Los modificadores de acceso definen niveles de visibilidad entre miembros (variables y métodos) de una clase y otros objetos.
- public: Especifica que las variables y métodos de una clase podrán ser accedidas por todos los objetos, aunque sean de clases de otros paquetes diferentes al de la clase.
- protected: Especifica que las variables y métodos de una clase podrán ser accedidas, además de los métodos de la misma clase, por los métodos de todas las clases del mismo paquete y por las subclases de esta aunque no se encuentren en el mismo paquete.
- private: Especifica que las variables y métodos de una clase podrán ser accedidas sólo por los métodos de la misma clase.