La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Desarrollo de Software

Presentaciones similares


Presentación del tema: "Desarrollo de Software"— Transcripción de la presentación:

1 Desarrollo de Software
DSY2101

2 Unidad N° 2: arreglos, colecciones y herencia
Compartir la Herencia Experiencia N° 7

3 Introducción La herencia permite que una clase puede heredar sus atributos y métodos a varias clase derivadas, de esta forma podemos realizar procesos entre clases y reutilizar código. La interface contiene métodos abstractos y son los que se implementan en otras clases

4 ¿qué es la herencia?

5 Es crear una clase nueva a partir de una clase existente.
Herencia Es crear una clase nueva a partir de una clase existente. La clase base (súper clase) hereda a la subclase (clase derivada) los atributos y métodos. La subclase también puede crear sus propios atributos y métodos

6 La clase hija pasa a ser clase padre
Herencia La clase hija pasa a ser clase padre

7 Características Herencia
Es uno de los pilares de la Programación Orientada a Objeto Permite la Reutilización del código Utiliza la Extensibilidad entre clase padre e hija extends es la palabra responsable de compartir el código entre clase padre e hija Permite que todas las clases estén clasificadas en una jerarquía estricta. Es transitiva, dado que hereda los atributos y métodos de varios niveles en la jerarquía Se ahorra código y tiempo Los objetos pueden ser construidos a partir de otros similares. Toda clase pueden servir como clase base para crear otras

8 Tipos de Herencia Herencia Simple
Una clase sólo puede tener un clase padre Lenguajes: Java, C# Herencia Múltiple Una clase puede tener más de una clase padre Lenguajes: C#

9 Representación de clases
Herencia Simple Java sólo soporta que cada clase tenga una clase base e incorpore a otra en su declaración. La palabra reservada extend, indica a la clase hija cual va a ser su clase padre. Representación de clases Declaración - Código

10 Herencia Simple La clase que están en la parte inferior (clase hija) en la jerarquía hereda de la clase que está en la parte superior. Esto facilita extender la funcionalidad de una clase.

11 Estructura de la clase Padre
Herencia Simple Estructura de la clase Padre public class Clase_Padre { //cuerpo de la clase_Padre }

12 Estructura de la subclase
Herencia Simple Estructura de la subclase public class Clase_Hija extends Clase_Padre { //cuerpo de la subclase }

13 Ejemplo de Estructura de clases
Herencia Simple Ejemplo de Estructura de clases Public class Animal { //cuerpo de clase base } public class Pajaro extends Animal //cuerpo de la subclase public class Perro extends Animal

14 Herencia Ejemplo código Ingresar al software Netbeans y crear un nuevo proyecto con las siguientes clases

15 Herencia Código de clase padre Herencia Se declaran atributos
Se declaran método que muestra la información del triángulo

16 Herencia Se declara el atributo Código de clase hija Triángulo
Se declara método que calcula área del triángulo y retorna resultado Se declara método que muestra la información del tipo de triángulo

17 Código de clase Principal
Herencia Código de clase Principal Se declaran y crean los objetos Se asignan valores a los atributos Se realizan las llamadas a los métodos, para entregar la información solicitada

18 Herencia Resultado: Ejecutar la clase principal

19 analogía

20 Analogía Nuestra ciudad en la actualidad cuenta con variados medios de transporte público, los que facilitan el traslado de un lugar a otro, entre ellos se considera el auto y la bicicleta. Ambos vehículos poseen características comunes, como marca, modelo, entre otras, sin embargo una de las diferencias es la capacidad de personas que puede trasladar. Crear diagrama de clases para el caso mencionado. Aplicar el concepto de herencia compartir atributos y métodos.

21 Características: auto
Solución Propuesta Características: auto

22 Características: Bicicleta
Solución Propuesta Características: Bicicleta

23 Solución Propuesta Clase padre Clases Hijas

24 Atributos métodos Solución Propuesta Clase Vehículo Clase Auto
Clase Bicicleta

25 Atributos Solución Propuesta VEHICULO Código Propietario Marca Color
Programa los métodos VEHICULO Código Propietario Marca Color mostrarDatos(): Mostrar los datos de la bicicleta datosAuto(): Mostrar marca, cilindrada y kilometraje del auto. AUTO N° Motor Cilindrada Kilometraje BICICLETA Aro Tipo Pedal N° Rayos

26 Trabajando con la herencia

27 Constructores Cada clase cuenta con sus propios constructores.
La superclase no conoce a los elementos de la subclase y por ende no tiene acceso a ellos, en tanto una subclase si puede tener acceso al constructor de la superclase.

28 Características Constructores
El nombre del constructor debe siempre coincidir con el nombre de la clase. El constructor no debe tener tipo de retorno El constructor por defecto es SIEMPRE un constructor sin argumentos Cada constructor tiene en su primera sentencia, una llamada a un constructor sobrecargado “this()” o una llamada a su constructor de la superclase “super()”

29 super.atributo; super.método(); Instrucción Súper
Una subclase para llamar a un constructor que está definido en la clase padre, utiliza la instrucción Super super(lista-parámetros); Por lo tanto, para acceder a sus métodos o atributos, sería de la siguiente forma super.atributo; super.método();

30 Instrucción Súper La lista-parámetros, se refiere a cualquier parámetro que el constructor de la superclase necesita. super() debe ser siempre la primera instrucción que se ejecute dentro de un constructor de subclase

31 Instanciar objetos Al crear un objeto en la subclase, se llaman a los correspondientes constructores comenzando desde la clase padre hasta el descendiente actual, es decir, siguiendo el orden de derivación:

32 Constructores en Super Clase y Sub Clase
En la superclase Sin parámetro Con parámetro En la subclase Sin parámetro Con parámetro

33 Ejemplo

34 Ejemplo Se inicia ejecución del programa
Crea objeto Alumno con parámetros Clase Alumno, se declaran los atributos propios de la clase Clase constructor e invoca al constructor de la clase Padre Persona, enviando los parámetros

35 Ejemplo Se declaran los atributos comunes al programa
Se declara Constructor sin parámetros Se declara Constructor con parámetros

36 Sobreescritura Para sobreescribir un método se debe utilizar el mismo:
Nombre del método en la subclase Tipo de retorno Listado de argumentos de llamada En tanto, en el cuerpo de ese método que se encuentra en la subclase debe proponer un nuevo código

37 De protected pasa a public
Sobreescritura En ocasiones al heredar el comportamiento de métodos de la clase Padre, no siempre es lo que se requiere, por tanto el método de la subclase se sobreescribe Reglas Cuando una subclase se sobre escribe, debe mantener el mismo formato de la superclase El método sobre escrito puede tener un modificador menos restrictivo que el de la superclase De protected pasa a public

38 Ejemplo Se crea un proyecto con las clases descritas

39 Programando las clases
Se crea objeto hija relacionada a clase Hija Se invoca el método mover que se encuentra en la clase Hija

40 Clase Hija se extiende a clase Padre
Se crea atributo mama de tipo String Se crea método mover Se invoca a método mover de la clase Padre

41 Clase padre y se declaran los atributos comunes
Se crea método mover en clase Padre Contiene un mensaje

42 Sobrecarga Es la creación de varios métodos con el mismo nombre pero con diferentes parámetros. En base a estos parámetros se puede definir que método se ejecuta.  Se debe considerar la sobrecarga de constructores: Cuando en una clase existen constructores múltiples, se dice que hay sobrecarga de constructores.

43 Sobrecarga Reglas Los métodos sobrecargados deben cambiar la lista de parámetros. Pueden cambiar el tipo de retorno. Un método puede ser sobrecargado en la misma clase o en una subclase Pueden cambiar el modificador de acceso.

44 Ejemplo Trabajando con Herencia
Se tiene el siguiente diagrama de clases: La clase Padre Operación con cuatro atributos y un método comunes, los que serán heredados a las clases hijas (Suma, Resta, Multiplicación y División)

45 Comencemos a programar en Netbeans y Eclipse
Herencia Comencemos a programar en Netbeans y Eclipse Creamos la clase operación que es la clase Padre Esta clase contendrá todos los atributos y métodos comunes entre sus clases hijas Los métodos Get, Set y Constructores

46 Importante Para crear código de los métodos constructores, get y set, sólo debe presionar botón derecho del mouse y seleccionar la opción Insert Code (Netbeans) Aparecerá el siguiente recuadro Aplique nuevamente para los constructores

47 Herencia – Clase Operacion

48 Herencia – Clase Operacion
Chequeando Código de clase Operacion Declaración de atributos comunes Declaración de Constructor

49 Herencia – Clase Operacion
Métodos GET y SET de cada atributo Métodos que muestra resultado de la operación matemática

50 Herencia – Clase Sumar

51 Herencia – Clase Sumar Chequeando Código de clase Sumar
La clase Sumar se extiende a la clase Padre Se declara atributo suma, que guardará el resultado de la sumatoria

52 Herencia – Clase Sumar Constructor Sumar con parámetros
Super: Invoca constructor del padre y envía parámetros con valores. Siempre en la primera línea de código This.suma envía sumatoria de n1 y n2 Envía suma al método setRes

53 Las clases Restar, Multiplicar y Dividir, se programan de la misma forma que la clase Sumar
Inténtalo

54 Herencia – Clase main

55 Herencia – Clase main Chequeando Código de clase main
Declaración de atributos y se asignan valores Se crea objeto para enviar parámetros al constructor de la clase hija Restar Luego se invoca el método mostrarResultado

56 Clases y Métodos Abstractos Clases y Métodos finales

57 Clases y Métodos Abstractos y Finales
Clase abstracta Una clase es abstracta cuando se establece que se incluirá al menos un método sin su implementación, es decir un método abstracto sintaxis

58 Clases y Métodos Abstractos y Finales
Clase abstracta Una clase es abstracta cuando se quiere obligar a crear subclases de ella, sin que sea necesario que tenga métodos abstractos

59 Clases y Métodos Abstractos y Finales
Características Puede contener o no un método abstracto Puede contener métodos no-abstractos Una clase abstracta no se puede instanciar pero si se puede heredar y las clases hijas serán las encargadas de agregar la funcionalidad a los métodos abstractos. De no ser a sí, las clases hijas deben ser también abstractas.

60 Clases y Métodos Abstractos y Finales
ejemplo

61 Clases y Métodos Abstractos y Finales
Método abstracto Es un método declarado pero no implementado, es decir, sólo se escribe su nombre, parámetros y tipo devuelto pero no su código. Sintaxis [modificador] abstract tipoDevuelto nombreMetodo([parámetros]); Ejemplo No considera: llaves { } Punto y coma ; al final de la declaración. public abstract void nombre_metodo();

62 Clases y Métodos Abstractos y Finales
Características Un método se declara abstracto, dado que no se conoce su implementación en esa clase. Al incluir el método abstracto en la clase base se obliga a que todas las clases hijas lo sobrescriban con el mismo formato utilizado en la declaración. Si una clase contiene un método abstracto se convierte en clase abstracta y debe ser declarada como tal.

63 Clases y Métodos Abstractos y Finales
La palabra final corresponde a constante, cuando se trata de atributos, es decir que no se modifica Clase final El uso de final en una clase, implica que esa clase no puede tener clases hijas, es decir no se utiliza la herencia. Sintaxis public final class nombre_clase Ejemplo

64 Clases y Métodos Abstractos y Finales
método final El uso de final en un método, significa que ese método no podrá ser sobrescrito por una clase hija Sintaxis final <modificador de acceso> tipo_dato_devuelto nombre_metodo(parámetros) Ejemplo

65 analogía

66 Analogía Hoy en día existen diversos tipos de transporte, entre ellos aéreo, terrestre y marítimo, por tanto las personas que deseen viajar o trasladarse de un lugar a otro tienen la opción de elegir. Para realizar la selección de un medio de trasporte es relevante conocer las características que ellos presentan. Se pide: Seleccione el medio de transporte que vaya acorde al costo de viaje que usted puede cancelar y características de comodidad y tiempo que involucra el traslado. Sobreescriba el método obtener número de pasajeros es la clase bicicleta considerando que tiene un asiento. Sobrecargar el método obtener potencia en la clase avión incrementando a la potencia un valor que viene por parámetro. Desde una clase que contenga el método main crear objetos de la jerarquía de clases

67 Solución Propuesta

68 ¿Cómo resultará el código de cada clase?
Solución Propuesta ¿Cómo resultará el código de cada clase?

69 Utilizando interface

70 Definición Finalidad Sintaxis
interface Definición Es una colección de métodos abstractos, es decir no poseen implementación y de valores tipo constantes Finalidad Define el formato que deben tener ciertos métodos y que se implementarán en las otras clases Sintaxis

71 Representación gráfica
interface ejemplo Métodos Abstractos Representación gráfica Código

72 características interface
1. La interface se representa con un rectángulo, dónde debe ir el nombre “Interface” o con una línea con un círculo en el extremo y el nombre de la interface 2. Una interface puede participar en las relaciones de: Generalización Asociación Dependencia

73 características interface
3. Cuando se requiere desde otra clase, ésta debe utilizar la palabra reservada implements 4. Todos los métodos declarados son públicos y abstractos 5. Sólo pueden contener métodos abstractos (sin código) y constantes

74 ejemplo interface Nombre Interface Nombre Clase que llama a interface
Método que se implementa

75 analogía

76 Analogía Las familias chilenas generalmente asisten al supermercado para abastecerse de diversos productos una vez al mes, entre los productos se consideran verduras, frutas, carnes blancas y rojas, útiles de aseo, lácteos, abarrotes. Al asistir a estos supermercados acceden a los diferentes descuentos, por lo que la cuenta final a pagar es menor a lo considerado. Considere las siguientes ofertas por kilo: Carnes, 7% para los días lunes Frutas, 5% para los días miércoles Se pide: Calcule el monto que se cancelará al comprar 3 kilos de carne y 5 kilos de frutas.

77 De compras en el supermercado Seleccionar Productos
Posible Solución De compras en el supermercado Seleccionar Productos Considerar ofertas

78 Diagrama de Clases Posible Solución ¿qué comprar? ¿Cuánto comprar?
¿cuánto cancelar?

79 Conclusión Compartir atributos y métodos comunes entre clases, permite reutilizar el código de programación y evitar la duplicidad de información, entregando resultados fidedignos solicitados por la organización

80 Bibliografía

81 Glosario Polimorfismo: Permite programar objetos con características comunes y que comparten la misma superclase Clase final: Implica que esa clase no puede tener clases hijas. Método Final: significa que ese método no podrá ser sobrescrito por una clase hija Clase Abstracta: Es una clase que no se puede instanciar y se usa únicamente para definir subclases. Método Abstracto: Método declarado pero no implementado Extends: Se utiliza para heredar atributos y métodos de otra clase

82 Glosario Implements: Implementa las interfaces
Super: Palabra reservada que permite invocar un método del padre This: Hace referencia a los miembros de la propia clase en el objeto actual Interface: Contiene métodos abstractos y constantes

83 Desarrollo de Software
DSY2101


Descargar ppt "Desarrollo de Software"

Presentaciones similares


Anuncios Google