0% encontró este documento útil (0 votos)
23 vistas

Lenguaje Java Elementos Nivel Avanzado

El documento habla sobre conceptos avanzados del lenguaje Java, incluyendo constructores, this, sobrecarga, herencia, polimorfismo, instanceof, garbage collection y paquetes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas

Lenguaje Java Elementos Nivel Avanzado

El documento habla sobre conceptos avanzados del lenguaje Java, incluyendo constructores, this, sobrecarga, herencia, polimorfismo, instanceof, garbage collection y paquetes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 51

C ONC EPTOS AVANZADOS

Lenguaje Java
Constructor

 Método que se invoca automáticamente cuando se


crea un objeto para inicializar los datos de éste
(atributos).
 Dicho método tiene el mismo nombre de la clase y
sintaxis es similar a la de un método pero no
tienen tipos de retorno.

 Un constructor se emplea para dar valores


iniciales a las variables de instancia de la clase o
ejecutar procedimientos de inicio.
Constructor

 Cuando una clase sólo tiene el constructor


predeterminado, sus variables de instancia se
inicializan con sus valores predeterminados (char,
byte, long, float y double con 0; boolean con false
y variables de tipo por referencia en Null). Cuándo
el compilador proporciona un constructor
predeterminado o por defecto?.

 Todas las clases poseen constructores sean


definidos o no.
Ejemplo de Constructor sin parámetros

Clase DemoConstructor {
private int x;

public DemoConstructor() {
x=5;
}
………
}
public static void main(String args[]) {
DemoConstructor t1 = new DemoConstructor();
}
Constructor: con y sin parámetros
This

 Definida implícitamente en el cuerpo de los


métodos.
 Hace alusión al objeto sobre el que se invoca el
método, es decir, el this es utilizado para hacer
referencia al objeto de la clase actual. Se puede
usar this para referenciar a los miembros de la
clase como métodos, constructores y variables.
Ejemplo de uso de this
This. Ejemplo.
public class EjemploThis {
// Variable de Instancia número
private int número;
public EjemploThis () {
número = 25;
}
public EjemploThis(int número){
//Se invoca el constructor sin parámetros
this();
// se asigna a la variable de instancia número el valor de la variable local número
this.número =número ;
}
public void imprimir(){
//variable local número
int número =20;
//Imprimir variable local
System .out.println("Variable local número = " +número);
//Imprimir variable de instancia
System .out.println("Variable de instancia número = "+this.número);
}
}
Sobrecarga

 Capacidad para declarar métodos con el mismo


nombre en la misma clase, siempre y cuando se
tenga distintos conjuntos de parámetros
(determinados en base al número, tipos y orden de
los parámetros).
 La sobrecarga de métodos se utiliza para crear
varios métodos con el mismo nombre que realicen
la misma tarea o tareas muy similares, pero con
distintos tipos o número de parámetros.
Ejemplo de Sobrecarga
Sobrecarga. Caso para analizar

 Hay sobrecarga?

Caso 1

Caso 2
Sobrecarga: Constructores

Una clase puede tener varios constructores


sobrecargados que permitan a los objetos de
la clase inicializarse de distintas formas.
Herencia

 Proceso en el cual una Clase (denominada


Subclase) adquiere los atributos y métodos de su
clase Padre (denominada Superclase o Clase
Base).
 La idea es reutilizar el código y mejorar las
subclases con nuevas capacidades o modificaciones
de las capacidades ya existentes.
 Cabe destacar que los constructores no se
heredan.
Herencia. Tipos.

 La herencia directa es cuando una subclase


hereda de forma explícita en línea directa de su
clase padre o superclase.
 Una superclase indirecta es cualquier clase por
encima de la superclase directa en la jerarquía de
clases, la cual define las relaciones de herencia
entre las clases.
 Los métodos de la subclase pueden acceder a los
atributos y métodos protected de la superclase.
Herencia. Ejemplos

Superclase Subclases
Estudiante Estudiante Cursante,
Estudiante Graduado
Figura Triángulo, Cuadrado,
Geométrica Rectángulo
Empleado Docente, Administrativo
Cuenta Cuenta de Ahorros, Cuenta
Bancaria Corriente
Herencia. Palabra Clave Extends.

 En Java, la palabra Extends se emplea para


heredar las características de una clase. En
forma general se representa:
 Class SuperClase{
………
………
}

 Class SubClase extends SuperClase {


………
………
}
Herencia. Palabra Clave Super

 En Java, la palabra Super se emplea en forma


parecida a la cláusula this:
 Para diferenciar los miembros (atributos,
métodos) de la superclase de los miembros de
la subclase si éstos poseen los mismos
nombres.
 Para invocar el constructor de la superclase
desde la subclase.
Herencia: Sobrescritura

 A pesar de que un método de superclase sea


apropiado para una subclase, a menudo esa
subclase requiere una versión personalizada del
mismo.
 En dichos casos, la subclase puede redefinir o
sobrescribir el método de la superclase con una
implementación apropiada.
 Un método sobrescrito se redefine con los
mismos argumentos y tipo de retorno.
Herencia: Sobrescritura->Reglas

 La lista de argumentos debe ser idéntica a la


del método sobrescrito así como el tipo de
retorno.
 El nivel de acceso no puede ser más restringido
que el nivel del método sobrescrito.
 Los métodos de instancia sólo pueden ser
sobrescritos si son heredados por la subclase.
 Los Constructores no pueden ser sobrescritos.
Herencia. Sobrescritura

 En los métodos sobrescritos se ejecuta la definición


del método de la clase más específica del objeto
independientemente de cómo se ha declarado la
referencia al objeto.
Herencia. Ejemplo de código I

Superclase
Herencia. Ejemplo de código I

Subclase

Sobrescritura
Herencia. Ejemplo de código I

Main
Herencia. Ejemplo de código II

Superclase
Herencia. Ejemplo de código II

Subclase
Herencia. Ejemplo de código II

Método Sobrescrito
Herencia. Ejemplo de código II

Main
Herencia. Ejemplo de código III
Herencia. Ejemplo de código III

Conversión automática implícita: generalización


Herencia. Ejemplo de código III

Conversión explícita: especialización


Polimorfismo

 Es posible utilizar el mismo nombre y la misma


firma del método para hacer que ocurran
distintas acciones dependiendo del tipo de
objeto en el que se invoca el método.
 El polimorfismo es visto como la capacidad de un
objeto para tomar múltiples formas.
Polimorfismo. ejemplo
Polimorfismo. ejemplo
Polimorfismo. ejemplo
Claúsula Instance Of

 Sirve para determinar si un objeto es de un tipo


determinado.
 Cuando utilicemos el operador instanceof,
debemos recordar que sólo puede usarse con
variables que contengan la referencia a un
objeto.
Claúsula Instance Of. Ejemplo.
Claúsula Instance Of. Ejemplo.
Claúsula Instance Of. Ejemplo.
Claúsula Instance Of. Ejemplo.
Destrucción de objetos (Garbage Collection)

 Gc libera la memoria de los objetos no


referenciados en ninguna parte.
Destrucción de objetos (Garbage Collection)

 Soltar expresamente una referencia:


Packages

 Conjunto de clases definidas en un directorio.


Dicho directorio se denomina Package.
 Permite organizar la colección de objetos y
evitar conflictos de nombres.
 Si no se define ningún package para una clase
java lo incluye en el DefaultPackage (el editor
Netbeans te recomienda no realizar esta
operación).
Packages y directorios

 Nombre del package -> estructura de


directorios.
 Classpath-> lista de directorios donde java
busca packages
Definición de Packages
Utilizar clases de otro Package
Utilizar clases de otro Package

Se tiene la siguiente jerarquía de clases:


Utilizar clases de otro Package
Package: verificar errores

 Caso 1
Package: verificar errores

 Caso 1. Posible solución


Package: verificar errores

 Caso 2
Package: verificar errores

 Caso 2. Posible solución

También podría gustarte