java orientação a objetos (variaveis de instancia e metodos)

14

Click here to load reader

Upload: armando-daniel

Post on 27-May-2015

5.400 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java   orientação a objetos (variaveis de instancia e metodos)

Curso de Java

by Antonio Rodrigues Carvalho Neto

Page 2: Java   orientação a objetos (variaveis de instancia e metodos)

Variáveis de instância

Page 3: Java   orientação a objetos (variaveis de instancia e metodos)

Variáveis de instância

� Vamos utilizar a classe carro como exemplo para demostrar o funcionamento das variáveis de instância.

Carro

liga()acelera()

frea()

float potenciaString marcaString modelo

int ano

public class Carro {float potencia;String marca;String modelo;int ano;

public void liga () { System.out.println(“Carro ligado”);

}public void acelera () {

System.out.println(“Acelerando”);}public void frea() {

System.out.println(“Freando”);}

}

Page 4: Java   orientação a objetos (variaveis de instancia e metodos)

Memória da JVM

Variáveis de instância (cont...)

Variáveis locais do método

main

herbie

� Quando declaramos uma variável como sendo do tipo Carro, a JVM apenas cria um ponteiro do tipo Carro apontando para null.

ex.) Carro herbie;

null

Page 5: Java   orientação a objetos (variaveis de instancia e metodos)

Variáveis de instância (cont...)

Memória da JVMVariáveis locais do método

main

herbie

� O espaço para a instância é criado apenas quando o construtor é invocado.

ex.) herbie = new Carro();

O trechonew Carro()

efetivamente cria o espaço para o objeto na memória

ano

modelomarcapotencia

O trecho

herbie =apenas vincula a variável

herbie ao espaço do objeto na memória

Page 6: Java   orientação a objetos (variaveis de instancia e metodos)

Variáveis de instância (cont...)

Memória da JVMVariáveis locais do método

main

herbie

� Quando declaramos outra variável e “igualamos” a váriável já criada, a JVM faz com que esta variável aponte para o mesmo endereço de memória que ja estácriado

ex.) Carro meufusca = herbie;

ano

modelomarcapotencia

meufusca

Page 7: Java   orientação a objetos (variaveis de instancia e metodos)

Métodos

Page 8: Java   orientação a objetos (variaveis de instancia e metodos)

Métodos

� Os métodos representam o comportamento de uma classe, eles são as ações que a classe pode fazer.

� Todo o método deve retornar uma informação.� Quando um método é invocado a JVM

interrompe a execução do bloco de código que invocou o método, e começa então a executar o bloco de código do método invocado.

� Ao final da execução do bloco de código do método, a JVM retoma a execução do bloco que havia sido parado apartir do lugar onde parou.

Page 9: Java   orientação a objetos (variaveis de instancia e metodos)

Métodos (continuação)

// Declaração da classepublic class Helloworld {

// Declaração de métodopublic static void main( String args[]) {

System.out.println( “Ola ... “);}

}

Modificador Tipo de retornodo método

Nome do método

Argumentos/Parâmetrosdo método

Page 10: Java   orientação a objetos (variaveis de instancia e metodos)

Métodos (parâmetros)� Os métodos podem receber parâmetros*, para isso é

preciso declarar os tipos e nomes dos parâmetros dentro do parêntesis. Caso haja necessidade de receber mais de um parâmetro, você pode colocar uma vírgula e especificar o outro parâmetro, sempre colocando o tipo e o nome.

...// Declaração de métodopublic int quadrado( int valor ) {

return(valor * valor);}

...

public int area( int base, int altura) { return (base * altura);

}

Argumentos/Parâmetrosdo método

* Parâmetros são informações necessárias para o método completar suas atividades.

Page 11: Java   orientação a objetos (variaveis de instancia e metodos)

Métodos (parâmetros – cont...)

� Quando o método for chamado, os parâmetros devem ser especificados na mesma sequência em que foram declarados.

� As informações passadas como parâmetro ficarão acessíveis pelos nomes em que foram declarados e estarão disponíveis como variáveis locais.

public class Matematica {public int quadrado( int valor ) {

return ( valor * valor );}

public int area (int base, int altura) { return ( base * altura );

}

void imprimeTexto( String texto ) { System.out.println(texto);

}}

public class Teste {public static void main (String args[]) {

Matematica m = new Matematica();int q = m.quadrado( 10 );System.out.println( “Quadrado de 10 é : “ + q );

int a = m.area( 20, 50 );System.out.println( “A area do terreno é : “ + a );

m.imprimeTexto(“ A área de um terreno 20X50 é “ + a);}

}

Page 12: Java   orientação a objetos (variaveis de instancia e metodos)

Métodos (Assinatura)� Assinatura do método é um conjunto de informações

que distingue-o de outro método na mesma classe. Este conjunto de informações é composto por (tipo de retorno, nome e parâmetros).

public void imprimeTexto( String texto ) {System.out.println( texto );

}

� Exemplo de Métodos...

int quadrado( int valor ) { return ( valor * valor );

}

void imprimeTexto( String texto ) { System.out.println(“Vendido”);

}...

Assinatura do Método

Page 13: Java   orientação a objetos (variaveis de instancia e metodos)

Métodos estáticos

� Os métodos também podem ser acessados de forma estática (sem a necessidade de criar uma instância da classe).

� Para permitir que o método seja acessado de forma estática é preciso colocar o modificador static na sua assinatura.

Page 14: Java   orientação a objetos (variaveis de instancia e metodos)

Métodos estáticos (cont...)

� Quando o método for declarado como estático ele não poderá acessar atributos de instância do objeto.

public class Matematica {public static int quadrado( int valor ) {

return ( valor * valor );}

public static int area (int base, int altura) { return ( base * altura );

}

void static imprimeTexto( String texto ) { System.out.println(“Vendido”);

}}

public class Teste {public static void main (String args[]) {

int q = Matematica.quadrado( 10 );System.out.println( “Quadrado de 10 é : “ + q );

int a = Matematica.area( 20, 50 );System.out.println( “A area do terreno é : “ + a );

Matematica.imprimeTexto(“ A área de um terreno20X50 é “ + a);

}}