(OOP: Object Oriented Programming)
Fundamentos de la programación
Descarga el mini-book(pdf)
Enlace en el primer comentario
Existen varias herramientas que nos permiten cumplir con las etapas de un desarrollo estando 100% orientado a objetos
Es una cosa tangible que podemos sentir y manipular
En desarrollo de software es una modelo informático que representa a un objeto real o ficticio.
POO: es escribir código dirigido a modelar objetos
Un objeto se crea a partiendo de una (Clase). Una clase es como una fabrica para crear un tipo de objeto.
Automovil
Clase
color
motor
chasis
acelerar()
frenar()
encender()
apagar()
Propiedades (características)
Métodos
(comportamiento)
Automovil
Clase
color
motor
chasis
acelerar()
frenar()
encender()
apagar()
Requerimientos del sistema de librería
Desarrollar un sistema en el que pueda registrar libros y consultar su información.
Características de los libros:
Funciones:
Posdata: Ningún usuario puede modificar los libros, eso lo dejamos para una etapa posterior del sistema
Atentamente y con amor: doña Gertrudis
Análisis del sistema de librería
El objeto principal serán libros. Por lo tanto se requiere
Procedimiento: Definir una clase llamada Libro con las propiedades (autor, título, precio, stock y Id) y el método necesario para mostrar información.
Abstraer, es eliminar los detalles innecesarios para solo enfocarnos en los aspectos que son relevantes para el contexto (sistema que estamos desarrollando)
Libro
autor string
título string
precio float
stock int
id int
verInfo()
Detalles innecesarios
Clase
autor = George Orwell
stock = 100
id = 1
libro_1 = nuevo Libro
título = 1984
precio = 249.90
libro_1
Libro
autor string
título string
precio float
stock int
id int
verInfo()
Clase
Es ocultar los detalles que no son relevantes para el exterior.
Agrupar propiedades y métodos de manera que el acceso está restringido desde fuera del paquete.
// Instancia de libro: objeto
libro_1 = nueva instancia Libro(
"autor" = "Geroge O.",
"titulo" = "1984",
"precio" = 249.90,
"stock" = 100,
"id" = 1
);
// intenta modificar una propiedad privada
libro_1->precio = 0.00; // ERROR, No tienes acceso Paps!
// método público
libro_1->verInfo()
/*
Autor: George Orwell
Título: 1984
Precio: $249.90
Stock: 100
Id: 1
*/
autor string
título string
precio float
stock int
id int
verInfo()
Libro
Clase
private autor string
private título string
private precio float
private stock int
private id int
public verInfo()
Es el mecanismo por el cual la POO nos permite reutilizar código sin necesidad de hacer copy-paste relacionando clases de tal forma que una clase hereda propiedades y métodos de otra clase.
Libro
Clase
private autor string
private título string
private precio float
private stock int
private id int
public verInfo()
Comic
Clase Comic Extiende de Libro
private illustradores array
private volumen int
Comic
Clase Extiende de Libro
private illustradores string
private volumen string
autor = Alan Moore
stock = 66
Id = 1
comic_1 = nuevo Comic
título = B: the killing Joke
precio = 150.00
ilustradores = 'Brian.B, 'Roben'
volumen = 1
comic_1
Se refiere a la capacidad de que un mismo método obtenga diferente resultado dependiendo de la subclase en la que se ejecute.
comic_1->verInfo()
/*
Autor: Alan Moore
Título: Batman: The killing Joke
Ilustradores: [ 'Brian Bolland' ]
Vol: 1
Precio: $150.00
Stock: 66
Id: 1
*/
comic_1->verInfo()
/*
Autor: Alan Moore
Título: Batman: The killing Joke
Precio: $150.00
Stock: 66
id: 1
*/
Comic
Clase Extiende de Libro
private illustradores string
private volumen string
public verInfo()
CarlosYouDevs
youdevs
deve10per_
www.patreon.com/YouDevs
únete a la comuniDevs