Conceptos Fundamentales Poo
Conceptos Fundamentales Poo
Conceptos Fundamentales Poo
ARBOLEDA
Programación
Nivel Integrador
PREPARACIÓN SEMANA 1
¿QUÉ ES PROGRAMACIÓN ORIENTADA A OBJETOS?
La Programación Orientada a Objetos (POO) es un paradigma de programación que se basa en la
organización de código alrededor de "objetos", que son instancias de clases. Una clase define las
propiedades y comportamientos comunes a un conjunto de objetos, mientras que los objetos son
instancias específicas de esas clases. En la POO, los objetos interactúan entre sí a través de mensajes,
lo que facilita la modularidad y el diseño estructurado del código.
❖ Bondades e importancia de POO en el desarrollo de software
• Reutilización del Código:
▪ La POO fomenta la creación de código modular y reutilizable a través de la herencia y la
encapsulación.
▪ Permite la construcción de bibliotecas de clases que pueden ser utilizadas en diferentes
partes de una aplicación o en proyectos futuros.
• Diseño Estructurado:
▪ Facilita la organización del código de manera estructurada y fácil de entender.
▪ La separación de responsabilidades en clases mejora la mantenibilidad y la escalabilidad
del software.
BONDADES E IMPORTANCIA DE POO EN EL DESARROLLO DE
SOFTWARE
❖ Bondades e importancia de POO en el desarrollo de software
• Modelado del Mundo Real:
▪ Permite modelar entidades del mundo real como objetos, lo que facilita la
representación de conceptos complejos en el código.
▪ Esto mejora la comprensión y la colaboración entre los miembros del equipo de
desarrollo.
• Facilita el Desarrollo Colaborativo:
▪ La POO proporciona un marco para la colaboración efectiva entre equipos de desarrollo.
▪ Cada miembro del equipo puede trabajar en módulos específicos (clases) sin afectar el
funcionamiento general de la aplicación.
• Adaptabilidad y Mantenimiento:
▪ El código basado en POO es más fácil de adaptar a cambios en los requisitos y de
mantener a lo largo del tiempo.
▪ Las modificaciones y actualizaciones pueden realizarse en clases específicas sin afectar el
resto del sistema.
DEFINICIÓN DE CLASES Y OBJETOS EN JAVA
En Java, una clase es un plano o plantilla que define la estructura y el comportamiento de los objetos. Se define
mediante la palabra clave class, seguida del nombre de la clase. Una clase puede contener variables (atributos) y
métodos que describen las propiedades y acciones de los objetos que se crearán a partir de ella.
Un objeto es una instancia específica de una clase. Se crea a partir de la clase utilizando la palabra clave new.
Podemos decir que un objeto es como una copia concreta de esa plantilla(clase). Los objetos tienen un estado
definido por sus atributos y un comportamiento definido por sus métodos.
Por ejemplo supongamos que queremos modelar un simple sistema de gestión de estudiantes. Creamos una
clase llamada Estudiante que tiene atributos como nombre, edad y métodos como establecerEdad y
obtenerEdad.
Los atributos son variables que representan las características o propiedades de un objeto. En nuestro ejemplo
de la clase Estudiante, los atributos podrían ser nombre y edad. Estos atributos definen el estado de un objeto.
Cada instancia (objeto) de la clase Estudiante tiene sus propios valores específicos para nombre y edad.
Los métodos son funciones que representan el comportamiento de un objeto. Los métodos permiten que los
objetos realicen acciones y proporcionen funcionalidad.
DEFINICIÓN DE CLASES Y OBJETOS EN JAVA
Código de Ejemplo
DEFINICIÓN DE CLASES Y OBJETOS EN JAVA
Y en otro archivo o en el mismo podemos crear instancias de la clase Estudiante en el método main
de una clase principal
Código de Ejemplo
DEFINICIÓN DE CLASES Y OBJETOS EN JAVA
• El método establecerEdad establece el valor del atributo edad para un estudiante.
• El método obtenerEdad devuelve el valor actual de la edad para un estudiante.
Cuando creamos instancias de la clase Estudiante, podemos llamar a estos métodos en cada objeto
para interactuar con sus atributos
Código de Ejemplo
HERENCIA
La herencia es uno de los conceptos clave de la programación orientada a objetos (POO). Permite la
creación de nuevas clases basadas en clases existentes, heredando sus atributos y métodos. En otras
palabras, una clase derivada (o subclase) puede aprovechar la estructura y funcionalidad de una clase
base (o superclase). La herencia establece una relación "es un" entre las clases.
En Java, se utiliza la palabra clave extends para indicar que una clase hereda de otra. Los miembros de
la clase base (atributos y métodos) están disponibles en la clase derivada, y esta última puede agregar
nuevos miembros o modificar los existentes.
HERENCIA
❖ Importancia de la Herencia:
• Reutilización del Código: La herencia permite reutilizar el código de una clase base en una
clase derivada, evitando la duplicación de código y fomentando la eficiencia en el desarrollo.
• Estructuración del Código:
▪ Facilita la organización del código al agrupar conceptos similares.
▪ Proporciona una jerarquía lógica que mejora la comprensión del código.
• Facilita las Actualizaciones:
▪ Cambios en la clase base se reflejan automáticamente en las clases derivadas.
▪ Mejora la mantenibilidad del código.
• Polimorfismo:
▪ Permite tratar objetos de la clase derivada como objetos de la clase base.
▪ Facilita el uso de polimorfismo y la flexibilidad en la programación.
HERENCIA
Ejemplo
Supongamos que queremos modelar vehículos. Creamos una clase base llamada Vehiculo que tiene
atributos generales como marca y modelo, y un método para mostrar información básica. Luego,
creamos dos clases derivadas (Automovil y Motocicleta) que heredan de Vehiculo y añaden atributos
y métodos específicos.
HERENCIA
Código de Ejemplo
HERENCIA
En este ejemplo, Automóvil y Motocicleta heredan de la clase Vehiculo. Ahora, podemos crear
instancias de estas clases y acceder tanto a los atributos y métodos de la clase base como a los
específicos de cada clase derivada.
HERENCIA
Código de Ejemplo
ENCAPSULAMIENTO
El encapsulamiento es uno de los principios fundamentales de la programación orientada a objetos
(POO) que se refiere a la ocultación de los detalles internos de una clase y la restricción del acceso
directo a sus atributos y métodos. En Java, se logra utilizando modificadores de acceso como public,
private, y protected para controlar la visibilidad de los miembros de una clase.
Código de Ejemplo
ENCAPSULAMIENTO
En este ejemplo:
• Los atributos titular y saldo están marcados como private, lo que significa que solo pueden
ser accedidos directamente dentro de la misma clase.
• Se proporcionan métodos públicos (obtenerSaldo, depositar, retirar) para interactuar con
estos atributos de manera controlada.
Código de Ejemplo
¿Preguntas?