ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Modificador Static


Enviado por   •  31 de Agosto de 2013  •  1.823 Palabras (8 Páginas)  •  261 Visitas

Página 1 de 8

MODIFICADOR STATIC

La palabra reservada static se usa para declarar componentes de clase, así como variable de clase y métodos de clase. La inclusión de la palabra static en la declaración del método main indica que es un método de clase.

No es tan frecuente usar variables de clase y métodos de clase (con excepción del método main)

Un método definido para una clase se llama método de clase y un método definido para un objeto es un método de instancia.

*******

PROPIEDADES Y MÉTODOS DE CLASES Y DE INSTANCIAS

En una clase, las propiedades y los métodos pueden definirse como:

De instancia

De clase

Propiedades de Instancia

Las propiedades de instancia se caracterizan porque cada vez que se define una instancia de la clase, se crean físicamente unas nuevas variables que contendrán los valores de dichas propiedades en la instancia creada, es decir, cada objeto (cada instancia de una clase) contiene sus propios valores en las propiedades de instancia.

Por lo tanto hasta que no se crea una primera instancia de una clase, no existirá ninguna propiedad visible de la clase.

Ejemplo:

class Sencilla {

public int PropiedadDeInstancia;

}

Si ahora se quisiera hacer uso de la propiedad PropiedadDeInstancia a través del nombre de la clase (Sencilla), el compilador marcará un error:

class PruebaSencilla {

public static void main (String [] args) {

Sencilla.PropiedadDeInstancia = 8;

}

}

El compilador indica que la variable PropiedadDeInstancia es “no estática” y que existe un error. Para poder hacer uso de la variable PropiedadDeInstancia, obligatoriamente deberemos crear alguna instancia de la clase.

Class PruebaSencilla {

public static void main (String [] arg) {

Sencilla Instancia1 = new Sencilla();

Sencilla Instancia2 = new Sencilla();

Instancia1.PropiedadDeInstancia = 8;

Instancia2.PropiedadDeInstancia = 5;

}

}

Propiedad de clase

Una propiedad de clase (propiedad estática) se declara con atributo static:

class SencillaEstática {

static public int PropiedadDeClase;

}

A diferencia de las propiedades de instancia, las propiedades de clase existen incluso si no se ha creado ninguna instancia de la clase. Pueden ser referenciadas directamente a través del nombre de la clase, sin tener que utilizar el identificador de ninguna instancia.

Class PruebaSencillaEstatica {

public static void main (String [] arg) {

SencillaEstatica.PropiedadDeClase = 8;

}

}

Las propiedades de clase son compartidas por todas las instancias de la clase. Al crearse una instancia de la clase, no se crean las variables estáticas de la clase. Las variables estáticas (de clase) existen antes de la creación de las instancias de la clase.

Class PruebaSencillaEstatica {

public static void main (String [] arg) {

SencillaEstatica Instancia1 = new SencillaEstatica();

SencillaEstatica Instancia2 = new SencillaEstatica();

SencillaEstatica.PropiedadDeClase = 4;

Instancia1.PropiedadDeClase = 8;

Instancia2.PropiedadDeClase = 5;

}

}

Método de Clase

Un método estático puede ser utilizado sin necesidad de definir previamente instancias de la clase que contiene el método. Los métodos estáticos pueden referenciarse a través del nombre de la clase (al igual que las propiedades estáticas). Esta utilidad es útil en diversas circunstancias:

Cuando el método proporciona una utilidad general:

Esta situación se ha visto con los métodos de la clase Math. Si queremos realizar una raíz cuadrada, no es necesario crear ninguna instancia del método Math; directamente escribimos Math.sqrt(Valor_double). Esto es posible porque el método sqrt de la clase Math es estático.

Cuando el método hace uso de propiedades estáticas u otros métodos estáticos:

Los métodos estáticos referencian propiedades y métodos estáticos.

No es posible hacer referencia a una propiedad de instancia o un método de instancia desde un método estático. Esto es así debido a que en el momento que se ejecuta u método estático puede que no exista ninguna instancia de la clase donde se ejecute la propiedad o el método de instancia al que referencia el método estático

//Ejemplo de metodo de clase

import java.util.*;

public class MetodoNoRetorna {

public static void main(String [] arg) {

Scanner escaner = new Scanner(System.in);

int tabla;

System.out.println("Que tabla deseas? ");

tabla = escaner.nextInt();

//llamada

...

Descargar como (para miembros actualizados)  txt (9.7 Kb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com