revisão poo profa. cintia carvalho oliveira doutoranda em ciÊncia da computaÇÃo – ufu mestre...

45
Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO - UFJF

Upload: internet

Post on 18-Apr-2015

125 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Revisão POOPROFA. CINTIA CARVALHO OLIVEIRADOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU

MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU

BACHAREL EM CIÊNCIA DA COMPUTAÇÃO - UF JF

Page 2: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Pacotes Em geral, quando desenvolvemos pequenas aplicações, pode ser viável manter o código em um mesmo diretório.

Em aplicações maiores sugere-se que o código seja agrupado, de forma que as classes relacionadas fiquem em um mesmo diretório.

Esses diretórios - juntamente com os arquivos dentro deles - são chamados de pacotes

Supondo que uma classe chamada Pessoa pertença ao pacote br.com.nomeempresa.nomeprojeto, então seu nome completo será br.com.nomeempresa.nomeprojeto.Pessoa

Page 3: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Pacotes Para indicar que um arquivo fonte Java pertence a um dado pacote, a primeira linha de código deste arquivo deve ser a declaração:

package br.com.nomeempresa.nomeprojeto

Para referenciar uma classe de um pacote, é possível usar o nome completo da classe:

import br.com.nomeempresa.nomeprojeto.Pessoa

Page 4: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Import Para Scanner temos que escrever:

◦ import java.util.Scanner;

Por que não fizemos o mesmo com a classe System, String?

• System e String estão no pacote java.lang, que é implicitamente importado em todo programa Java

Page 5: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Import Não precisamos importar a biblioteca Scanner, é só utilizar o nome

da classe totalmente qualificado, exemplo:

Java.util.Scanner input = new java.util.Scanner(System.in);

Qual você prefere?

Page 6: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Diagrama de Classe UML Um dos mais importantes produtos das fases da análise e projeto orientados a objetos é o modelo de domínio da aplicação.

Para representar esse modelo a Linguagem de Modelagem Unificada (UML) é uma das ferramentas que podemos adotar.

A UML permite expressar o modelo de domínio em um diagrama de classes.

Page 7: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Diagrama de Classe Uma classe descreve um grupo de objetos com características e comportamento similares, relacionamentos comuns com outros objetos e semântica comum.

As características dos objetos são descritas pelos atributos e o comportamento é definido pelos métodos.

Page 8: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO
Page 9: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Classe Empregado

Page 10: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Modificadores de acesso Classe sem modificador de acesso. Pouco seguro.

Suponha que qualquer objeto pudesse ter acesso ao atributo saldo de uma instância de ContaCorrente. Dessa forma, seria possível modificar o saldo de uma conta sem necessidade de fazer um depósito, por exemplo

De maneira a ajudar na tarefa de estabelecer esses limites, tanto os atributos quanto os métodos podem ter modificadores de acesso, que podem ser:

Page 11: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Modificadores de acesso public – atributos e métodos podem ser acessados por qualquer outro objeto.

private – os membros da classe não são acessíveis por qualquer outro objeto.

protected - membros que recebem esse modificador podem ser acessados fora do pacote apenas por objetos de classes que derivem desta através de herança;

default - não é exatamente um modificador, mas sim um nível de acesso. Permite visibilidade apenas dentro do pacote. Não exige um modificador explícito.

Page 12: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Encapsulamento Os atributos não devem ser visíveis fora da classe e não se deve conhecer detalhes da implementação dos seus métodos. Essa prática recebe o nome de encapsulamento.

Ou seja, devemos construir uma classe de forma que o usuário tenha acesso apenas ao seu conjunto de métodos - chamado de interface.

Este conceito não deve ser confundido com o tipo abstrato interface, o qual define métodos que uma classe deve implementar. O tipo interface é definido como se fosse uma classe sem atributos e cujos métodos possuem apenas a assinatura.

Page 13: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Encapsulamento Se você estiver usando o NetBeans, selecione no menu Refatorar > Encapsular campos. Na janela que será aberta, pressione o botão Selecionar tudo. Na opção Javadoc você pode escolher se deseja comentários ou não.

Os getters são métodos de leitura dos campos e os setters são os métodos de escrita. Esses métodos também são chamados de accessors e mutators, respectivamente.

A palavra-chave this é usada para referenciar membros da instância corrente. Ou seja, this refere-se ao objeto que está executando o código onde esta palavra-chave pode ser vista.

Page 14: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Modificadores de Classes Além do modificador public podem ser usados final e abstract.

final - a classe não pode ser estendida (herdada). Em alguns casos isso pode ser necessário. Por exemplo, String é uma classe de Java definida como final.

◦ Imagine a confusão que seria se os programadores pudessem estender String e redefinir seu comportamento.

abstract - Uma classe que tem esse modificador é chamada abstrata e não pode ser instanciada, ou seja, você não pode criar um objeto a partir dela.

Page 15: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Construtores Os objetos são construídos utilizando a palavra-chave new. Quando usamos este termo, é executado um código que chamamos de construtor.

Para que os objetos sejam instanciados, toda classe deve possuir, no mínimo, um construtor.

Se o desenvolvedor não o criar explicitamente, o compilador cria um sem argumentos, que é denominado construtor padrão.

Page 16: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Construtores O construtor se assemelha a um método, com a diferença fundamental que um construtor não tem tipo de retorno.

Eles devem ter exatamente o mesmo nome da classe onde são declarados e eventualmente podem ter os mesmos modificadores de acesso a membros.

Em geral os construtores são usados para inicializar o estado das variáveis de instância. Caso não seja feito o compilador define valores padrão de acordo com o tipo de dado.

Page 17: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO
Page 18: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Construtor da classe Empregado

Page 19: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Construtores Uma classe pode ter mais de um construtor. Isso é bastante comum e é chamado sobrecarga.

É aconselhável que a classe tenha um construtor sem argumentos.

Importante quando é necessário estender a classe. Os construtores da subclasse, implicitamente, fazem uma chamada ao construtor sem argumentos da classe mãe

Page 20: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO
Page 21: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Programa

Page 22: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Modificadores de membros não referentes a acesso

final – declaração de constante.◦ métodos declarados como final não podem ser sobrescritos nas subclasses. Essa restrição garante que

um método não será substituído, oferecendo certa segurança à sua implementação.

static - Membros de uma classe podem ser declarados como static quando seu comportamento ou valor não dependem do estado de um objeto.

◦ Membros declarados como static pertencem à classe, em vez de a uma instância. ◦ Um exemplo: o método main() é o ponto de entrada para um programa Java, e a JVM o executa

implicitamente sem que seja necessário instanciar um objeto.

Page 23: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO
Page 24: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Relacionamento entre classes Relacionamento entre classes:

◦ Um cliente compra produtos em uma loja e é atendido por um vendedor, um aluno cursa uma disciplina que é ministrada por um professor.

Duas classes podem se relacionar através de composição, agregação, associação e generalização/especialização.

◦ Composição e agregação são os relacionamentos todo-parte, onde um objeto é parte de outro, como no caso em que Monitor é parte de Computador.

◦ Quando um objeto utiliza outro, dizemos que isso é uma associação, tal como Professor ministra Disciplina

◦ A generalização/especialização ocorre quando um objeto herda características e comportamento de outro (herança), como no caso de Cachorro é um Anima

Page 25: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Agregação:◦ É parte ou está contida em

Composição:◦ Uma classe que está contida

na outra "vive" e constitui a outra. Se o objeto da classe que contém for destruído, as classes da agregação de composição serão destruídas juntamente, já que as mesmas fazem parte da outra

Page 26: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Herança

Page 27: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Relacionamento entre classes

Page 28: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Relacionamento TEM _ UM

Page 29: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Relacionamento TEM-UM

Page 30: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Main

Page 31: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Relacionamento É-UM O relacionamento generalização/especialização ocorre quando uma classe B é um subtipo de outra, A. A esse relacionamento chamamos comumente de herança.

Page 32: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Herança A palavra-chave super é usada para referenciar membros da superclasse.

Toda classe em Java É-UM Object. Object é uma classe da API que é superclasse de todas as classes existentes em Java ou daquelas que são criadas pelo desenvolvedor

Quando, na definição da classe, não for especificada uma superclasse - através do uso de extends - o compilador assume que a superclasse é Object.

Professor estende Pessoa, que por sua vez estende Object.

Todo construtor invoca o construtor de sua superclasse com uma chamada implícita a super().

Page 33: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Sobreposição Podemos no Java redefinir um método definido em uma superclasse em uma de suas subclasses.

Este mecanismo é denominado sobreposição

Vamos analisar um exemplo:

Page 34: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Sobreposição

Page 35: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Polimorfismo O Java permite tratar objetos das classes derivadas de forma genérica.

Utilizamos a sobreposição de um método, ou seja, efetuamos a redefinição de um método definido em uma superclasse em uma de suas subclasses.

Java disponibiliza o polimorfismo em tempo de execução, pois possibilita referenciar um objeto de uma classe derivada utilizando para tal uma referência para um objeto da classe base.

Page 36: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO
Page 37: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO
Page 38: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Descobrir para onde aponta

Page 39: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO
Page 40: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Regras para construtores Se você criar um construtor com argumentos e precisar de um sem argumentos, então você terá que criá-lo; (Boa prática)

A primeira instrução de um construtor deve ser uma chamada a super() ou a um construtor sobrecarregado - por meio de uma chamada a this();

Se você definir um construtor e não inserir uma chamada a this() ou a super(), o compilador irá inserir automaticamente uma chamada a super(), sem argumentos;

Uma chamada a super() pode incluir argumentos, que são passados ao construtor da superclasse;

Um construtor não pode ser chamado a partir de um método.

Page 41: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

PREVIEW – Interfaces Gráficas

Caixas de Diálogos

javax.swing -> Possui muitas classes para criar interfaces gráficas com usuário (graphical user interface – GUIs)

Page 42: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO
Page 43: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Ex 4 – valor 1 pt Escreva uma classe Java, Vendedor, que tenha como atributos nome completo (String), total de vendas (double) e salário (double). Para calcular o total de vendas o usuário deverá entrar com uma venda de cada vez e calcular o total.

A classe deverá gerar o salário do vendedor, cada vendedor recebe R$ 600 por mês e mais 9% de suas vendas. O vendedor com mais vendas receberá um bônus de R$ 200,00, o vendedor com menos vendas deverá ser advertido.

Escreva uma classe Java, VendedorTeste que solicite que entre com os dados dos vendedores da empresa (repetição controlada por sentinela), e as vendas (repetição controlada por sentinela). O programa deverá imprimir o nome, total de vendas e salário de cada vendedor, e indicar o vendedor vencedor e o qual será advertido.

Page 44: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

Instanciar melhor_vend, pior_vend, vend do tipo Vendedor

<contador_vend> = 1;

Deseja inserir dados de um novo vendedor? s ou n

Novo = s ou n

Enquanto novo igual a s faça

digite o nome do funcionario -> var nome

<contador> = 1

entre com a <contador>ª venda, -1 para sair -> var venda

total = total + venda

<contador>++

entre com a <contador>ª venda, -1 para sair

salario = 9% do total + 900

:: setNome, setTotal, setSalario de vend

se <contador_vend> == 1

melhor e pior vendedor = vend

senão

se vend.total>melhor_vend.total

imprime dados de melhor

melhor = vend

senão, se vend.total<pior_vend

imprime dados de pior

pior = vend

senão imprime dados de vend

<contador_vend>++

Page 45: Revisão POO PROFA. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO – UFU MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO

1ª Parte do Trabalho Final◦ As equipes deverão entregar, por escrito ou impresso, a descrição do sistema que irão implementar e o

diagrama de classes em UML