0% encontró este documento útil (0 votos)
153 vistas

Programacion Orientada A Objetos Poo c4774196 CFDB 412e Bae5 210a97d78f8b

Este documento explica los conceptos básicos de la programación orientada a objetos. Introduce las características clave como encapsulamiento, herencia, polimorfismo y cómo resuelven los problemas de la programación estructurada como código largo y difícil de mantener. También cubre los conceptos de clases, objetos, diagramas UML y lenguajes orientados a objetos como Java y Python.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
153 vistas

Programacion Orientada A Objetos Poo c4774196 CFDB 412e Bae5 210a97d78f8b

Este documento explica los conceptos básicos de la programación orientada a objetos. Introduce las características clave como encapsulamiento, herencia, polimorfismo y cómo resuelven los problemas de la programación estructurada como código largo y difícil de mantener. También cubre los conceptos de clases, objetos, diagramas UML y lenguajes orientados a objetos como Java y Python.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 133

@anncode

Developer
Teacher
Syllabus Planner

Education Team
Java Android Firebase
¿Por qué aprender
Programación Orientada a
Objetos?
Programar más rápido
Programar más rápido

Dejar de ser Programador Jr.


*Reclutadores
Encapsulamiento

Abstracción

Herencia

Polimorfismo
Programar más rápido

Dejar de ser Programador Jr.


*Reclutadores

Dejar de Copiar y Pegar Código


Ser un Programador Sr.
y conseguir un mejor salario
¿Qué haremos?
Problemas

- Observación
- Entendimiento
- Lectura
Análisis de problemas

- Diagramas
Diagramas

- Lenguajes de
Programación
¿Qué resuelve?
Programación
Orientada a Objetos
Programación
Estructurada
Programación Estructurada

Programación
Orientada a
Objetos
Código muy largo

Programación
Estructurada
Código muy largo

Si algo falla, todo


se rompe

Programación
Estructurada
Código muy largo

Si algo falla, todo


se rompe

Difícil de mantener
Programación
Estructurada
if () {} else {}
Programación
Orientada a Objetos
Programación
Orientada a Objetos
POO
Orientación a
Objetos
Orientación a Objetos

Surge a partir de los problemas que


tenemos y necesitamos plasmar en
código
Orientación a Objetos

Observar los problemas en


forma de objetos
Paradigma
Programación Orientada
a Objetos
Paradigma
+ Teoría que suministra la base y
modelo para resolver
problemas
Paradigma de
Programación
Orientada a Objetos
+
Clases

Propiedades

Métodos

Objetos
Paradigma de
Programación
Orientada a Objetos
+

+
Encapsulamiento

Abstracción

Herencia

Polimorfismo
Lenguajes
Orientados a Objetos
- Java
- PHP
- Python
- JavaScript
- C#
- Ruby
- Kotlin
- Java
- PHP
- Python
- JavaScript
- C#
- Ruby
- Kotlin
- Orientado a Objetos
naturalmente
- Android
- Server Side

.java
- Lenguaje interpretado
- Pensado para la Web

.php
- Diseñado para ser fácil de usar
- Mútiples usos: Web, Server
Side, Análisis de Datos,
Machine Learning, etc.

.py
- Lenguaje interpretado
- Orientado a Objetos pero
basado en prototipos
- Pensado para la Web

.js
Entorno de
Desarrollo
- Visual Studio Code
Diagramas de
Modelado
OMT UML
Object Modeling
Techniques

+ Metodología para el análisis


orientado a objetos
Unified Modeling Language
Lenguaje de Modelado Unificado
Unified Modeling Language

+ Clases
+ Casos de Uso
+ Objetos
+ Actividades
+ Iteración
+ Estados
+ Implementación
OMT UML
1991 1997
OMT UML
1991 1997
Objetos
- Cuando tengamos un problema lo
primero que debemos hacer es
identificar Objetos
Objetos son
aquellos que tienen
propiedades y
comportamientos
- Pueden ser Físicos o Conceptuales
User Session
Propiedades
también pueden
llamarse atributos
serán sustantivos
Propiedades
también pueden
llamarse atributos
serán sustantivos
Comportamientos
serán todas las
operaciones del objeto,
suelen ser verbos o
sustantivo y verbo
Comportamientos
serán todas las
operaciones del objeto,
suelen ser verbos o
sustantivo y verbo
+ nombre
+ color
+ raza
+ altura
Comportamientos
+ nombre + ladrar
+ color + comer
+ raza + dormir
+ altura + correr

Propiedades
Comportamientos
+ id + serAdoptado()
+ nombre
+ color
+ raza
+ altura
Propiedades
+ id: 001
+ nombre: Franky
+ color: Café
+ raza: French Poodle
+ Altura: 40cm
Clase
- Es el modelo sobre el cual se
construirá nuestro objeto
- Las clases me permitirán generar
más objetos
Analizar Objetos
para crear Clases
Abstracción
Clases son los
modelos sobre los
cuales construiremos
Objetos
Modularidad
Diseño Modular
Estructurada Modular
Orientado a Objetos
+ Reutilizar
+ Evitar colapsos
+ Mantenible
+ Legibilidad
+ Resolución rápida de
problemas

Modular
Orientado a Objetos
Clase
- Modularidad
- Divide el programa en diferentes partes
o módulos / clases
- Separar las clases en archivos
Clases
UML

Nombre Clase Identidad


Atributo 1
Atributo 2
Atributo 3 Estado
Atributo n
Operación 1
Operación 2
Operación 3 Comportamiento
Operación n
Person

name

walk ()
Java Python

class Person { } class Person:

JavaScript PHP

function Person() { } class Person { }


Java Python

class Person { class Person:


String name = “”; name = “”;
void walk() { } def walk():
}

JavaScript PHP
Person.prototype.walk = function (){
class Person {
} $name = “”;
function walk() { }
}
- Promueve la reducción de duplicación
en programación

- Toda pieza de información nunca


debería ser duplicada debido a que
la duplicación incrementa la
dificultad en los cambios y evolución
Reutilización
Herencia
Herencia
crearemos nuevas
clases a partir de otras
- Se establece una
relación padre e hijo
Superclase

Subclase
Objeto
Java Python

Person person = new Person(); persona = Person()

JavaScript PHP

var person = new Person(); $person = new Person();


Java Python

Person person = new Person(); person = Person()

JavaScript PHP

var person = new Person(); $person = new Person();


- Dar un estado inicial al objeto
- Tiene el mismo nombre de la clase
- Son los parámetros mínimos que
necesita el objeto para que pueda
vivir
Java Python

public Person(String name){ def __init__(self, name):


this.name = name; self.name = name
}

JavaScript PHP

function Person(name) { public function __construct($name){


this.name = name $this->name = name;
} }
Java Python

Person person = new person = Person(“Ann”)


Person(“Ann”);

JavaScript PHP

var person = new $person = new Person(“Ann”);


Person(“Ann”);
Herencia
Java Python

class Student extends Person class Student(Person):

JavaScript PHP

student.prototype = new Person(); class Student extends Person


Encapsulamiento
- Para que un dato permanezca
inviolable, inalterable, se le
asigna un modificador de acceso
public
protected
default
private
public Todas las clases

Clases, Paquetes y Subclases

protected Clases y Paquetes

Clases

default
private
Getters y Setters
Polimorfismo
- Muchas formas
- Construir métodos con el mismo
nombre pero con
comportamiento diferente

También podría gustarte