Programação Java (nível intermediário) 2 Invocação estática Invocação de métodos Existem duas maneiras para fazer a invocação (chamar) um método – – Invocação Dinâmica Invocação Estática Invocação Dinâmica A invocação dinâmica é meio comum de realizar a chamada de um método Na invocação dinâmica é necessário existir um objeto criado para que método seja chamado – Ex: Escola jardim = new Escola(); jadim.listarAlunos(); Objeto do Tipo Escola Método listarAlunos da classe Escola Invocação Dinâmica O modelo para fazer uma invocação dinâmica é: – Quando o método não tem parametros – Quando o metodo tem um parametro – nomeDeUmObjeto.nomeDoMetodo(); nomeDeUmObjeto.nomeDoMetodo(parametro); Quando tem varios parametros nomeDeUmObjeto.nomeDoMetodo(parametro, parametro,....,parametro); Invocação Dinâmica Quando um método é chamado dentro da própria Classe em que ele foi definido não é preciso criar um objeto para chama-lo Neste caso você o chama apenas com o nome dele EX: Class Escola{ . . void listarAluno( ){ . . } . . listarAluno( ); } Veja não é preciso associar este método a um objeto, pois ele esta sendo chamado na classe em que ele foi criado Invocação Dinâmica Contudo, existe uma exceção a regra anterior Quando você chama um método qualquer dentro de outro método que é estático, você deve fazer uma invocação dinâmica de modo convencional Ex: public static void main(String args[ ]){ Veja que o método main é Escola jardim = new Escola( ); estático por isso jardim.listarAlunos( ); Dentro dele você só pode } invocar métodos de forma dinâmica se referencia-lo a partir de um objeto Invocação Estática Nesse modelo de invocação você não precisa criar um objeto para chamar um método – Neste modelo a chamada é feita do seguinte modo: – Ex: String s = Reader.readString(); NomeDaClasse.nomeDoMetodo(); É útil para métodos que fazem algum processanto tão elementar que não necessita de um objeto – Ex: double x = Math.sqrt(2.0); Método para calcular a raiz quadrada de um numero Invocação Estática Esse modelo de invocação economiza memória Para tornar um método estático basta adicionar a palavra static na frente do tipo do método Ex: static void listarAlunos(){ } O método main() O método principal e responsável pela execução, o main, é definido sempre como estático Isso significa que ele pode ser chamado em qualquer classe sem que seja necessário a criação de um objeto para sua chamada Este método sempre tem como argumentos um array de Strings O método main() O argumento do main representa o conjunto de linhas de código que são escritas dentro dele Por isso essa linhas definem o que acontece quando o programa é executado Quem chama esse método não é o seu sistema e sim o próprio SO Isso é feito a através da Máquina Virtual Java Maquina Virtual Java É um programa que carrega e executa os aplicativos Java, convertendo os bytecodes em código executável de máquina Graças à máquina virtual Java, os programas escritos em Java podem funcionar em qualquer plataforma Maquina Virtual Funcionamento da máquina Virtual Invocação dinâmica de atributos Os modelos de invocação também se aplicam a atributos Para invocar um atributo dinamicamente: – – NomeDoObjeto.nomeDoAtributo; Ex: Aluno a1 = new aluno(nome, matricula); a1.nota1 = 9.0; a1.nota2 = Reader.readFloat(); Invocação estática de atributos Do mesmo modo, para invocar um atributo estaticamente você não precisa criar um objeto O meio para invocar um atributo estático é: – – NomeDaClasse.nomeDoAtributo; Ex: double valorDePI = Math.PI; Este é um atributo estático da classe Math armazena o valor da constante matemática PI = 3,14......