Documente Academic
Documente Profesional
Documente Cultură
Objetos
Lucio Marcelo Quispe Ortega
Contenido
● Paradigmas: Dos formas de Programar
○ Programación Estructurada
○ Programación Orientada a Objetos
● Clases y Objetos
● Modularización y Encapsulación
● Herencia
● Polimorfismo
● Abstracción
Contenido
● Paradigmas: Dos formas de Programar
○ Programación Estructurada
○ Programación Orientada a Objetos
● Clases y Objetos
● Modularización y Encapsulación
● Herencia
● Polimorfismo
● Abstracción
Paradigmas: Dos Formas de Programar
Paradigmas de
Programación
Programación Estructurada
Programación Orientada a
(orientada a
Objetos
procedimientos)
Contenido
● Paradigmas: Dos formas de Programar
○ Programación Estructurada
○ Programación Orientada a Objetos
● Clases y Objetos
● Modularización y Encapsulación
● Herencia
● Polimorfismo
● Abstracción
Programación Estructurada
● Dividir el programa en partes más
pequeñas (funciones, procedimientos,
subprogramas, subrutinas)
● Cada una de esas funciones tiene un
propósito
● La información se pasa entre funciones a
través de parámetros.
● Las funciones pueden tener datos locales a
los cuales no se pueden acceder fuera de
su ámbito.
● Utiliza el método descendente y las
funciones se invocan sucesivamente
● Lenguajes de programación: Fortran, Cobol,
Basic, C, Pascal.
Programación Estructurada
Problemas:
Clase
Objetos
Clases y Objetos
● Objeto
○ Tiene propiedades (atributos)
■ Color
■ Capacidad
■ Tracción
■ Altura
■ Largo
○ Tiene un comportamiento
■ Arrancar
■ Frenar
■ Girar
■ Acelerar
Clases y Objetos
● Objeto
○ Accediendo a propiedades de objeto desde código (pseudocódigo)
■ Toyota.color = “Rojo”;
■ Toyota.capacidad = 4;
■ Toyota.tracción = “Delantera”;
■ Toyota.altura = 1000;
■ Toyota.largo = 2400;
○ Accediendo al comportamiento de objeto desde código (pseudocódigo):
■ Toyota.arranca();
■ Toyota.frena();
■ Toyota.gira();
■ Toyota.acelera();
Clases y Objetos
● Método Constructor
○ Es el método que especificará un estado inicial del objeto
○ En Java debe tener el mismo nombre, en Python lleva el nombre “__init__”. De acuerdo a ello puede
variar en otros lenguajes. El método Constructor puede recibir o no parámetros.
package poo;
package poo;
package poo;
public class Empleado {
...
public Empleado(String nombre, double sueldo, int edad) {
this.Nombre = nombre; ...
this.Sueldo = sueldo; Empleado empleado1 = new Empleado(“Juan
this.edad = edad; Pérez”);
} Empleado empleado2 = new Empleado(“Jose
public Empleado(String nombre, double sueldo) { Cors”, 3500);
this.Nombre = nombre; ...
this.Sueldo = sueldo;
this.edad = 0;
}
public Empleado(String nombre) {
this(nombre, 0, 0);
}
}
Modularización y Encapsulación
● Sobrecarga de Métodos
○ Son las declaraciones repetidas de los método pero con distinta cantidad de parámetros o distintos
tipos de parámetros.
...
package poo;
Empleado empleado = new Empleado(“Juan Pérez”,
public class Empleado {
3500);
...
System.out.println(“Liquido Pagable: ” +
public double getLiquidoPagable() {
empleado.getLiquidoPagable());
return this.Sueldo - this.getTotalDescuentos();
}
//O también
public double getLiquidoPagable(double sueldo) {
Empleado empleado = new Empleado(“Juan Pérez”);
return sueldo - this.getTotalDescuentos();
System.out.println(“Liquido Pagable: ” +
}
empleado.getLiquidoPagable(3500));
}
...
Contenido
● Paradigmas: Dos formas de Programar
○ Programación Estructurada
○ Programación Orientada a Objetos
● Clases y Objetos
● Modularización y Encapsulación
● Herencia
● Polimorfismo
● Abstracción
Herencia
● Es la propiedad que permite que
las clases sean creadas a partir
de otras ya existentes,
obteniendo características
(métodos y atributos) similares a
las ya existentes.
● No es nada más que la
reutilización de código.
● Nos permite especializar cada
una de las clases heredadas.
Herencia
public class Taxi extends Vehiculo {
private int NumeroLicencia;
● Una clase Abstracta No puede ser instanciada (no se pueden crear objetos directamente -
new(), solo puede ser heredada.
● Si al menos un método de la clase es abstract, esto obliga a que la clase completa sea definida
abstract, sin embargo la clase puede tener el resto de métodos no abstractos.
● Los métodos abstract no llevan cuerpo (no llevan los caracteres {}).
● La primer subclase concreta que herede de una clase abstract debe implementar todos los
métodos de la superclase.
Especificadores o Modificadores de Acceso