Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un...

13
2 Java Avanzado Facultad de Ingeniería. Escuela de computación.

Transcript of Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un...

Page 1: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

2

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Page 2: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado. Guía 5

3

Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas de laboratorios, haciendo uso de este antes, durante y después de la práctica, de tal forma que ofrece un método facilitador en su proceso de enseñanza/aprendizaje durante esta asignatura. En el desarrollo de esta asignatura se ha designado realizar las prácticas en 16 sesiones semanales de laboratorios, los que incluyen 11 prácticas, dos parciales y un proyecto final durante los cuales, el estudiante aplicará los conceptos y las técnicas fundamentalmente necesarias para el desarrollo de aplicaciones y soluciones utilizando Java como lenguaje de programación. Todas las guías de laboratorio están estructuradas de la siguiente forma: - Objetivos - Materiales y equipos - Introducción teórica - Procedimiento - Bibliografía - Hoja de evaluación( En caso de que la actividad sea evaluada ) La asignatura Java avanzado ,está dividida en ocho unidades durante el ciclo.

Introducción  

Page 3: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado, Guía 5

4

Pág

Contenido ---------------------------------------------------------------------------------------- 5

Objetivos ----------------------------------------------------------------------------------------- 5

Materiales y equipos --------------------------------------------------------------------------- 5

Introducción teórica --------------------------------------------------------------------------- 5

Procedimiento ----------------------------------------------------------------------------------- 9

Investigación ------------------------------------------------------------------------------------ 14

Bibliografía --------------------------------------------------------------------------------------- 14

Facultad: Ingeniería. Escuela: Computación. Asignatura: Java Avanzado

Tabla de Contenido

Guía 5. Orientación a Objetos.

Page 4: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado. Guía 5

5

Tema: Orientación a Objetos.

En esta guía se introducirá al desarrollo de aplicaciones básicas en Java donde se utilice clases definidas por el usuario. Así mismo se usaran los conceptos de herencia, polimorfismo, enlace dinámico y funciones final. a) Aprender crear clases y declarar objetos definidas por el usuario. b) Definir métodos y atributos miembros de clases. c) Definir funciones constructoras de una clase. d) Aprender a utilizar el concepto de herencia entre clases en Java. e) Comprender el funcionamiento y ventajas del polimorfismo.

a) Netbeans b) JDKJava

Clases La característica mas importante de una clase es que define un nuevo tipo de dato. Una vez definido este nuevo tipo de datos se puede utilizar para crear objetos de ese mismo tipo o clase. La sintaxis general para la definición de una clase es la siguiente: class identificador_clase{ private: // variables y funciones miembros privadas protected: // variables y funciones miembros protegidas public: // variables y funciones miembros publicas } Los especificadores de acceso para variables o métodos miembros de una clase pueden ser los siguientes: public variable 0 método miembro puede ser accedido desde cualquier por cualquier código del programa.

Objetivo Específico

Materiales y Equipo

Introducción Teórica

Contenidos

Page 5: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado, Guía 5

6

protected Se aplica solo solamente en el caso de que se utilice el concepto de herencia entre clases. private variable 0 método miembro solo puede ser accedido desde otros miembros de la misma clase. Atributos Las variables que se declaran en el cuerpo de un método específico se conocen como variables locales, y sólo se pueden utilizar en ese método. Cuando termina ese método, se pierden los valores de sus variables locales. Un objeto tiene atributos que lleva consigo cuando se utiliza en un programa. Dichos atributos existen antes de que un objeto llame a un método, y después de que el método completa su ejecución. Por lo general, una clase consiste en uno o más métodos que manipulan los atributos pertenecientes a un objeto específico de la clase. Los atributos se representan como variables en la declaración de la clase. Dichas variables se llaman campos o atributos, y se declaran dentro de la declaración de una clase, pero fuera de los cuerpos de las declaraciones de los métodos de la clase. Cuando cada objeto de una clase mantiene su propia copia de un atributo, el campo que representa a ese atributo se conoce también como variable de instancia; cada objeto (instancia) de la clase tiene una instancia separada de la variable en memoria. Atributos de instancia Las variables de instancia son las declaradas por defecto, con un especificador de acceso y un tipo, estas son únicas para cada instancia de la clase class identificador_clase{ int atributo1; String atributo2; … } Constantes de clases Las constantes son declaradas con la palabra reservada final, de igual forma que se practico en guías anteriores, estas constantes no cambian su valor en todas las instancias de la clase. class identificador_clase{ final int atributo1; final String atributo2; … }

Page 6: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado. Guía 5

7

Atributos de clases Este tipo de atributo son globales a una clase y su valor es global a todas las instancias de esa clase. Se puede entender estos atributos como mas globales que los atributos de instancia. Los atributos de clase son útiles en la comunicación entre diferentes instancias de la misma clase o para dar seguimiento a estados globales dentro de un grupo de objetos. Este tipo de atributo se declara utilizando la palabra reservada static. class identificador_clase{ static int atributo1; static String atributo2; … } Métodos Los métodos (también conocidos como funciones o procedimientos en otros lenguajes) permiten dividir un programa en módulos, por medio de la separación de sus tareas en unidades autónomas. Estos métodos se les conoce algunas veces como métodos declarados por el programador. Las instrucciones en los cuerpos de los métodos se escriben sólo una vez, y se reutilizan tal vez desde varias ubicaciones en un programa; además, están ocultas de otros métodos. Toda clase proporciona métodos que realizan tareas comunes en objetos de esa clase. La declaración de un método es de la siguiente: Tipo_retorno nombre_metodo (tipo1 arg1, tipo2 arg2, tipo3 arg3..) { ... } Un método se invoca mediante una llamada, y cuando el método que se llamó completa su tarea, devuelve un resultado, o simplemente el control al método que lo llamó. Cuando un método no devuelve valor especificar la palabra reservada void. Toda clase proporciona métodos que realizan tareas comunes en objetos de esa clase. Aunque la mayoría de los métodos se ejecutan en respuesta a las llamadas a métodos en objetos específicos, éste no es siempre el caso. Algunas veces un método realiza una tarea que no depende del contenido de ningún objeto. Dicho método se aplica a la clase en la que está declarado como un todo, y se conoce como método static o método de clase. Es común que las clases contengan métodos static convenientes para realizar tareas comunes.

Page 7: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado, Guía 5

8

Constructores Adicional a los métodos regulares, se pueden definir métodos constructores en la definición de una clase. Un método constructor es un método especial que determina como un objeto se inicializa. A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java automáticamente. Cuando se invoca la instrucción new para crear la instancia de una clase, java realiza lo siguiente:

• Reservar memoria para el objeto. • Inicializa las variables de instancia, tanto a sus valores iniciales o valores

default. • Invoca el constructor de la clase (que puede ser uno de varios metodos).

Los constructores son similares a los métodos, con dos diferencias importantes:

1. los construtores siempre tienen el mismo nombre de la clase. 2. Los constructores no retornan valores

Herencia La forma de definir una clase subclase (clase derivada) que hereda de una superclase (clase base) es la siguiente: class IdentificadorSubClase extends IdentificadorSuperClase { // métodos y Campos La palabra clase extends indica que se esta definiendo una nueva clase que derivada de otra clase que ya existe.

Page 8: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado. Guía 5

9

Clases definidas por el usuario En el programa Fraction.java se declara y define la clase Fraction que permite realizar las operaciones básicas de suma, resta, multiplicación y división de fracciones. Compilar y ejecutar el programa en mención. Fraction.java

Procedimiento Bibliografía Guía 1

Page 9: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado, Guía 5

10

Page 10: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado. Guía 5

11

Ejecución y compilación

Herencia La clase Empleado define una clase base que será utilizada para crear clases derivadas para un cierto tipo de empleados específicos tales como una secretaria, un vigilante, un motorista, un gerente, entre otros tipos, la clase base empleado define los campos y métodos de un perfil de empleado genérico. Digitar el código de la clase Empleado siguiente: Empleado.java

Page 11: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado, Guía 5

12

La clase Gerente es una clase derivada de la clase Empleado, en este caso a manera de ejemplo debido a su naturaleza, el empleado Gerente obtiene su sueldo bruto mensual a partir de su sueldo base mas un bono, por esa razón la clase Gerente redefine la función obtenerSalario() de la clase Empleado. El resto de métodos miembros de la clase Empleado es reutilizada a través de la herencia por la clase Gerente, exactamente la clase Gerente hereda de la clase Empleado los siguientes métodos: 1) obtenerFechaContratacion() 2) obtenerNombre() 3) obtenerNombre() 4) aumentarSalario(double porcentaje) Digitar el código de la clase Gerente siguiente: Gerente.java

En la clase PruebaEmpleadoGerente se crea un arreglo de tipo Empleado para contener tanto objetos de tipo Empleado como objetos de Tipo Gerente. Digitar el código de la clase PruebaEmpleadoGerente. Compilar las clases digitadas anteriormente y ejecutar el programa PruebaEmpleadoGerente Como muestra la ejecución.

Page 12: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado. Guía 5

13

PruebaEmpleadoGerente.java

Ejecución y compilación

Page 13: Java Avanzado - udb.edu.sv · A diferencia de los métodos regulares, no se puede invocar un constructor directamente; al contrario, los métodos constructores son invocados por java

Java Avanzado, Guía 5

14

1. Modifique todos los programas digitados de forma tal que le pide que ingrese los valores con los que se trabajan (Notas, números, etc).

• Aprendiendo Java 2 en 21 Días Lemay, Laura

• Cómo Programar en Java Deitel, Harvey M.

Investigación Complementaria Guía 3 Guía 4 fía

Bibliografía Guía 3 Guía 4 fía