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

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

Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias

Apresentações semelhantes


Apresentação em tema: "Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias"— Transcrição da apresentação:

1 Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias fabiodias@fgf.edu.br

2 Classes fornecem o benefício da reusabilidade Programadores podem utilizar a mesma classe diversas vezes para criar os objetos Classes e Objetos

3 Atributos de Objeto Métodos de Objeto Atributos de Classe (atributos estáticos)‏ Métodos de Classe (métodos estáticas)‏ Conteúdo da Classe

4 Para criar um objeto, ou uma instância de uma classe, utilizamos o operador new Para criar um objeto da classe String, escreve-se o seguinte código: String str2 = new String("Hello world!") ou String str = "Hello world!"; Instância de Classe

5 Operador new Aloca memória para um objeto e retorna uma referência Ao criar um objeto, invoca-se o construtor da classe Instância de Classe

6 Importantes na criação de um objeto É um método onde são colocadas todas as inicializações Possuem o mesmo nome da classe Não retornam valor Executados automaticamente na utilização do operador new durante a instanciação da classe Construtores

7 Exemplo public class Pessoa { private String nome; private int idade; public Pessoa(){ } public Pessoa(String nome){ this.nome = nome; } public Pessoa(String nome, int idade){ this.nome = nome; this.idade = idade; }

8 Quando não especificamos construtores, Java provê um construtor default para nossa classe: Toda classe precisa de um construtor. Se você não escreveu nenhum, Java provê um pra você; Sem parâmetros e sem implementação. Quando especificamos construtores, o construtor default não é provido automaticamente: Se você escreveu um construtor, Java assume que você sabe o que está fazendo e não provê um; Chamar o construtor sem o parâmetro gera erro se ele não for definido explicitamente. Construtor default

9 Podem ser cruzadas, o que significa que você pode chamar um construtor de dentro de outro construtor Deve sempre ocorrer na primeira linha de instrução Não pode ser usada fora de construtores. Utilizando a chamada this(); Construtores chamando construtores public Pessoa(String nome){ this.nome = nome; } public Pessoa(String nome, int idade){ this(nome); this.idade = idade; }

10 É uma parte separada do código que pode ser chamada pelo programa principal Pode ou não retornar valor Pode aceitar tantos argumentos quantos forem necessários Após o fim da execução de um método, o fluxo de controle é retornado a quem o chamou Métodos

11 Decomposição – É a chave para a solução de problemas A criação de métodos resolve uma parte específica do problema Separar o problema em partes menores e manuseáveis Porque usar Métodos?

12 * ( *) { * } Declarando Métodos Para definir um método, especificamos: Seu tipo de retorno; Seu nome; Seus parâmetros; Sua implementação;

13 Assinatura de um método Define o método de uma forma única; Em Java, o nome e os tipos de parâmetros de um método formam sua assinatura; Não pode haver dois métodos com a mesma assinatura na mesma classe (mesmo que o tipo de retorno seja diferente); Algumas linguagens incluem o tipo de retorno na assinatura. Java não o faz.

14 Sobrecarga de Métodos Permite método com o mesmo nome mais diferentes argumentos(assinatura), possa ter implementações diferentes e retornar valores de diferentes tipos. Pode ser usado quando a mesma operação tem implementações diferentes. Propriedades: mesmo nome; argumentos diferentes; tipo do retorno pode ser igual ou diferente;

15 Exemplo public void imprimir(String nome){ System.out.println("Nome: " + nome); } public void imprimir(String nome, int idade){ System.out.println("Nome: " + nome + " Idade: " + idade); } public void imprimir(int idade, String nome){ System.out.println("Nome: " + nome + " Idade: " + idade); }

16 partir do Java 5 se tornou possível definir métodos que recebem um número variável de argumentos; Parâmetros variáveis public class Teste { void imprimir(boolean msg, String... objs) { if (msg) System.out.println("Args:"); for (int i = 0; i < objs.length; i++) System.out.println(objs[i]); } public static void main(String[] args) { Teste teste = new Teste(); teste.imprimir(true, "Java", "Sun", "JCP"); }

17 Só pode haver uma lista de parâmetros variáveis na declaração do método; Deve ser a última a ser declarada; Funciona como um vetor do tipo declarado (no exemplo, vetor de String); Não há limite para o número de parâmetros; Também aceita zero parâmetros. Parâmetros variáveis teste.imprimir(false, "A", "B", "C", "D", "E"); teste.imprimir(true, "Um", "Dois"); teste.imprimir(false);

18 Múltiplos Comandos return Desde que eles não pertençam ao mesmo bloco Pode-se utilizar constantes para retornar valores, ao invés de atributos public String getNumberInWords(int num) { String defaultNum = "zero"; if (num == 1) { return "one"; } else if (num == 2) { return "two"; } return defaultNum; }

19 Chamando Métodos Estáticos Métodos que podem ser invocados sem que um objeto tenha sido instanciado pela classe (sem invocar a palavra chave new)‏ Pertencem à classe como um todo e não a uma instância (ou objeto) específica da classe São diferenciados dos métodos de instância pela declaração da palavra chave static na definição do método NomeClasse.nomeMetodoEstatico(argumentos);

20 Chamando Métodos Estáticos int i = Integer.parseInt("10"); String hexEquivalent = Integer.toHexString(i); System.out.println(hexEquivalent);

21 Exercícios 1. Procure pelo método que verifica se uma String termina com um determinado sufixo. Por exemplo, se a String dada é "Hello", o método deve retornar true se o sufixo informado é "lo", e false se o sufixo for "alp". 2. Procure pelo método que determina a representação do caractere para um dígito e base específicos. Por exemplo, se o dígito informado é 15 e a base é 16, o método retornará o caractere 'F', uma vez que 'F' é a representação hexadecimal para o número 15 em base 10. Dica: Todos os métodos estão no package java.lang.

22 Exercícios 1. Procure por um método que retorna a parte inteira de um valor double. Por exemplo, se a entrada for 3.13, o método deve retornar o valor 3. 2. Procure por um método que determina se um certo caractere é um dígito. Por exemplo, se a entrada for '3', retornará o valor true. 3. Procure por um método que interrompe a execução da Java Virtual Machine corrente. Dica: Todos os métodos estão no package java.lang.


Carregar ppt "Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias"

Apresentações semelhantes


Anúncios Google