A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.

Apresentações semelhantes


Apresentação em tema: "Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This."— Transcrição da apresentação:

1

2 Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This

3 Auto-referência com o this - Invocando métodos de Classes e Objetos

4 Na aula passada relacionado a Orientação a Objetos, falamos como criar construtores, com ou sem parâmetros, em nossas classes. Nesta pequena aula, iremos aprender como referenciar membros de um objeto através da keyword 'this', que é uma ferramenta bastante usada por programadores Java em métodos dentro de Classes. Auto referência com o this - Invocando métodos de Classes e Objetos

5 Imagine que criamos uma classe chamada "Funcionario", onde seu construtor padrão recebe uma String com o nome do funcionário, um inteiro com seu número de identificação e um double com seu salário. Se esses dados, dentro da classe são: private String nome; private int ID; private double salario; Referenciando membros da classe com this

6 E o cabeçalho do construtor é: public Funcionario( String nome, int ID, double salario) Como faríamos a atribuição? Ora, do mesmo jeito que fizemos antes: nome = nome; ID = ID; salario = salario;

7 Epa! Notou que as variáveis da classe e as variáveis do cabeçalho tem o mesmo nome? E agora, como o Java vai saber que as variáveis da esquerda se referem as variáveis 'private' da classe a as da direita são as que o usuário mandou pra criar o objeto?

8 Já sei! Basta criar o método com nomes de variáveis diferentes, como fizemos antes: public Funcionario( String Nome, int id, double Salario){ nome = Nome; ID = id; salario = Salario; } Ok, isso funcionaria perfeitamente. Mas seria extremamente incômodo, e desorganizado, criar dois nomes pra um mesmo tipo de variável.

9 Não pode parecer problema agora, com essa simples aplicação. Mas em uma situação real, em que seu programa em Java terá centenas de variáveis e você tiver que criar e decorar nomes de variáveis, isso vai ser um baita problema. Para isso, existe o 'this', que referencia - ou seja, aponta - a própria classe! 'this' em inglês, significa 'isso', 'isto'. É bem fácil seu uso, veja como ficaria nosso construtor:

10 public Funcionario( String nome, int ID, double salario){ this.nome = nome; this.ID = ID; this.salario = salario; } Pronto. Agora ficou óbvio que 'this.nome' é a variável 'nome' da classe "Funcionario" e 'nome' é a variável que a classe recebeu para criar um objeto!

11 Usamos o 'this' dentro da classe. Assim, sempre que colocarmos 'this.' antes de uma variável, fica implícito ao Java que estamos nos referindo aos atributos daquela Classe. Podemos usar, inclusive, em um print, caso esteja dentro da classe. Em um método, por exemplo, como veremos a seguir.

12 Outra utilidade do 'this' é passar o objeto atual como parâmetro. public Object getObjeto(){ return this; } Outro exemplo disso é criar o método...: public String toString()

13 ...na sua classe, e usar 'this' dentro de um print. O Java entenderá que deve ser impresso o que estiver dentro desse método 'toString()'. Outra utilidade do 'this' é invocar outros construtores. Para invocar um construtor dentro de outro, essa chamada deve ser o primeiro comando do construtor atual. Por exemplo, fazendo simplesmente: this;

14 Estamos chamando o construtor padrão, que não recebe parâmetros. Fazendo: this(2112); Estamos invocando o construtor que recebe um inteiro como parâmetro. Lembrando que quando criamos um construtor que não é o padrão, o Java não vai mais criar o construtor padrão vazio. Esse construtor padrão vazio só é criado automaticamente quando não criamos nenhum construtor.

15 Vamos criar um método, dentro da classe "Funcionário", que exibe todas as informações de um objeto dessa classe. Vamos chamar de 'exibir': public void exibir(){ System.out.printf("O funcionário %s, de número %d recebe %.2f por mês", this.nome,this.ID,this.salario); } Como invocar métodos de objetos que criamos

16 Para invocar, basta colocar '.exibir()' após o nome do objeto, que fará com que este método rode. Note, porém, que conforme explicamos em nossa aula sobre Classes e Objetos, essa classe é apenas uma abstração. Ou seja, esse método não existe de verdade! Ele só vai passar a existir quando criarmos um objeto dessa classe! (Na verdade ele pode existir, caso a classe fosse estática. Estudaremos isso em breve).

17 Para ilustrar a chamada de métodos de um objeto e o uso do 'this', vamos criar um funcionário - um objeto - de nome 'chefe'. O código ficará assim: thisMetodo.java public class thisMetodo{ public static void main(String[] args){ String nome = “Zezinho"; int ID=2112; double salario = 1000; Funcionario chefe = new Funcionario(nome, ID, salario); chefe.exibir(); } }

18 Funcionario.java public class Funcionario { private String nome; private int ID; private double salario; public Funcionario(){ System.out.println("Método construtor padrão invocado!"); }

19 public Funcionario( String nome, int ID, double salario){ this(); System.out.println(this); this.nome = nome; this.ID = ID; this.salario = salario; }

20 public String toString(){ return "Foi usado : System.out.println(this)"; } public void exibir(){ System.out.printf("O funcionário %s, de número %d recebe %.2f por mês", this.nome,this.ID,this.salario); }

21 Vamos agora conhecer o Métodos get e set !!!


Carregar ppt "Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This."

Apresentações semelhantes


Anúncios Google