• Nenhum resultado encontrado

65Todos os direitos reservados a 3Way Networks

No documento Linguagem Java COMPLETA (páginas 65-67)

Linguagem de Programação Java

Seja um Profissional Aprendendo com Profissionais

www.3way.com.br 57

public void print(String msg){ System.out.println(msg);

System.out.println("nome:" + nome);

System.out.println("Nota de Matematica:" + matNota); System.out.println("Nota de Portugues:" + portNota); System.out.println("Nota de Ciencias:" + cienNota); }

Quando tentamos chamar estes métodos no método main(), criado para a classe EstudanteExemplo:

public static void main(String[] args) {

Estudante annaRegistro = new Estudante(); annaRegistro.nome="Anna";

annaRegistro.endereco="Philippines"; annaRegistro.idade=15;

// sobrecarga de métodos annaRegistro.print();

annaRegistro.print("Situação do(a) Aluno(a) "); }

Teremos diferentes saídas para a chamada ao método print.

Lembre-se sempre de que métodos sobrecarregados possuem as seguintes propriedades: 1. o mesmo nome

2. lista de parâmetros formais diferentes 3. definido na mesma classe

7.1.5 Construtores

Utilizado quando há uma chamada com o operador new. São como métodos mas a assinatura de um construtor é diferente de um método, temos as propriedades de um construtor:

1. Devem ter o mesmo nome da classe

2. Construtor são como métodos, entretanto, somente as seguintes informações podem ser colocadas no cabeçalho do construtor:

 Escopo ou identificador de acessibilidade (como public, private)  Nome do construtor

 Lista de parâmetros formais, opcional 3. Não retornam valor

4. Somente são invocados usando operador new durante a instanciação da classe ou dentro de outro construtor usando this() e/ou super()

Para declarar um construtor, escrevemos:

[modificador] <nomeClasse> (<argumento>*) { <instrução>*

}

7.1.6 Construtor Padrão (default)

O construtor padrão é um construtor público e sem argumentos. Se não for definido um construtor para a classe, então, o compilador Java automaticamente definirá um construtor padrão para a classe.

O principal propósito dos construtores são inicializar o estado de um

objeto quando este é criado.

Toda classe tem o seu construtor

//atribuindo valor a variável referência Carro carro1 = new Carro();

carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização //criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores. Por exemplo, na nossa classe Estudante, o construtor padrão é definido do seguinte modo:

public Estudante() {}

7.1.7 Overloading de Construtores

Construtores podem sofrer sobrecarga (overloading), por exemplo, temos aqui quatro construtores:

public Estudante() {

// qualquer código de inicialização aqui }

public Estudante(String temp){ this.nome = temp;

}

public Estudante(String nome, String endereco) { this.nome = nome;

this.endereco = endereco; }

public Estudante(double matematica, double portugues, double ciencia) { matematicaNota = matematica;

portuguesNota = portugues; cienciaNota = ciencia; }

7.1.8 Usando Construtores

Para utilizar os construtores, definidos na seção anterior, temos as seguintes instruções:

public static void main(String[] args) {

// criar três objetos para o registro do estudante Estudante annaRegistro = new Estudante("Anna");

Estudante beahRegistro = new Estudante("Beah", "Filipinas"); Estudante crisRegistro = new Estudante(80,90,100);

// algum código a partir daqui }

Ao criar um novo objeto o construtor será invocado, logo após a alocação das variáveis de instância. Vejamos o seguinte exemplo, vamos adicionar o atributo estático static int refCount à classe Estudande (linha 3):

class Estudante{ int idade;

static int refCount;

public void setIdade(int idade){

idade = idade; // Não é uma boa prática }

}

O propósito de refCount é contar o número de objetos que são instanciados a partir da classe Estudante. Então, o que desejamos é incrementar o valor de refCount toda vez que um objeto da classe Estudante é instanciado. Os construtores são um bom local para modificar e incrementar o valor de refCount, pois ao menos um deles certamente será invocado quando um objeto Estudante for instanciado. Por exemplo:

public Estudante() {

refCount++; // adicionar um estudante }

Construtores podem sofrer sobrecarga

Linguagem de Programação Java

Seja um Profissional Aprendendo com Profissionais

www.3way.com.br 12

//atribuindo valor a variável referência Carro carro1 = new Carro();

carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização //criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

67

No documento Linguagem Java COMPLETA (páginas 65-67)

Documentos relacionados