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

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

Orientação a Objetos Classes

Apresentações semelhantes


Apresentação em tema: "Orientação a Objetos Classes"— Transcrição da apresentação:

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.


Carregar ppt "Orientação a Objetos Classes"

Apresentações semelhantes


Anúncios Google