Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y...

42
Company LOGO PROGRAMACION ORIENTADA A OBJETOS Edwin Andrés Cubillos Vega

Transcript of Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y...

Page 1: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Company

LOGO

PROGRAMACION ORIENTADA A OBJETOS

Edwin Andrés Cubillos Vega

Page 2: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Contenido

Polimorfismo

Constructores y Destructores

Herencia

Clases y Objetos

Introducción

Page 3: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Contenido

Polimorfismo

Constructores y Destructores

Herencia

Clases y Objetos

Introducción

Page 4: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Introducción

Programación Orientada a Objetos

El mundo real esta compuesto por elementos complejos, difícilmente pueden ser modelados por números simples o caracteres.

La esencia de la POO es modelar objetos (cosas o conceptos) en vez de datos.

Page 5: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Introducción

1.Encapsulación

2.Herencia

3.Polimorfismo

POO

Page 6: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Encapsulación

Encapsular es la capacidad de agrupar varios atributos y capacidades en una sola envoltura.

Esconde al usuario su funcionamiento interno.

Un buen encapsulamiento permite al programador enfocarse en como usar las clases en vez de preocuparse en como funcionan internamente

Page 7: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Herencia

La herencia permite generar nuevos tipos, tomando como base alguno ya implementado.

Cuando una clase hereda de otra se dice que es “derivada”, ofreciéndole instantáneamente todas sus cualidades.

Facilita la programación.

Page 8: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Polimorfismo

Polimorfismo se refiere a: el mismo nombre puede tomar muchas formas.

Es la capacidad de otorgar diferentes capacidades a funciones con el mismo nombre.

Simplifican la tarea del desarrollador, al no tener que recordar distintos nombres para comportamientos iguales.

Page 9: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Contenido

Polimorfismo

Constructores y Destructores

Herencia

Clases y Objetos

Introducción

Page 10: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

La base de la encapsulación.

Las clases son simplemente una colección de variables (usualmente de diferentes tipos), combinados con un conjunto de funciones.

Las clases son capaces de encapsular todo tipo de variables, incluso otras clases.

Page 11: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Las clases tienen variables miembro y funciones miembro.

Variables o datos miembro: Son las variables de la clase, ej. ruedas, patas, color de pelo, altura, etc...

Funciones miembro o métodos: Son las acciones que las clases pueden realizar, ej. Maullar, correr, volar, etc..

Page 12: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Los miembros de una clase puede ser catalogados como públicos o privados

Miembros Públicos: Son accesibles desde algún lugar donde el objeto sea visible. Los métodos públicos son usados para acceder y manipular sus variables miembro privadas.

Miembros Privados: Son miembros que sólo pueden ser accesibles desde otros miembros de la misma clase. Son utilizados para esconder información no relevante para el usuario.

Por defecto, los miembros de una clase son declarados como privados.

Page 13: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Modificadores de Acceso

Page 14: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Declaración de una Clase en Java

Al contrario que C++, Java realiza la definición e implementación de la clase en el mismo lugar, en un único fichero .java

Clases y Objetos

C++

Page 15: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Page 16: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Page 17: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Un objeto es una instancia individual de cada clase

La sintaxis para instanciar un objeto es

Esta instanciación de la clase se puede hacer en dos líneas

Page 18: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Para acceder a los miembros de la clase se utiliza el operador punto (.) como en C++.

Ejemplo:

Page 19: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Ejemplo:

Desarrollar una clase que permita cargar el nombre y la edad de una persona, mostrar los datos cargados e imprimir un mensaje si es mayor de edad (edad>=18)

Opción 1

Crear un proyecto en java (Java Project)

Crear una nueva clase y programar todo allí.

La estructura sería:

Page 20: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Page 21: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Opción 2:

Crear un nuevo proyecto

Crear una clase Persona

Crear una clase principal para el main “Datos”

Page 22: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Page 23: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Ejemplo 2

Desarrollar un programa que cargue los lados de un triángulo e implemente los siguientes métodos: inicializar los atributos, imprimir el valor del lado mayor y otro método que muestre si es equilátero o no.

Page 24: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Page 25: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Ejemplo 3

Desarrollar una clase que represente un punto en el plano y tenga los siguientes métodos: cargar los valores de x e y, imprimir en que cuadrante se encuentra dicho punto.

Proyecto: “plano”

Clase: “Punto.java”

Page 26: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Clases y Objetos

Ejemplo 4

Desarrollar una clase que represente un Cuadrado y tenga los siguientes métodos: cargar el valor de su lado, imprimir su perímetro y su superficie.

Proyecto: Cuadro

Clase: “Cuadrado.java”

Page 27: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Contenido

Polimorfismo

Constructores y Destructores

Herencia

Clases y Objetos

Introducción

Page 28: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Herencia

Permite definir clases (subclases) a partir de otra clase más genérica (superclase)

La subclase reúne todas las propiedades de la superclase, además de las suyas propias.

Permite a un objeto heredar los atributos y el comportamiento de otro.

Se utiliza cuando se requieren objetos muy similares a otros ya existentes.

Potencia la reutilización de código, genera código mas fiable y robusto y reduce el costo de mantenimiento

Page 29: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Herencia

En java no se permite la herencia múltiple

Una subclase hereda todos los métodos y atributos de la superclase excepto:

Atributos y métodos privados

Constructores (no se heredan pero si se ejecutan)

Page 30: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Herencia

Ejemplo

Una clase de objetos se hereda de otra por medio de la instrucción

Proyecto: “Herencia1”

Clase: “herenciaEj1.java

Page 31: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Herencia

Page 32: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Herencia

Ejemplo: El servicio de Internet se puede prestar por DSL o por Cable Modem.

Defina dos clases, una para cada uno:

y

Cada objeto debe tener una velocidad que mostrar, utilice una superclase de nombre que la

contenga y sea heredada por y

Cada objeto debe poder conectarse a Internet

Proyecto = “ModemEj”

Clase = “ModemTester.java”

Page 33: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Herencia

1. Crear la clase Modem

2. Crear la clase CableModem

Page 34: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Herencia

3. Crear la clase DSLModem

4. Crear la clase ModemTester

Page 35: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Herencia

Resultado

Page 36: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Contenido

Polimorfismo

Constructores y Destructores

Herencia

Clases y Objetos

Introducción

Page 37: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Constructores y destructores

Los constructores y destructores son métodos especiales de las clases

Se usan para inicializar y liberar la memoria de las clases respectivamente.

A diferencia de C++, Java no necesita la definición de destructores.

El mismo lenguaje se encarga de la eliminación y liberación de la memoria ocupada por un objeto.

Page 38: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Constructores y Destructores

El constructor se llama igual que la clase

No devuelve nada, ni siquiera void.

Pueden existir varias, pero siguiendo las reglas de sobrecarga de funciones.

De todas las que existan, solo se ejecuta una al crear un objeto de la clase.

Generalmente incluye inicialización de variables y objetos, para crear un objeto con dichos valores

Page 39: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Constructores y Destructores

Toda clase por defecto contiene un constructor sin parámetros y vacío

El constructor por defecto se pierde si escribimos cualquier otro constructor

Page 40: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Contenido

Polimorfismo

Constructores y Destructores

Herencia

Clases y Objetos

Introducción

Page 41: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Polimorfismo

Capacidad que tienen los lenguajes orientados a objetos de ofrecer distintas implementaciones para un mismo método

Se puede establecer mediante la sobrecarga.

La sobrecarga es aplicada a métodos y constructores.

De métodos conduce a que un mismo nombre puede representar distintos métodos con distinto tipo y número de parámetros dentro de una clase

Page 42: Edwin Andrés Cubillos Vegaaprendeenlinea.udea.edu.co/lms/investigacion...Constructores y destructores Los constructores y destructores son métodos especiales de las clases Se usan

Polimorfismo

Posibilidad de tener dos o mas métodos con el mismo nombre pero funcionalidad diferente.

Dependiendo de los parámetros usados.

Similar a los constructores.