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.