Repaso sobre la Programación Orientada a Objetos

I have worked as a frontend and backend developer handling technologies such as Django, Ionic, Laravel, MySQL, Spring (Java), Oracle, NodeJS, Angular, VueJS with the goal of developing websites and mobile applications that offer high performance and are interactive.
You can learn more about me by visiting my website: www.stalinmaza.com
#frontend #backend #fullstack #javascript #nodejs #php
Para ejercitar un poco los conceptos relacionados a la Programación Orientada a Objetos, se explicaran algunos conceptos mediante ejemplos puntuales realizados usando el lenguaje PHP.
En la programación orientada a objetos se usan conceptos que buscan representar acciones o cosas de la vida real en forma de objetos, usando conceptos como clases, objetos, métodos, propiedades, estados, herencia, encapsulación y muchas cosas más, que seran explicadas de forma sencilla en las siguientes lineas.
Clase
Es una estructura que define un objeto de la vida real, describiendo sus propiedades y comportamientos. Generalmente una clase se conforma de tres partes fundamentales:
- Nombre: es el nombre de la clase.
- Atributos: representan las propiedades de la clase.
- Métodos: representan el comportamiento u operaciones que tendra la clase. Objeto
Los objetos representan una entidad del mundo real y representa la instancia de una clase.
Un ejemplo de una clase con una estructura definida se asemeja a lo siguiente.
<?php
//nombre de la clase
class Curso {
// definicion de las propiedades de la clase
public $nombre;
public $duracion;
public $costo;
public $moneda;
public $profesor;
public $disponible;
// definir metodos de la clase
public function imprimirInfo(){
return "El Nombre del Curso es: " . $this->nombre . "y quien imparte el curso es: " . $this->profesor . "<br/>";
}
public function validarDisponibilidad(){
if($this->disponible == true){
return "El Curso esta Disponible";
} else {
return "El Curso no está disponible";
}
}
}
//definicion de una instancia de la clase Curso
$curso = new Curso();
//añado propiedades al objeto de la clase Curso
$curso->nombre = "POO en PHP";
$curso->duracion = "3 Secciones";
$curso->costo = 10;
$curso->moneda = "USD";
$curso->profesor = "Yesi Days";
$curso->disponible = true;
//instancia de un objeto de la clase Curso
$javascript = new Curso();
//añado propiedades al objeto de la Clase Curso
$javascript->nombre = "POO en PHP";
$javascript->duracion = "3 Secciones";
$javascript->costo = 10;
$javascript->moneda = "USD";
$javascript->profesor = "Yesi Days";
$javascript->disponible = true;
//imprimo propiedades de los cursos
var_dump($curso);
var_dump($javascript);
//llamo al metodo imprimirInfo del objeto curso y del objeto javascript
echo $curso->imprimirInfo();
echo $javascript->imprimirInfo();
//llamo al metodo validarDisponibilidad del objeto curso y del objeto javascript
echo $curso->validarDisponibilidad();
echo $javascript->validarDisponibilidad();
?>
Herencia
Este concepto se refiere a que una clase puede heredar las propiedades o métodos de otra clase, siendo esto necesario cuando una clase va a compartir propiedades o métodos con otra clase pero siempre teniendo alguna propiedad que lo distinga, caso contrario no tiene razón de ser, el aplicar herencia a dicha clase.
Encapsulamiento
Este concepto es muy importante en lo referente a la seguridad, ya que así se protegen los datos dentro de un sistema, ya que permite la asignación de permisos o el establecimiento de diferentes niveles de acceso.
Generalmente existen los siguientes niveles:
- Público: este nivel permite que cualquiera pueda acceder a los atributos o métodos de una clase.
- Privado: este nivel permite que solo el objeto que pertenece a una clase en especifico, pueda acceder a los métodos o atributos de la misma.
- Protegido: este nivel permite que se acceda a los atributos o métodos de una clase solo sí se esta en el mismo nivel de jerarquía.

