Varios

Páginas: 8 (1752 palabras) Publicado: 14 de noviembre de 2012
Constructores y Sobrecargas

Sobrecarga de métodos y de constructores 

La firma de un método es la combinación del tipo de dato que regresa, su nombre y su lista de argumentos. 

La sobrecarga de métodos es la creación de varios métodos con el mismo nombre pero con diferentes firmas y definiciones. Java utiliza el número y tipo de argumentos para seleccionar cuál definición de métodoejecutar. 

Java diferencia los métodos sobrecargados con base en el número y tipo de argumentos que tiene el método y no por el tipo que devuelve. 

Tambien existe la sobrecarga de constructores: Cuando en una clase existen constructores múltiples, se dice que hay sobrecarga de constructores.

Ejemplo

/* Métodos sobrecargados*/
int calculaSuma(int x, int y, int z){
...
}
int calculaSuma(double x, double y, double z){
...
}

/* Error: estos métodos no están sobrecargados */
int calculaSuma(int x, int y, int z){
...
}double calculaSuma(int x, int y, int z){
...
}

CLASES INTERNAS Y SUS TIPOS
Las clases internas en Java fueron introducidas desde la versión 1.1, desde entonces han sufrido grandes criticas, tanto positivas como negativas. Lo cierto es que son bastante útiles en ciertas ocasiones además de necesarias para entender el código de algunasaplicaciones interesantes.

Las clases internas proveen un mecanismo que nos permite definir una clase dentro de otra, así como una clase puede tener variables y métodos, también puede contener otras clases.

En java existen cuatro tipos de clases internas posibles:
* Clases Internas (regulares)
* Clases Internas Locales a Métodos
* Clases Internas Estáticas
* Clases InternasAnónimas

Una clase interna se crea cuando deseamos que haya una estrecha relación entre 2 clases que contienen métodos específicos pero que están sumamente relacionados unos con otros. Si se crea una clase interna, las variables y métodos de la clase dentro de la cual se encuentran estarán disponibles dentro de la clase interna, incluso aquellos marcados como privados (private).

Clases InternasRegulares
Cuando decimos clases internas nos referimos a las que NO son de tipo static, locales a métodos ni anonimas, es decir, una clase normal. En adelante nos referiremos a ellas como clases internas.
veamos un ejemplo básico:
Source Code |
123 | class Externa {    class Interna { }} |
Cuando compilamos este archivo con:
Source Code |
%javac Externa.java |
Obtenemos dos archivosde resultado:
Externa.class
Externa$Interna.class
Por lo tanto podria pensarse que es válido ejecutar la clase interna directamente con algo como esto:
Source Code |
%java Externa$Interna |
Pero esto no es posible pues esta forma de ejecución de clases directamente requiere de un método mainpara su funcionamiento, pero como estamos tratando con una clase interna “regular”, dentro deella no podemos tener métodos ni variables estáticas. El main es un método estático.
Las clases internas solo son accesibles a través de una instancia de su clase contenedora externa, es decir, unicamente en tiempo de ejecución.
Veamos como acceder a una instancia de la clase interna:
Source Code |
12345678910111213141516171819202122232425 | class Externa {    private int x = 7;    publicvoid construirInterna() {        Interna in = new Interna(); // Construye una instancia de la clase interna        in.verExterna();    }    class Interna {        public void verExterna() {            System.out.println("Valor de x externa es " + x);            System.out.println("Referencia a la clase interna es " + this);            System.out.println("Referencia a la clase externa es" +...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Variado
  • Varios
  • Varios
  • Varios
  • Variados
  • Varios
  • Varios
  • Varios

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS