Fundamentos de Programación Orientada a Objetos y Conceptos Clave
Clasificado en Informática
Escrito el en español con un tamaño de 5,48 KB
Programación Orientada a Objetos (POO): Un Paradigma Esencial
La Programación Orientada a Objetos (POO) es un paradigma fundamental para crear programas que sobreviven a los cambios inevitables que acompañan a la obsolescencia de cualquier sistema. Su enfoque permite diseñar software de manera más modular, flexible y reutilizable.
Evolución de los Lenguajes de Programación
La historia de la programación ha visto una constante evolución en los lenguajes, buscando mayor abstracción y facilidad de uso:
Lenguaje Máquina
Es el lenguaje que entiende directamente el hardware del computador. Se maneja en código binario (0s y 1s) y es extremadamente rápido de ejecutar, pero muy difícil de programar para humanos.
Lenguaje Ensamblador
Un lenguaje de bajo nivel y específico a una arquitectura física o virtual. Es utilizado para programar microprocesadores, microcontroladores y otros circuitos integrados. Ofrece más legibilidad que el lenguaje máquina, pero sigue siendo complejo.
Lenguaje de Alto Nivel
Permite la creación de código fuente utilizando instrucciones escritas en un lenguaje casi natural, es decir, entendible por el ser humano. Ejemplos incluyen Python, Java, C++, etc. Facilitan enormemente el desarrollo de software.
Técnicas de Programación
A lo largo del tiempo, han surgido diversas técnicas para organizar y estructurar el código:
- Programación Secuencial o Lineal: Ejecución de instrucciones paso a paso.
- Programación Modular: División del programa en módulos independientes.
- Programación Estructurada: Uso de estructuras de control (secuencia, selección, repetición) para mejorar la claridad.
- Programación Orientada a Objetos: Basada en el concepto de "objetos" que contienen datos y métodos.
- Programación Visual: Utiliza interfaces gráficas para el desarrollo de aplicaciones.
Conceptos Fundamentales de la POO
La POO define los programas en términos de clases de objetos. Los objetos son entidades que combinan tres características esenciales:
- Estado: Representado por los datos y valores que posee el objeto.
- Comportamiento: Definido por los métodos o procedimientos que el objeto puede realizar.
- Identidad: El nombre único del objeto que lo diferencia del resto.
Objetos
Son cualquier entidad del mundo real que se puede imaginar y modelar dentro de un programa (ej., un coche, una persona, un libro).
Clases
Es simplemente un modelo o plantilla que se utiliza para describir uno o más objetos del mismo tipo. Representa un conjunto de objetos del mundo real con atributos y comportamientos similares.
Métodos
Los métodos son las acciones que van a realizar los objetos dentro de una clase. Definen el comportamiento del objeto.
¿Qué Representan los Objetos?
A los objetos se les entregan ciertas características de la vida real, permitiendo modelar el mundo de forma más intuitiva en el software.
¿Qué Definen los Atributos?
Los atributos describen las características comunes de un objeto (ej., color, tamaño, nombre).
Comunicación entre Objetos
Los objetos se comunican entre sí a través de mensajes, invocando métodos de otros objetos para solicitar una acción o información.
Acción al Recibir un Mensaje
Cuando un objeto recibe un mensaje, realiza una acción específica definida por el método invocado.
Tipos de Datos
Los tipos de datos indican los valores que pueden tomar las variables y atributos en un programa (ej., entero, cadena de texto, booleano).
Especificadores de Acceso en Java
En Java, las declaraciones de clase, variables, métodos y constructores pueden tener especificadores o modificadores de acceso. Estos controlan la visibilidad y el uso de los miembros de una clase.
Tipos de Especificadores
Los principales especificadores de acceso son:
public
: Accesible desde cualquier lugar.private
: Accesible solo dentro de la misma clase.protected
: Accesible dentro de la misma clase, clases del mismo paquete y subclases (incluso en otros paquetes).- Ninguno (por defecto/paquete-privado): Accesible solo dentro del mismo paquete.
Función de los Modificadores de Acceso
La modificación del nivel de acceso determina si otras clases pueden usar un campo en particular o invocar un método en particular, promoviendo el encapsulamiento y la seguridad del código.
Especificadores de Acceso para Constructores
Los constructores pueden tener los mismos especificadores de acceso utilizados para variables y métodos, controlando así quién puede crear instancias de una clase.