Debe comprender la diferencia entre una clase y una instancia de esa clase. Si ve un automóvil en la calle, sabe de inmediato que es un automóvil, incluso si no puede ver qué modelo o tipo. Esto se debe a que compara lo que ve con la clase "auto". La clase contiene cuál es similar a todos los automóviles. Piense en ello como una plantilla o una idea.
Al mismo tiempo, el automóvil que ve es una instancia de la clase "automóvil" ya que tiene todas las propiedades que usted espera: hay alguien conduciéndolo, tiene un motor, ruedas.
Entonces, la clase dice "todos los autos tienen un color" y la instancia dice "este auto específico es rojo".
En el mundo OO, usted define la clase y dentro de la clase, define un campo de tipo Color
. Cuando se crea una instancia de la clase (cuando crea una instancia específica), la memoria se reserva para el color y puede darle un color a esta instancia específica. Como estos atributos son específicos, no son estáticos.
Los campos y métodos estáticos se comparten con todas las instancias. Son para valores que son específicos de la clase y no una instancia específica. Para los métodos, estos generalmente son métodos de ayuda global (comoInteger.parseInt()
). Para los campos, generalmente son constantes (como los tipos de automóviles, es decir, algo donde tiene un conjunto limitado que no cambia a menudo).
Para resolver su problema, debe crear una instancia de una instancia (crear un objeto) de su clase para que el tiempo de ejecución pueda reservar memoria para la instancia (de lo contrario, diferentes instancias se sobrescribirán entre sí, lo que no desea).
En su caso, intente este código como bloque inicial:
public static void main (String[] args)
{
try
{
MyProgram7 obj = new MyProgram7 ();
obj.run (args);
}
catch (Exception e)
{
e.printStackTrace ();
}
}
// instance variables here
public void run (String[] args) throws Exception
{
// put your code here
}
El nuevo main()
método crea una instancia de la clase que contiene (suena extraño pero como main()
se crea con la clase en lugar de con la instancia, puede hacer esto) y luego llama a un método de instancia ( run()
).
C
. Pero no será muy bueno. Intente utilizar Java de la manera en que debe usarse, como lenguaje orientado a objetos.