Download POO en Java Archivo

Document related concepts
no text concepts found
Transcript
PROGRAMACION ORIENTADA A OBJETOS
Edwin Andrés Cubillos Vega
Company
LOGO
Contenido
Introducción
Clases y Objetos
Herencia
Constructores y Destructores
Polimorfismo
Contenido
Introducción
Clases y Objetos
Herencia
Constructores y Destructores
Polimorfismo
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.
Introducción
1.Encapsulación
2.Herencia
3.Polimorfismo
POO
Encapsulación
Encapsular es la capacidad de agrupar
varios atributos y capacidades en una sola
envoltura.
Esconde
interno.
al
usuario
su
funcionamiento
Un buen encapsulamiento permite al
programador enfocarse en como usar las
clases en vez de preocuparse en como
funcionan internamente
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.
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.
Contenido
Introducción
Clases y Objetos
Herencia
Constructores y Destructores
Polimorfismo
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.
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..
Clases y Objetos
 Los miembros de una clase puede
catalogados como públicos o privados
ser
 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.
Clases y Objetos
 Modificadores de Acceso
Clases y Objetos
 Declaración de una Clase en Java
C++
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
Clases y Objetos
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
Clases y Objetos
 Para acceder a los miembros de la clase se utiliza
el operador punto (.) como en C++.


 Ejemplo:
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:
Clases y Objetos
Clases y Objetos
Opción
 Crear
 Crear
 Crear
2:
un nuevo proyecto
una clase Persona
una clase principal para el main “Datos”
Clases y Objetos
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.
Clases y Objetos
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”
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”
Contenido
Introducción
Clases y Objetos
Herencia
Constructores y Destructores
Polimorfismo
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
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)
Herencia
 Ejemplo
 Una clase de objetos se hereda de otra por medio
de la instrucción
 Proyecto: “Herencia1”
 Clase: “herenciaEj1.java
Herencia
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”
Herencia
1. Crear la clase Modem
2. Crear la clase CableModem
Herencia
3. Crear la clase DSLModem
4. Crear la clase ModemTester
Herencia
 Resultado
Contenido
Introducción
Clases y Objetos
Herencia
Constructores y Destructores
Polimorfismo
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
definición de destructores.
no
necesita
la
 El mismo lenguaje se encarga de la eliminación y
liberación de la memoria ocupada por un objeto.
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
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
Contenido
Introducción
Clases y Objetos
Herencia
Constructores y Destructores
Polimorfismo
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
constructores.
es
aplicada
a
métodos
y
 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
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.