Download Java Avanzado

Document related concepts
no text concepts found
Transcript
2
Java Avanzado
Facultad de Ingeniería.
Escuela de computación.
Java Avanzado. Guía 5 3
Introducción 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.
4
Java Avanzado, Guía 5
Facultad: Ingeniería.
Escuela: Computación.
Asignatura: Java Avanzado
Pág
Guía 5. Orientación a Objetos.
Tabla de Contenido
Contenido ---------------------------------------------------------------------------------------- 5
Objetivos ----------------------------------------------------------------------------------------- 5
Materiales y equipos --------------------------------------------------------------------------- 5
Introducción teórica --------------------------------------------------------------------------- 5
Procedimiento ----------------------------------------------------------------------------------- 9
Investigación ------------------------------------------------------------------------------------ 14
Bibliografía --------------------------------------------------------------------------------------- 14
Java Avanzado. Guía 5 5
Tema: Orientación a Objetos.
Contenidos
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.
Objetivo Específico
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.
Materiales y Equipo
a) Netbeans
b) JDKJava
Introducción Teórica
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.
6
Java Avanzado, Guía 5
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;
…
}
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.
8
Java Avanzado, Guía 5
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.
Java Avanzado. Guía 5 9
Procedimiento
Clases definidas por el usuario
EnBibliografía
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
Guía 1
10 Java Avanzado, Guía 5
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
12 Java Avanzado, Guía 5
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
PruebaEmpleadoGerente Como muestra la ejecución.
ejecutar
el
programa
Java Avanzado. Guía 5 13
PruebaEmpleadoGerente.java
Ejecución y compilación
14 Java Avanzado, Guía 5
Investigación Complementaria
1. Modifique todos los programas digitados de forma tal que le pide que ingrese los
Guíavalores
3
con los que se trabajan (Notas, números, etc).
Bibliografía
Guía 4
• Aprendiendo Java 2 en 21 Días
Guía
3 Laura
fíaLemay,
• Cómo Programar en Java
Deitel, Harvey M.
Guía 4
fía