CONSTRUINDO CLASSES Dilvan Moreira (baseado no livro Big Java)
Leitura Capítulo 2 (1st Edition)
Lembrando: Conta Bancária - Variáveis /** Um conta bancária tem um saldo que pode ser mudado por depósitos e retiradas. */ public class BankAccount{ }
Lembrando: Conta Bancária - Variáveis public class BankAccount{ double balance; }
Lembrando: Conta Bancária - Construtores public class BankAccount{ double balance; public BankAccount() { balance = 0; }
Lembrando: Conta Bancária - Construtores public class BankAccount{ double balance; public BankAccount() { balance = 0; } public BankAccount(double initialBalance) { balance = initialBalance; }
Lembrando: Conta Bancária - depósito public class BankAccount{ double balance;... public void deposit(double amount) { double newBalance= balance + amount; balance = newBalance; }
Lembrando: Conta Bancária - Saque public class BankAccount{ double balance;... public void withdraw(double amount) { balance = balance - amount; }
Lembrando: Conta Bancária - Saldo public class BankAccount{ double balance;... public double getBalance() { return balance; }
Lembrando: Conta Bancária - Saldo public class BankAccount{ double balance;... public double getBalance() { return balance; }
Comportamento: Transferência Comportamento de uma conta: transferência entre contas Métodos da classe BankAccount: transferTo Interface: public void transferTo(BankAccount b, double x) Transferindo dinheiro BankAccount harry= new BankAccount(100); momsSavings.transferTo(harry, 200); System.out.println(harry.getBalance()); // 300
Conta Bancária – Transferência public class BankAccount{... public void transferTo(BankAccount b, double x){ }
Conta Bancária – Transferência public class BankAccount{... public void transferTo(BankAccount b, double x){ balance= balance – x; }
Conta Bancária – Transferência public class BankAccount{... public void transferTo(BankAccount b, double x){ balance= balance – x; b.balance= b.balance + x; }
Conta Bancária – this public class BankAccount{... public void transferTo(BankAccount b, double x){ this.balance= this.balance – x; b.balance= b.balance + x; }
Conta Bancária – this public class BankAccount{... public void transferTo(BankAccount b, double x){ this.balance= this.balance – x; b.balance= b.balance + x; } this se refere ao objeto corrente Útil quando uma das variáveis tem o mesmo nome que um parâmetro public void transferTo(BankAccount b, double balance){ this.balance= this.balance – balance; b.balance= b.balance + balance; }
Conta Bancária – Teste transferTo! public class BankAccount{ double balance;... public static void main(String[] args){ BankAccount mom= new BankAccount(2000); BankAccount harrys = new BankAccount(1); mom.transferTo(harrys, 200) System.out.println(mom.getBalance()); }
Entrada pelo Teclado Usuário usa o teclado para digitar algo: programa guarda entrada em variável Quer uma classe para fazer isso? Sempre procure uma classe já pronta primeiro A classe Scanner faz isso java.util.Scanner melhor que System.in, o análogo de System.out
import java.util.Scanner; public class Echo { public static void main (String[] args) { String message; Scanner scan = new Scanner (System.in); System.out.println ("Enter a line of text: "); message = scan.nextLine(); System.out.println ("You entered: \"" + message + "\""); } Exemplo Scanner Class
import java.util.Scanner; public class Echo { public static void main (String[] args) { String message; Scanner scan = new Scanner (System.in); System.out.println ("Enter a line of text: "); message = scan.nextLine(); System.out.println ("You entered: \"" + message + "\""); } Exemplo Scanner Class Importe Scanner class do pacote java.util
Importando Pacotes Coleção de classes são agrupadas em pacotes tell Java which packages to keep track of with import statement Cheque a API Java para encontrar que pacotes contém a classe correta para você Você não precisa importar String, System.out, etc porque classes básicas, que ficam no pacote java.lang são importadas automaticamente
import java.util.Scanner; public class Echo { public static void main (String[] args) { String message; Scanner scan = new Scanner (System.in); System.out.println ("Enter a line of text: "); message = scan.nextLine(); System.out.println ("You entered: \"" + message + "\""); } Exemplo Scanner Class Declara variável string para ser guardar os caracteres que o usuário digita.
import java.util.Scanner; public class Echo { public static void main (String[] args) { String message; Scanner scan = new Scanner (System.in); System.out.println ("Enter a line of text: "); message = scan.nextLine(); System.out.println ("You entered: \"" + message + "\""); } Exemplo Scanner Class Construtor cria objeto Scanner pode ter qualquer nome, como keyboardStuff ou foo
import java.util.Scanner; public class Echo { public static void main (String[] args) { String message; Scanner scan = new Scanner (System.in); System.out.println ("Enter a line of text: "); message = scan.nextLine(); System.out.println ("You entered: \"" + message + "\""); } Exemplo Scanner Class Pede entrada di usuário
import java.util.Scanner; public class Echo { public static void main (String[] args) { String message; Scanner scan = new Scanner (System.in); System.out.println ("Enter a line of text: "); message = scan.nextLine(); System.out.println ("You entered: \"" + message + "\""); } Exemplo Scanner Class nextLine ler tudo que for digitado até um Enter retorna uma longa string de caracteres
import java.util.Scanner; public class Echo { public static void main (String[] args) { String message; Scanner scan = new Scanner (System.in); System.out.println ("Enter a line of text: "); message = scan.nextLine(); System.out.println ("You entered: \"" + message + "\""); } Exemplo Scanner Class Imprime tudo que foi digitado
Perguntas?