SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Introdução à Análise Orientada a Objetos Prof. Ariovaldo Dias de Oliveira
Apresentações ,[object Object],[object Object]
Tópicos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Paradigmas de programação ,[object Object],[object Object],[object Object]
Paradigmas de programação ,[object Object],[object Object],[object Object],[object Object]
Comparação Procedural X OO Programa Classe Processos Propriedades Métodos Dados
Principais elementos da OO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Classes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Atributos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Métodos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo de uma Classe ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Em Java: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ao criarmos uma conta, devemos introduzir valores nos atributos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Podemos sacar e depositar um determinado valor, e isso é feito definindo-se dois métodos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
O programa principal deve ser alterado para ativar os métodos recém criados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
O método Saca deve verificar se o saque é possível, e  retornar  se a operação foi realizada com sucesso ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
O programa principal deve testar se o saque foi possível ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Representação da classe Conta em UML  Conta +número: int +nome:  String  +saldo:  double +limite:  double  +saca (valor: double): boolean +deposita(valor: double) Os sinais na frente dos nomes das variáveis ou dos nomes dos métodos significam
Acrescentar Método  transferePara  na classe Conta ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
No programa principal: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Segue...
boolean consegui = conta1.transferePara(conta2, 12000); if (consegui) { System.out.println("Saque realizado. Novo saldo conta1 = " + conta1.saldo); System.out.println("Novo saldo conta2 = " + conta2.saldo); } else { System.out.println("Saldo de " + conta1.saldo + " insuficiente"); } } }
Nova Representação da classe Conta em UML  Conta +número: int +nome:  String  +saldo:  double +limite:  double  +saca (valor: double): boolean +deposita (valor: double): +transferePara (destino: Conta, valor: double) : boolean
Nova Classe: Cliente ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Alterações na classe Conta: class Conta { int número; double saldo; double limite; Cliente titular = new Cliente ()  ; boolean  saca ...... ...... void deposita ...... ...... boolean  transferePara ..... ...... }
Alterações no programa principal: class Programa { public static void main (String [ ] args) { Conta conta1 = new Conta( ); conta1.titular.nome  = "João "; ...... conta2.titular.nome = " Maria "; ...... System.out.println("Titular da conta1 = " + conta1.titular.nome); System.out.println("Titular da conta2 = " + conta2.titular.nome);  } }
Representação UML das classes Conta e Cliente Conta +número: int +saldo:  double +limite:  double +titular:  Cliente  +saca (valor: double): boolean +deposita(valor: double) +transferePara (destino: Conta,  valor: double) : boolean Cliente +nome:  String +sobrenome: String  +endereço:  String +cpf:  String
Um sistema Orientado a Objetos é um grande conjunto de classes que vão se comunicar, delegando responsabilidade para quem for mais apto a realizar determinada tarefa. A classe  Banco  usa a classe  Conta , que usa a classe  Cliente , que usa a classe  Endereço , etc. Dizemos que esses objetos colaboram, trocando mensagens entre si. Por isso acabamos tendo muitas classes em nossos sistemas, e elas costuma ter um tamanho relativamente curto.
Encapsulamento ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
Classe Conta com atributos encapsulados  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Geters e Seters na classe Conta ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
No programa principal: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nova Representação UML das classes Conta e Cliente Conta +número: int +saldo:  double -limite:  double -titular:  Cliente  +saca (valor: double): boolean +deposita(valor: double) +transferePara (destino: Conta,  valor: double) : boolean +setSaldo(valor: double) +getSaldo ( ): double +setLimite(valor: double) +getLimite( ): double Cliente +nome:  String +sobrenome: String  +endereço:  String +cpf:  String
Atividade 1 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Referências ,[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

02 2 - modelagem er
02   2 - modelagem er02   2 - modelagem er
02 2 - modelagem erElton Costa
 
Lógica de Programação com Javascript - Aula #03
Lógica de Programação com Javascript - Aula #03Lógica de Programação com Javascript - Aula #03
Lógica de Programação com Javascript - Aula #03Ramon Kayo
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)Alex Camargo
 
Aula 2 Prof. MSc. Cloves Rocha - PIE - (2018.2) GTI 2 NA - POO
Aula 2 Prof. MSc. Cloves Rocha - PIE - (2018.2) GTI 2 NA - POOAula 2 Prof. MSc. Cloves Rocha - PIE - (2018.2) GTI 2 NA - POO
Aula 2 Prof. MSc. Cloves Rocha - PIE - (2018.2) GTI 2 NA - POOCloves da Rocha
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)Mario Sergio
 
Aula 2 Prof. MSc. Cloves Rocha BV - (2018.2) CCO 2 MA - POO
Aula 2 Prof. MSc. Cloves Rocha BV - (2018.2) CCO 2 MA - POOAula 2 Prof. MSc. Cloves Rocha BV - (2018.2) CCO 2 MA - POO
Aula 2 Prof. MSc. Cloves Rocha BV - (2018.2) CCO 2 MA - POOCloves da Rocha
 
Introdução a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetosCícero Quarto
 
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07Magic Software Brasil
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
 
Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Ramon Kayo
 

Was ist angesagt? (20)

Java13
Java13Java13
Java13
 
02 2 - modelagem er
02   2 - modelagem er02   2 - modelagem er
02 2 - modelagem er
 
Php02
Php02Php02
Php02
 
Lógica de Programação com Javascript - Aula #03
Lógica de Programação com Javascript - Aula #03Lógica de Programação com Javascript - Aula #03
Lógica de Programação com Javascript - Aula #03
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
 
Aula 2 Prof. MSc. Cloves Rocha - PIE - (2018.2) GTI 2 NA - POO
Aula 2 Prof. MSc. Cloves Rocha - PIE - (2018.2) GTI 2 NA - POOAula 2 Prof. MSc. Cloves Rocha - PIE - (2018.2) GTI 2 NA - POO
Aula 2 Prof. MSc. Cloves Rocha - PIE - (2018.2) GTI 2 NA - POO
 
Introdução ao PHP
Introdução ao PHPIntrodução ao PHP
Introdução ao PHP
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)
 
Aula 2 Prof. MSc. Cloves Rocha BV - (2018.2) CCO 2 MA - POO
Aula 2 Prof. MSc. Cloves Rocha BV - (2018.2) CCO 2 MA - POOAula 2 Prof. MSc. Cloves Rocha BV - (2018.2) CCO 2 MA - POO
Aula 2 Prof. MSc. Cloves Rocha BV - (2018.2) CCO 2 MA - POO
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 
Php 08 Oo
Php 08 OoPhp 08 Oo
Php 08 Oo
 
Introdução a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetos
 
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
Explorando a Integração com .NET com o Magic xpa – Magic Sem Segredos – S01E07
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 
Series lab
Series labSeries lab
Series lab
 
SCJA
SCJASCJA
SCJA
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02
 

Andere mochten auch

Palestra introdução a uml e casos de uso final_parte1
Palestra introdução a uml e casos de uso final_parte1Palestra introdução a uml e casos de uso final_parte1
Palestra introdução a uml e casos de uso final_parte1marcosdcmartinsss
 
Introdução à análise orientada a objetos parte 3
Introdução à análise orientada a objetos parte 3Introdução à análise orientada a objetos parte 3
Introdução à análise orientada a objetos parte 3ariovaldodias
 
Palestra introdução a uml e casos de uso final_parte2
Palestra introdução a uml e casos de uso final_parte2Palestra introdução a uml e casos de uso final_parte2
Palestra introdução a uml e casos de uso final_parte2marcosdcmartinsss
 
Uma experiência de formação de professores no uso
Uma experiência de formação de professores no usoUma experiência de formação de professores no uso
Uma experiência de formação de professores no usoCaroline Raquel Rodrigues
 
Introdução à Análise de redes: aspectos conceituais fundamentais para o analista
Introdução à Análise de redes: aspectos conceituais fundamentais para o analistaIntrodução à Análise de redes: aspectos conceituais fundamentais para o analista
Introdução à Análise de redes: aspectos conceituais fundamentais para o analistaDalton Martins
 
Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6ariovaldodias
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Introdução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte IIIntrodução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte IINécio de Lima Veras
 
Introdução a analise de sistemas i
Introdução a analise de sistemas iIntrodução a analise de sistemas i
Introdução a analise de sistemas iRay Fran Pires
 

Andere mochten auch (20)

Analise sistemas 03
Analise sistemas 03Analise sistemas 03
Analise sistemas 03
 
Análise de Sistemas Orientado a Objetos - 05
Análise de Sistemas Orientado a Objetos - 05Análise de Sistemas Orientado a Objetos - 05
Análise de Sistemas Orientado a Objetos - 05
 
Palestra introdução a uml e casos de uso final_parte1
Palestra introdução a uml e casos de uso final_parte1Palestra introdução a uml e casos de uso final_parte1
Palestra introdução a uml e casos de uso final_parte1
 
Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01
 
Introdução à análise orientada a objetos parte 3
Introdução à análise orientada a objetos parte 3Introdução à análise orientada a objetos parte 3
Introdução à análise orientada a objetos parte 3
 
Uml
UmlUml
Uml
 
Palestra introdução a uml e casos de uso final_parte2
Palestra introdução a uml e casos de uso final_parte2Palestra introdução a uml e casos de uso final_parte2
Palestra introdução a uml e casos de uso final_parte2
 
Uma experiência de formação de professores no uso
Uma experiência de formação de professores no usoUma experiência de formação de professores no uso
Uma experiência de formação de professores no uso
 
Analise sistemas 02
Analise sistemas 02Analise sistemas 02
Analise sistemas 02
 
Analise sistemas 07
Analise sistemas 07Analise sistemas 07
Analise sistemas 07
 
Analise sistemas 03
Analise sistemas 03Analise sistemas 03
Analise sistemas 03
 
Analise sistemas 01
Analise sistemas 01Analise sistemas 01
Analise sistemas 01
 
Introdução à Análise de redes: aspectos conceituais fundamentais para o analista
Introdução à Análise de redes: aspectos conceituais fundamentais para o analistaIntrodução à Análise de redes: aspectos conceituais fundamentais para o analista
Introdução à Análise de redes: aspectos conceituais fundamentais para o analista
 
Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Introdução à UML com Casos de Uso
Introdução à UML com Casos de UsoIntrodução à UML com Casos de Uso
Introdução à UML com Casos de Uso
 
Analise sistemas 04
Analise sistemas 04Analise sistemas 04
Analise sistemas 04
 
Introdução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte IIIntrodução à Análise de Sistemas - Parte II
Introdução à Análise de Sistemas - Parte II
 
UML
UMLUML
UML
 
Introdução a analise de sistemas i
Introdução a analise de sistemas iIntrodução a analise de sistemas i
Introdução a analise de sistemas i
 

Ähnlich wie Introdução à Análise Orientada a Objetos

Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosArthur Emanuel
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e ExercíciosArthur Emanuel
 
introdução a linguagem java-2003
introdução a linguagem java-2003introdução a linguagem java-2003
introdução a linguagem java-2003elliando dias
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 
ORM: Sendo produtivo com NHibernate
ORM: Sendo produtivo com NHibernateORM: Sendo produtivo com NHibernate
ORM: Sendo produtivo com NHibernateJuliano Oliveira
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoPaulo Morgado
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Construtores_Sobrecarga.pptx
Construtores_Sobrecarga.pptxConstrutores_Sobrecarga.pptx
Construtores_Sobrecarga.pptxJoberthSilva
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.xNorton Guimarães
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens PooInfogenius
 

Ähnlich wie Introdução à Análise Orientada a Objetos (20)

POO.pdf
POO.pdfPOO.pdf
POO.pdf
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a Objetos
 
05 poo-ii
05   poo-ii05   poo-ii
05 poo-ii
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 
Diagramadeclassesal
DiagramadeclassesalDiagramadeclassesal
Diagramadeclassesal
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
introdução a linguagem java-2003
introdução a linguagem java-2003introdução a linguagem java-2003
introdução a linguagem java-2003
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
ORM: Sendo produtivo com NHibernate
ORM: Sendo produtivo com NHibernateORM: Sendo produtivo com NHibernate
ORM: Sendo produtivo com NHibernate
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
 
POO - Aula 003
POO - Aula 003POO - Aula 003
POO - Aula 003
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Construtores_Sobrecarga.pptx
Construtores_Sobrecarga.pptxConstrutores_Sobrecarga.pptx
Construtores_Sobrecarga.pptx
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
TESTE
TESTETESTE
TESTE
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.x
 
Lista 2 1 java
Lista 2 1 javaLista 2 1 java
Lista 2 1 java
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 

Introdução à Análise Orientada a Objetos

  • 1. Introdução à Análise Orientada a Objetos Prof. Ariovaldo Dias de Oliveira
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Comparação Procedural X OO Programa Classe Processos Propriedades Métodos Dados
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. boolean consegui = conta1.transferePara(conta2, 12000); if (consegui) { System.out.println("Saque realizado. Novo saldo conta1 = " + conta1.saldo); System.out.println("Novo saldo conta2 = " + conta2.saldo); } else { System.out.println("Saldo de " + conta1.saldo + " insuficiente"); } } }
  • 23. Nova Representação da classe Conta em UML Conta +número: int +nome: String +saldo: double +limite: double +saca (valor: double): boolean +deposita (valor: double): +transferePara (destino: Conta, valor: double) : boolean
  • 24.
  • 25. Alterações na classe Conta: class Conta { int número; double saldo; double limite; Cliente titular = new Cliente () ; boolean saca ...... ...... void deposita ...... ...... boolean transferePara ..... ...... }
  • 26. Alterações no programa principal: class Programa { public static void main (String [ ] args) { Conta conta1 = new Conta( ); conta1.titular.nome = "João "; ...... conta2.titular.nome = " Maria "; ...... System.out.println("Titular da conta1 = " + conta1.titular.nome); System.out.println("Titular da conta2 = " + conta2.titular.nome); } }
  • 27. Representação UML das classes Conta e Cliente Conta +número: int +saldo: double +limite: double +titular: Cliente +saca (valor: double): boolean +deposita(valor: double) +transferePara (destino: Conta, valor: double) : boolean Cliente +nome: String +sobrenome: String +endereço: String +cpf: String
  • 28. Um sistema Orientado a Objetos é um grande conjunto de classes que vão se comunicar, delegando responsabilidade para quem for mais apto a realizar determinada tarefa. A classe Banco usa a classe Conta , que usa a classe Cliente , que usa a classe Endereço , etc. Dizemos que esses objetos colaboram, trocando mensagens entre si. Por isso acabamos tendo muitas classes em nossos sistemas, e elas costuma ter um tamanho relativamente curto.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. Nova Representação UML das classes Conta e Cliente Conta +número: int +saldo: double -limite: double -titular: Cliente +saca (valor: double): boolean +deposita(valor: double) +transferePara (destino: Conta, valor: double) : boolean +setSaldo(valor: double) +getSaldo ( ): double +setLimite(valor: double) +getLimite( ): double Cliente +nome: String +sobrenome: String +endereço: String +cpf: String
  • 35.
  • 36.