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

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

Programação I Aula 2 (Métodos) Prof. Gilberto Irajá Müller Última atualização 2/3/2009.

Apresentações semelhantes


Apresentação em tema: "Programação I Aula 2 (Métodos) Prof. Gilberto Irajá Müller Última atualização 2/3/2009."— Transcrição da apresentação:

1 Programação I Aula 2 (Métodos) Prof. Gilberto Irajá Müller Última atualização 2/3/2009

2 Métodos É a parte da classe que se encarrega de detalhar como as operações serão feitas; Todo o processamento que um programa Java faz está definido dentro dos métodos de suas classes Utilizando ou não os dados dos seus objetos, representados pelos atributos (getter e setter)

3 Métodos Em java a sintaxe para criação de métodos é: modificadores tipo de retorno nome do método(lista de parâmetros) { // código... } Modificadores: Pode-se citar a visibilidade (private, public, protected, package,...) Tipo de retorno: Sempre mencionamos que um método é uma função. Neste caso, o tipo de retorno é o tipo de dado (int, double, String) que o método retornará. Caso o método não tenha retorno, ou seja, um procedimento, então, utiliza-se a palavra reservada void Lista de parâmetros: Os métodos poderão receber parâmetros que serão úteis para o seu propósito. Então, cada parâmetro (que é uma variável), recebe duas informações: tipo de dado e o nome. Ex: String nome, double salario, entre outros. Caso o método não possua parâmetros, então, devemos utilizar apenas o parênteses () sem informação.

4 Métodos Implementação do método setPeso da classe Pessoa (revisão) public class Pessoa { public String nome; private double altura; private double peso; private int idade; public void setPeso(double novoPeso) { peso = novoPeso; } Basicamente, este método irá alterar o atributo peso do objeto através do valor do parâmetro novoPeso Modificador Tipo de Retorno Parâmetro

5 A sintaxe para a chamada de métodos em java é: Identificador do objeto (ou variável).nome do método(lista de parâmetros); Identificador do objeto (ou variável).nome do método(); Exemplo Pessoa p1 = new Pessoa(); Pessoa p2 = new Pessoa(); p1.setPeso(80.0); p2.setPeso(70.0); Métodos nome: null altura: 0.0 peso: 70.0 idade: 0 Pessoa2 p1 p2 nome: null altura: 0.0 peso: 80.0 idade: 0 Pessoa1

6 Exercício: Codificar os métodos setNome(), setAltura() e setIdade para a classe Pessoa E o método getPeso() ? Como é realizado o retorno do valor de um método? Até o momento, criamos um método que não tem retorno (void) Métodos

7 Exercício: Crie uma classe Circulo com um atributo inteiro chamado raio. Escreva o método alteraRaio (lembre-se: esse é um método do tipo setter). Como ficaria o Diagrama de Classes? Exercício: Crie o objeto do tipo Circulo (nossa classe) e chame o método alteraRaio. Métodos

8 Saída de dados Para visualizar os dados dos objetos, utilizaremos uma classe interna do java, ou seja, uma classe pronta com seus métodos e atributos. System.out.println(); System -> classe Out -> objeto Println() -> método Vamos criar um método em nossa classe Pessoa que permitirá visualizar os dados na tela do computador public void exibeDados() { System.out.println(nome); System.out.println(peso); System.out.println(altura); System.out.println(idade); } Métodos

9 Saída de dados public void exibeDados() { System.out.println(nome); System.out.println(peso); System.out.println(altura); System.out.println(idade); } Utilização: Pessoa p1 = new Pessoa(); p1.setNome(João da Silva); p1.setAltura(1.80); p1.setPeso(80.0); p1.setIdade(30); p1.exibeDados(); // Saída na tela do computador João da Silva Métodos

10 Concatenação de dados Em java, podemos concatenar strings utilizando o operador + João + da + Silva -> João da Silva Caso a primeira ocorrência seja do tipo string, então, podemos concatenar dados do tipo string com int, double,.... João > João Melhorando a saída de dados do método exibeDados() public void exibeDados() { System.out.println(Nome: + nome); System.out.println(Peso: + peso); System.out.println(Altura: + altura); System.out.println(Idade: + idade); } Qual seria o resultado na tela do computador? Métodos

11 Construtores Construtor é um método especial usado para inicializar objetos quando estes são criados. Características: Tem o mesmo nome da classe É automaticamente chamado pelo operador new Não tem tipo de retorno (mas não se escreve void) Exemplo para a classe Pessoa public Pessoa(String n, double a, double p, int i) { nome = n; altura = a; peso = p; idade = i; } Métodos

12 Construtores A chamada do construtor é automática, ou seja, quando o objeto é criado (instanciado) utilizando new. Exemplo Pessoa p1 = new Pessoa(João da Silva, 1.80, 80.0, 30); O construtor poderá ser chamado SOMENTE no momento da criação do objeto = new. Métodos nome: João da Silva altura: 1.80 peso: 80.0 idade: 30 Pessoa1 p1

13 Construtores Exercício: Para a classe Circulo, crie um método construtor em que todo o objeto do tipo Circulo tenha raio = 5 Crie uma classe do tipo Empregado. Ao ser criado o objeto do tipo Empregado, o seu salário deverá iniciar com e o número de dependentes 0. Métodos

14 Sobrecarga de métodos ou de construtores Numa mesma classe, dois ou mais métodos (ou construtores) podem ter o mesmo nome, desde que tenham tipos ou quantidades de parâmetros diferentes (lista de parâmetros). Chama-se a isso sobrecarga de métodos ou de construtores. Chamamos a lista de parâmetros de assinatura de um método Métodos

15 Sobrecarga de métodos ou de construtores Exemplo public class Pessoa { public String nome; private double altura; private double peso; private int idade; public Pessoa(String n) { nome = n; } public Pessoa(String n, double a) { nome = n; altura = a; } Métodos Mesmo nome, porém, com a assinatura diferente

16 Sobrecarga de métodos ou de construtores O compilador Java identifica qual o construtor que deve ser acionado, dependendo dos argumentos que são passados para ele na chamada. O mesmo mecanismo vale para métodos sobrecarregados. Se não dotarmos nossa classe de construtor(es), Java adota um construtor padrão (default), sem parâmetros, que atribui valores default aos atributos do objeto. Era o que estava acontecendo com a nossa classe Pessoa() antes de introduzirmos os construtores. Pessoa p1 = new Pessoa(); Se dotarmos nossa classe de um ou mais construtores, Java não adotará construtor padrão para ela. Então, a chamada Pessoa p1 = new Pessoa(); passará a ser um erro de compilação, pois não existe mais construtor padrão na classe. Métodos

17 Exercício: Na classe Empregado você tem um construtor com dois parâmetros (salário e dependentes). Crie um outro construtor (sobrecarga) para Empregado, com dois parâmetros, o nome do empregado e o seu salário. Métodos

18 De modo a testarmos nossa classe Pessoa ou Empregado, podemos utilizar um recurso que chama-se de CLASSE TESTE. Classe Teste é uma classe que objetiva o teste de uma determinada classe (em nosso caso, Pessoa ou Empregado) A Classe Teste possui um método estático (veremos adiante!) chamado main que permite: Criar objetos das nossas classes (Pessoa e Funcionario) Testar os métodos e atributos de nossas classes Classe Teste

19 Exemplo public class TestaPessoa{ public static void main(String args[]) { Pessoa p1 = new Pessoa(João da Silva, 1.80, 80.0, 30); p1.exibeDados( ); } Quando executamos uma classe (um arquivo.java), Java procura o método main desta classe e executa-o. Os outros métodos só executam quando são chamados pelo método main ou por outro método qualquer da própria classe O arquivo de armazenamento do código acima possui extensão.java e, OBRIGATORIAMENTE, deverá ter o nome da classe principal, em nosso caso, TestaPessoa.java (Laboratório I) Classe Teste

20 Exercício: O que acontece (na memória e na tela) quando a classe TestaPessoa é executada? Exercício: Crie a classe teste para a classe Empregado e instancia três objetos do tipo Empregado. Classe Teste

21 Hot Topic A palavra-chave this é utilizada para acessar o parâmetro implícito. Exemplo de sua utilização public pessoa(String nome, double altura, double peso, int idade) { this.nome = nome; this.altura = altura; this.peso = peso; this.idade = idade; } Temos os parâmetros (nome, altura, peso, idade) iguais aos nomes dos atributos. Então, para não causar problema de referência (confusão do valor do parâmetro com o atributo), utiliza-se o this para que o java interprete de maneira correta. this.nome -> atributo nome do objeto.

22 Hot Topic Declaramos na classe Pessoa o atributo nome como public. Para efeitos de visibilidade, podemos acessar o atributo diretamente, ou seja, não utilizar os métodos getters e setters. Exemplo Pessoa p1 = new Pessoa(); p1.nome = João da Silva; Até o momento, estávamos utilizando p1.setNome(João da Silva); por questões de integridade dos dados. Dessa forma, podemos alterar um atributo sem utilizar métodos! PERIGOSO! Os modificadores private/protected/package/public permitem fazer isso (visibilidade). Como orientação, usaremos private para os atributos. Os demais atributos (altura, peso, idade) podem ser atribuídos dessa forma?

23 Métodos Referências bibliográficas HORSTMANN, C. Big Java. Bookman, DEITEL, H. M.; DEITEL, Paul J. Java: como programar. 6. ed. São Paulo: Pearson, 2006.


Carregar ppt "Programação I Aula 2 (Métodos) Prof. Gilberto Irajá Müller Última atualização 2/3/2009."

Apresentações semelhantes


Anúncios Google