Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouLorena de Mendonça Ramires Alterado mais de 8 anos atrás
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?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.