Você deve entender a diferença entre uma classe e uma instância dessa classe. Se você vê um carro na rua, sabe imediatamente que é um carro, mesmo que não consiga ver qual modelo ou tipo. Isso ocorre porque você compara o que vê com a classe "carro". A classe contém o que é semelhante a todos os carros. Pense nisso como um modelo ou uma ideia.
Ao mesmo tempo, o carro que você vê é uma instância da classe "carro", pois possui todas as propriedades esperadas: há alguém dirigindo, ele tem um motor, rodas.
Assim, a turma diz "todos os carros têm uma cor" e a instância diz "este carro específico é vermelho".
No mundo OO, você define a classe e, dentro da classe, define um campo do tipo Color
. Quando a classe é instanciada (quando você cria uma instância específica), a memória é reservada para a cor e você pode atribuir uma cor a essa instância específica. Como esses atributos são específicos, eles não são estáticos.
Campos e métodos estáticos são compartilhados com todas as instâncias. Eles são para valores específicos da classe e não para uma instância específica. Para métodos, geralmente são métodos auxiliares globais (como Integer.parseInt()
). Para campos, geralmente são constantes (como tipos de carros, ou seja, algo em que você tem um conjunto limitado que não muda com frequência).
Para resolver seu problema, você precisa instanciar uma instância (criar um objeto) da sua classe para que o tempo de execução possa reservar memória para a instância (caso contrário, diferentes instâncias se substituirão, o que você não deseja).
No seu caso, tente este código como um bloco de partida:
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
}
O novo main()
método cria uma instância da classe que contém (soa estranho, mas como main()
é criado com a classe e não com a instância, ele pode fazer isso) e depois chama um método de instância ( run()
).
C
. Mas não será muito bom. Tente usar Java da maneira como deve ser usado, como uma linguagem orientada a objetos.