Entiende

Ya!

Programación Orientada a Objetos

(OOP: Object Oriented Programming)

Recomendaciones

  • Fundamentos de la programación

    • Estructuras de control (condicionales y bucles)
    • Funciones
  • Complementa con practica

Noticia de último momento

Descarga el mini-book(pdf)
Enlace en el primer comentario

Orientado a objetos

  • Análisis orientado a objetos (AOO)
  • Diseño orientado a objetos (DOO)
  • Programación orientada a objetos (POO)

Existen varias herramientas que nos permiten cumplir con las etapas de un desarrollo estando 100% orientado a objetos

  • POO es un paradigma de programación
  • Un paradigma de programación es una forma (reglas)  para escribir software.

¿POO?

Objeto físico

Es una cosa tangible que podemos sentir y manipular

Objeto en desarrollo de software

En desarrollo de software es una modelo informático que representa a un objeto real o ficticio.

  • POO es un paradigma de programación
  • Un paradigma de programación es una forma (reglas)  para escribir software.
  • Un objeto es una representación informática de un objeto físico o ficticio.
  • POO
    • Programación: escribir código....
    • Orientado: dirigido a
    • Objetos: modelo informático de un objeto real o ficticio

¿POO?

POO: es escribir código dirigido a modelar objetos

Clase: la fabrica

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)

Clases y objetos

  • Objeto: conjunto de datos con un comportamiento asociado.
  • Propiedades: datos que componen al objeto.
  • Métodos: el comportamiento del objeto.
  • Clase: contenedor de propiedades y métodos para crear un tipo de objeto
  • Instancia: Crear un objeto desde una clase.

Automovil

Clase

color

motor

chasis

acelerar()

frenar()

encender()

apagar()

Los 4 pilares de POO

  • Abtracción
  • Encapsulamiento
  • Herencia
  • Polimorfismo

Desarrollo de sistema para librería

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:

  • autor, título, precio, stock y Id

Funciones:

  • Mostrar información

Posdata: Ningún usuario puede modificar los libros, eso lo dejamos para una etapa posterior del sistema

Atentamente y con amor: doña Gertrudis

¿Cómo comenzamos?

Análisis del sistema de librería

El objeto principal serán libros. Por lo tanto se requiere

  • Modelar un libro con las propiedades mencionadas en los requerimientos
  • No se pueden modificar las propiedades
  • Los objetos libro deberán ser capaces de mostrar su información

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.

Abstracción

el pilar donde comienza la POO.

Abstraer, es eliminar los detalles innecesarios para solo enfocarnos en los aspectos que son relevantes para el contexto (sistema que estamos desarrollando)

  • portada
  • año_publicacion
  • editorial
  • numero_hojas

Libro

autor string

título string

precio float

stock int

id int

verInfo()

Detalles innecesarios

Clase

Abstracción

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

Encapsulamiento

el pilar del ocultamiento

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()

Herencia

el pilar de la reutilización

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

Herencia

Polimorfismo

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()

CONÉCTATE CONMIGO

CarlosYouDevs

youdevs

deve10per_

www.patreon.com/YouDevs

únete a la comuniDevs

Made with Slides.com