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

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

MÉTODOS Dilvan Moreira (baseado no livro Big Java)

Apresentações semelhantes


Apresentação em tema: "MÉTODOS Dilvan Moreira (baseado no livro Big Java)"— Transcrição da apresentação:

1 MÉTODOS Dilvan Moreira (baseado no livro Big Java)

2 Lembrando: Objetos e Classes  Objeto: entidade que manipulamos nos programas (pela chamada de métodos)  Cada objeto pertence a uma classe. Por exemple, System.out pertençe a classe PrintStream

3 Lembrando: Métodos  Método: Sequência de instruções que acessam os dados de um objeto  Objetos são manipulados através de seus métodos  Classe: Define um conjunto de objetos com o mesmo comportamento (conjunto de métodos)  A classe determina quais métodos são permitidos String greeting = "Hello"; greeting.println() // Error greeting.length() // OK

4 Leitura  Primeira metade do capítulo 2 (1st Edition)  2.1 Using and Constructing Objects  2.2 Object Variables  2.3 Defining a Class  2.4 Testing a Class  2.5 Instance Fields  2.6 Constructors

5 Classe String  Representa cadeias de caracteres em Java  Classe muito importante dentro da linguagem

6 Alguns Métodos de Strings public String toUpperCase(); Retorna um novo objeto String idêntico ao corrente mas com todos os caracteres em maiúsculas. public int length(); Retorna o número de caracteres desse objeto String. public boolean equals( String otherString ); Retorna verdadeiro se esse objeto String é o mesmo que otherString e falso se não. public char charAt( int index ); Retorna o caractere da posição index desse objeto String (o primeiro caractere está na posição 0).

7 Mais Métodos de Strings public String replace(char oldChar, char newChar); Retorna um novo objeto String onde todas as instancias de oldChar foram mudadas para newChar. public String substring( int beginIndex, int endIndex ); Retorna um novo objeto String começando da posição beginIndex e terminando na posição endIndex Hello KermitFrog 0123456789111012131415 substring(4, 7) “o K” até o caracter antes de endIndex :

8 public class StringTest { public static void main (String[] args) { String firstname = new String ("Kermit"); String lastname = new String ("theFrog"); firstname = firstname.toUpperCase(); System.out.println("I am not " + firstname + " " + lastname); } Exemplo de uso de String  invocando métodos  objectName.methodName();  lembre que os indentificadores não podem ter o caracter ‘.’

9  A definição da classe diz que tipos de dados e métodos compõem um objeto  um objeto é uma instancia específica de uma classe String firstname = "Alphonse"; char thirdchar = firstname.charAt(2); objeto Métodos e Parâmetros

10 String firstname = "Alphonse"; char thirdchar = firstname.charAt(2); objeto método Métodos e Parâmetros  A definição da classe diz que tipos de dados e métodos compõem um objeto  um objeto é uma instancia específica de uma classe  métodos servem para manipular os objetos

11 String firstname = "Alphonse"; char thirdchar = firstname.charAt(2); objeto método parâmetro Métodos e Parâmetros  A definição da classe diz que tipos de dados e métodos compõem um objeto  um objeto é uma instancia específica de uma classe  métodos servem para manipular os objetos  informação é passada aos métodos por parâmetros entrada para a chamada do método diz ao método charAt qual caractere do objeto String nós estamos interessados

12 Parâmetros  Métodos podem ter múltiplos parâmetros  API especifica quantos e seus tipos  API – Application Programming Interface – Interface para programação de uma aplicação public String replace(char oldChar, char newChar); String animal = "mole"; animal.replace('m', 'v'); public String substring( int beginIndex, int endIndex ); animal = "aardwolf"; String newanimal = animal.substring(4,8); System.out.println(newanimal); // wolf

13 Parâmetros Explícitos vs. Implícitos  Parâmetros explícitos: dados entre parênteses  Parâmetros implícitos: o objeto a que o método pertence  Exemplo: o método substring precisa:  beginIndex, endIndex  mas também da string de onde a substring virá! animal = "aardwolf"; System.out.println(animal); // aardwolf String newanimal = animal.substring(4,8); System.out.println(newanimal); // wolf  TODOS os métodos só podem ter um único parâmetro implícito

14 Parâmetros  Na maioria das vezes quando falarmos parâmetros estamos nos referindo aos explícitos

15 Retornando Valores  Métodos podem ter valores de retorno  Exemplo: o método charAt retorna  valor de retorno, o caractere 'n', é armazenado em thirdchar String firstname = "kangaroo"; char thirdchar = firstname.charAt(2); return value object method parameter

16 Retornando Valores  Métodos podem ter valores de retorno  Exemplo: o método charAt retorna  valor de retorno, o caractere 'n', é armazenado em thirdchar String firstname = "kangaroo"; char thirdchar = firstname.charAt(2);  Nem todos os métodos tem valor de retorno  Exemplo: o método println não retorna nada  ele imprime 'n' no monitor, mas não o retorna System.out.println(thirdchar); return value object method parameter

17 Retornando Valores  A documentação da API te diz:  quantos parâmetros explícitos  se o método retorna algum valor  o que esse valor de retorno é, …  void indica que não há valor de retorno

18 Construtores e Parâmetros  Classes podem ter mais de um construtor, com diferentes parâmetros  use a API docs para escolher qual o mais apropriado animal = new String(); animal = new String("kangaroo");

19 Accessors e Mutators  Um métodos que apenas coleta dados é accessor  acesso apenas de leitura aos valores  exemplo: método charAt da classe String  Um método que muda os valores das variáveis internas do objeto é mutator  String class has no mutator methods  Accessor são frequentemente chamados getters  getWhatever  Mutators são frequentemente chamados setters  setWhatever

20 Conta Bancária  Usando o BlueJ teríamos esse arquivo montado para nós (retirados os comentários): public class BankAccount{ private int x; public BankAccount () { x = 0; } public int sampleMethod(int y) { return x + y; }

21 Conta Bancária – Por partes  Usando o BlueJ teríamos esse arquivo montado para nós (retirados os comentários): public class BankAccount { private int x; public BankAccount () { x = 0; } public int sampleMethod(int y) { return x + y; }  Mas vamos por partes...

22 Conta Bancária  Comportamento de uma conta:  depositar dinheiro  retirar dinheiro  ver saldo  Métodos da classe BankAccount:  deposit  withdraw  getBalance

23 Conta Bancária  Jeitão de uma classe: public class { }

24 Conta Bancária  Interface: conjunto de métodos de uma classe: public BankAccount() public BankAccount(double initialBalance) public void deposit(double amount) public void withdraw(double amount) public double getBalance()

25 Conta Bancária Transferindo dinheiro double amt = 500; momsSavings.withdraw(amt); harrysChecking.deposit(amt); Adicionando juros double rate = 0.05; // 5% double amt = acct.getBalance()*rate; acct.deposit(amt);

26 Conta Bancária - Variáveis /** Um conta bancária tem um saldo que pode ser mudado por depósitos e retiradas. */ public class BankAccount{ }

27 Conta Bancária - Variáveis public class BankAccount{ double balance; }

28 Conta Bancária - Construtores public class BankAccount{ double balance; public BankAccount() { balance = 0; }

29 Conta Bancária - Construtores public class BankAccount{ double balance; public BankAccount() { balance = 0; } public BankAccount(double initialBalance) { balance = initialBalance; }

30 Conta Bancária - depósito public class BankAccount{ double balance;... public void deposit(double amount) { double newBalance= balance + amount; balance = newBalance; }

31 Conta Bancária - Saque public class BankAccount{ double balance;... public void withdraw(double amount) { balance = balance - amount; }

32 Conta Bancária - Saldo public class BankAccount{ double balance;... public double getBalance() { return balance; }

33 Testando os métodos no BlueJ

34 Conta Bancária – Teste! public class BankAccount{ double balance; public static void main(String[] args){ BankAccount harrys = new BankAccount(); harrys.deposit(2000) harrys.withdraw(500) System.out.println(harrys.getBalance()); }

35 Escopo de variáveis  Cada variável só é válida dentro do bloco no qual é declarada: public void deposit(double amount) { double newBalance= balance + amount; balance = newBalance; }  Quando newBalance deixa de ser válida?

36 Tipos de variáveis Variáveis de instância (balance em BankAccount) Variáveis locais (newBalance no método deposit) Variáveis de parâmetros (amount no método deposit) public void deposit(double amount) { double newBalance= balance + amount; balance = newBalance; }

37 Parâmetros Explícitos e Implícito public void withdraw(double amount) { double newBalance = balance - amount; balance = newBalance; }  balance é a variável balance do objeco à esquerda do ponto: momsSavings.withdraw(500)  significa double newBalance = momsSavings.balance - amount; momsSavings.balance = newBalance;

38 Perguntas?

39 Colocando tudo junto: Exemplo com Complexos  Vamos criar um novo tipo/classe para Java  Java não tem um tipo para Números complexos:  a + bi  Vamos implementar operações básicas  Soma  Subtração  Vamos imprimir o número

40 Números Complexos  Usando o BlueJ teríamos esse arquivo montado para nós (retirados os comentários): public class Complex { private int x; public Complex() { x = 0; } public int sampleMethod(int y) { return x + y; }

41 Números Complexos  Usando o BlueJ teríamos esse arquivo montado para nós (retirados os comentários): public class Complex { private int x; public Complex() { x = 0; } public int sampleMethod(int y) { return x + y; }  Mas vamos por partes...

42 Números Complexos  Jeitão de uma classe: public class { }

43 Números Complexos public class Complex { }

44 Números Complexos public class Complex { double a, b; }

45 Números Complexos public class Complex { double a, b; public Complex(double x, double y) { a= x; b= y; }

46 Números Complexos public class Complex { double a, b; public Complex(double x, double y) { a= x; b= y; } public Complex add(Complex y) { Complex c= new Complex(0,0); c.a= a + y.a; c.b= b + y.b; return c; }

47 Números Complexos public class Complex { double a, b; public Complex(double x, double y) { a= x; b= y; }... public Complex sub(Complex y) { Complex c= new Complex(0,0); c.a= a - y.a; c.b= b - y.b; return c; }

48 Números Complexos public class Complex { double a, b; public Complex(double x, double y) { a= x; b= y; }... public String toString() { String c= a + “ “ + b + “I” return c; }

49 Números Complexos public class Complex { double a, b; public Complex(double x, double y) { a= x; b= y; }... public static void main(String[]) { Complex c= new Complex(1,2); Complex d= new Complex(3, 4); Complex e= c.add(d); System.out.println(“Resultado= “ + e); }

50 Programa  Implemente a classe Complex e teste com um programa main.  Teste soma e subtração  Inclua multiplicação  Teste novamente

51 Perguntas?


Carregar ppt "MÉTODOS Dilvan Moreira (baseado no livro Big Java)"

Apresentações semelhantes


Anúncios Google