Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Orientação a Objetos Classes
Capítulos 5 e 6 Orientação a Objetos Classes
2
Orientação a Objetos Classe e Objeto Atributos Valor null
Métodos (recapitulação) Encapsulamento Cláusula this Diagrama de classe Relacionamento “tem-um”
3
Exemplo de classe em Java
public class Conta { public int numero; public String nome; public double saldo; } Na aplicação principal: Conta c1; c1 = new Conta(); Conta c2 = new Conta(); c1.numero = 5003; c1.nome = "Manuel"; c1.saldo = 800.0; c2.numero = 5004; c2.nome = "Joaquim"; c2.saldo = 650.0;
4
Classe e Objeto public class Conta { public int numero; public String nome; public double saldo; } Conta (Classe) Conta c1 = new Conta(); c1.numero = 5003; c1.nome = "Manuel"; c1.saldo = 800.0; instanciação c1 (Objeto)
5
Atributos (membros de dados)
public class Conta { public int numero; public String nome; public double saldo; } Atributos
6
Objeto (instância) Variável (Contém o objeto) Instanciação (criação do objeto) Conta c1 = new Conta(); c1.numero = 5003; c1.nome = "Manuel"; c1.saldo = 800.0;
7
Valor null Conta c1 = null; . . . . . . if (c1 == null) {
c1 = new Conta(); } c1.numero = 5003; c1.nome = "Manuel“; c1.saldo = 800.0;
8
Exercício Capítulo 6 – laboratório 1
9
Métodos (membros de ação)
public class Conta { public int numero; public String nome; public double saldo; public void depositar (double v) { saldo += v; } public void retirar (double v) { saldo -= v; } } Na aplicação principal: Conta c1 = new Conta(); c1.numero = 5003; c1.nome = "Manuel"; c1.saldo = 800.0; c1.depositar(150.0); c1.retirar(300.0);
10
Sobrecarga de métodos public class Conta { public int numero; public String nome; public double saldo = 0; /** Retira o valor especificado */ public void retirar (double v) { if (v <= saldo) saldo -= v; else System.err.println("Saldo insuficiente"); } /** Retira todo o valor do saldo */ public void retirar () { saldo = 0; } }
11
Sobrecarga de métodos Na aplicação principal:
Conta c1 = new Conta(); c1.depositar(700.0); c1.retirar(300.0); System.out.print("Saldo: "); System.out.print(c1.getSaldo()); c1.retirar(); System.out.print("Saldo: "); System.out.print(c1.getSaldo());
12
Exercício Capítulo 7 – laboratório 1
13
(inacessível fora da classe)
Encapsulamento public class Conta { public int numero; public String nome; private double saldo; public void depositar (double v) { saldo += v; } public void retirar (double v) { if (v <= saldo) saldo -= v; else System.out.println("Saldo insuficiente"); } public double getSaldo () { return saldo; } } Membro privado (inacessível fora da classe)
14
Encapsulamento Na aplicação principal:
Conta c1 = new Conta(); c1.numero = 5003; c1.nome = "Manuel"; c1.saldo = 800.0; c1.depositar(420.0); c1.retirar(300.0); System.out.print("Saldo atual: "); System.out.print(c1.getSaldo()); Inacessível
15
Modificadores public e private
Modificador de acesso que torna o membro da classe visível e utilizável por qualquer outra classe da aplicação. private Modificador de acesso que torna o membro da classe restrito para uso interno da própria classe. Membros privados são inacessíveis fora da classe.
16
Terminologia get/set public class Conta { private int numero; private String nome; private double saldo; public int getNumero () { return numero; } public void setNumero (int n) { numero = n; } public String getNome () { return nome; } public void setNome (String n) { nome = n; } public double getSaldo () { return saldo; } }
17
Todos são privados (private)
Terminologia get/set public class Conta { private int numero; private String nome; private double saldo; public int getNumero () { return numero; } public void setNumero (int n) { numero = n; } public String getNome () { return nome; } public void setNome (String n) { nome = n; } public double getSaldo () { return saldo; } } Membros de dados Todos são privados (private)
18
Não possuem parâmetros
Terminologia get/set public class Conta { private int numero; private String nome; private double saldo; public int getNumero () { return numero; } public void setNumero (int n) { numero = n; } public String getNome () { return nome; } public void setNome (String n) { nome = n; } public double getSaldo () { return saldo; } } Métodos get São públicos (public) Retornam um valor Não possuem parâmetros
19
Terminologia get/set Métodos set São públicos (public)
public class Conta { private int numero; private String nome; private double saldo; public int getNumero () { return numero; } public void setNumero (int n) { numero = n; } public String getNome () { return nome; } public void setNome (String n) { nome = n; } public double getSaldo () { return saldo; } } Métodos set São públicos (public) Não retornam valor (void) Possuem um único parâmetro
20
Terminologia get/set Na aplicação principal:
Conta c1 = new Conta(); c1.setNumero(5003); c1.setNome("Manuel"); c1.depositar(420.0); c1.retirar(300.0); System.out.print("Saldo atual: " + c1.getSaldo());
21
Cláusula this Variável local Atributo public class Conta { . . . . .
private int matricula = 18; public void calculaAlgo() { int matricula = 32; System.out.println(matricula); System.out.println(this.matricula); } Variável local Atributo A palavra-chave this força o java a enxergar a variável como um membro da classe.
22
Diagrama de classe Nome da classe Membros de dados atributos
Conta numero : int nome : String saldo : double getNumero() setNumero(int) getNome() setNome(String) getSaldo() depositar(double) retirar(double) Membros de dados atributos Membros de ação métodos
23
Relacionamento “tem-um”
Cliente cpf : String nome : String endereco : String conta : Conta getCpf() setCpf(String) getNome() setNome(String) getEndereco() setEndereco(String) getConta() setConta(Conta) Conta numero : int saldo : double getNumero() setNumero(int) getSaldo() depositar(double) retirar(double)
24
Relacionamento “tem-um”
public class Cliente { private Conta conta; public Conta getConta () { return conta; } public void setConta (Conta c) { conta = c;
25
Relacionamento “tem-um”
Na aplicação principal: Conta con = new Conta(); con.setNumero(5003); con.depositar(300.0); Cliente cli = new Cliente(); cli.setCpf(" "); cli.setNome("Manuel da Silva"); cli.setConta(con); String nome = cli.getNome(); double saldo = cli.getConta().getSaldo(); System.out.print("Saldo do cliente " + nome + ": " + saldo );
26
Exercício Capítulo 6 – laboratório 1 reformulado
Alterar a classe Cliente utilizando o padrão get/set; A classe Cadastro deverá preencher as instâncias de Cliente através dos métodos set; Para exibir os dados das instâncias, a classe Cadastro deverá utilizar os métodos get da classe Cliente.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.