01 public class OlaVar {
|
Java2html |
Este é o blog de relacionamento com alunos de Fábio Nakano.
Desejo testar se esta mídia facilita a comunicação e aprendizado de conteúdo.
Gostaria que vocès dessem notas mais altas para posts que ajudaram mais a entender o assunto (e não por outro critério, por exemplo o melhor escrito ou o mais "bonito")
fabionakano at usp dot br
Prédio A1, segundo andar - Sala 204E
Caso precise do mapa do Campus:http://each.uspnet.usp.br/site/mapa.php
Siga-me por email preenchendo a caixa abaixo.
quinta-feira, 19 de março de 2015
0.0.0.17.3.1 - Código OlaVar
Assinar:
Postar comentários (Atom)
Olá professor, eu nao entendi o proposito da linha 2 como também eu gostaria de saber para qual situação eu devo usar o comando static,
ResponderExcluirOlá!
Excluirstatic é aplicado em atributos e métodos, para que sejam únicos para a classe e suas instâncias e possam ser usados sem necessidade de instanciação. Nesta situação usa-se static... mas neste momento da disciplina esta explicação talvez não faça muito sentido pois ainda não defini classes e instâncias nem usei mais de uma classe...
Vamos usar o cenário das aulas: apenas uma classe, sem instanciação. Apenas por informação, instanciação é feita com o comando new.
Quando há uma única classe, certamente o método main é definido nela.
O método main é o ponto de entrada de execução do programa, logo, precisa existir assim que o programa seja carregado pela máquina virtual java e antes de qualquer instanciação. Por isso main precisa ser static.
O bloco de código de um método estático estabelece um contexto (escopo) estático. Nesse contexto podemos criar variáveis locais, instanciar objetos (usar new) e usá-los (aplicar comandos sobre estes) mas não podemos usar atributos NÃO estáticos da classe*. Então, se usarmos atributos da classe dentro de main, eles precisam ser estáticos.
Vagas é atributo da classe e desejamos usá-lo em main, portanto precisa ser estático.
Por isso, neste programa, há static na linha 2.
espero ter ajudado.
* existe uma "sutilieza" aqui, que somente é percebida quando considera-se instanciação: Podemos, dentro de main, criar uma instância (com new) e usar os atributos não estáticos dessa instância. Isto é diferente de usar os atributos da classe... mas superficialmente parece o mesmo...