![Page 1: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/1.jpg)
Lab de Programação de sistemas I
Apresentação
Prof Daves MartinsMsc Computação de Alto Desempenho
Email: [email protected]
![Page 2: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/2.jpg)
Agenda
Orientação a Objetos – Conceitos e Práticas
Programação OO
Java Web
![Page 3: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/3.jpg)
Considerações Importantes
• Disciplina 72h/a
• Faltas - 25% - 18 faltas;
![Page 4: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/4.jpg)
Avaliação
• T1 - Trabalhos: (1 trabalhos práticos) (100 pts)
• P1 - Prova (2 Provas práticos) (100 pts)
• Nota Final = (T1 + P1 + P2 )
3
![Page 5: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/5.jpg)
Referências BibliográficasBibliografiaDEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003
KATHY SIERRA BERT BATES, Use a Cabeça! Java, 1ª Edição. Alta Books, 2005
Outras ReferênciasDocumentação on-line disponível em http://java.sun.com/Programação Orientada a Objetos com Java. Uma introdução prática usando o BlueJ. David J. Barnes , Michael Kölling. Editora: Pearson Prentice HallBluej: www.bluej.org
![Page 6: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/6.jpg)
Ferramentas Necessárias para Aula
Java Jdk 1.8
BlueJ
Netbeans 8
Mysql (Xampp, wampp, easyPhp, etc)
![Page 7: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/7.jpg)
Metodologia
Aulas teóricas e práticas, idealmente alternadas
Projeto de disciplina
![Page 8: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/8.jpg)
O paradigma da Orientação a Objetos
Um paradigma é uma forma de abordar um problema.
O paradigma da orientação a objetos surgiu no fim dos anos 60.
Hoje em dia, praticamente suplantou o paradigma anterior, o paradigma estruturado...
![Page 9: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/9.jpg)
O paradigma da Orientação a Objetos
Alan Kay, um dos pais do paradigma da orientação a objetos, formulou a chamada analogia biológica.
“Como seria um sistema de software que funcionasse como um ser vivo?
![Page 10: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/10.jpg)
O paradigma da Orientação a Objetos
Cada “célula” interagiria com outras células através do envio de mensagens para realizar um objetivo comum.
Adicionalmente, cada célula se comportaria como uma unidade autônoma.
De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagem entre si.
Com isso, ele estabeleceu os princípios da orientação a objetos.
![Page 11: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/11.jpg)
Orientação a Objetos - Princípios
Tudo é um objeto.
Pense em um objeto como uma super variável: ele armazena dados, mas você também pode fazer requisições a esse objeto, pedindo que ele faça operações sobre si próprio. Em teoria, você pode representar qualquer elemento conceitual no problema que você está tentando resolver (cachorros, livros, sócios, empréstimos, etc.) como um objeto no seu programa.
![Page 12: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/12.jpg)
Orientação a Objetos - Princípios
Um programa é uma coleção de objetos dizendo uns aos outros o que fazer.
Para fazer uma requisição a um objeto você “manda uma mensagem” para este objeto. Mais concretamente, você pode pensar em uma mensagem como sendo uma chamada de um procedimento ou função pertencente a um objeto em particular.
![Page 13: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/13.jpg)
Orientação a Objetos e Java
![Page 14: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/14.jpg)
Características imperativas básicas de Java
Estrutura de um ProgramaTipos Primitivos
Estruturas de Controle
![Page 15: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/15.jpg)
Estrutura mínima de um programa em Java
class <nome> {
public static void main (<parametro>) { <declarações>
<comandos>} }
Onde main: método por onde se inicia a execução
public: qualificador de acessostatic: indica que main se aplica à
classevoid: indica que main não retorna
um valor
![Page 16: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/16.jpg)
Exemplo
import java.util.Scanner;class LeImprime {
/** Lê e imprime um string */public static void main (String[] args) {
Scanner le = new Scanner(System.in);String nome;nome = le.next();System.out.println (nome);
}}
![Page 17: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/17.jpg)
Tipos Primitivos
boolean true ou false
char caracteres (Unicode)
byte inteiro (8 bits)
short inteiro (16 bits)
int inteiro (32 bits)
long inteiro (64 bits)
float ponto flutuante (32 bits)
double ponto flutuante (64 bits)
![Page 18: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/18.jpg)
Booleanos (boolean)
• Literais: true e false
• Operadores relacionais:
> >= < <= == !=
• Operadores lógicos:
&& (and) || (or) ! (not)
• Precedência: unários, aritméticos, relacionais, lógicos (primeiro && edepois ||)
![Page 19: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/19.jpg)
Strings (String)
• Não é um tipo primitivo e sim uma classe
• Literais: “” “a” “DI \n UFPE \n” ...
• Operadores: + (concatenação)
ex.: “março” + “ de ” + 98 = “março de 98”
Note a conversão de inteiro para string
Há uma conversão implícita para todos os
tipos primitivos
![Page 20: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/20.jpg)
Mais operadores sobre strings
• Comparação (igualdade) de dois strings a e b
a.equals(b) ou b.equals(a)
• Tamanho de um string a
a.length()
![Page 21: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/21.jpg)
Comandos básicos: atribuição
Forma geral:
• <identificador> = <expressão>
ex.: x = 12.7; i = i + 1; st = “Recife”
• Formas concisas de in(de)cremento:
i += 1 i++ equivale a i = i + 1
i -= 1 i-- equivale a i = i - 1
![Page 22: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/22.jpg)
Condicional: if-else
Forma geral:
if (<expressão-booleana>)
<bloco-de-comandos1>
[else
<bloco-de-comandos2>]
Onde: <bloco-de-comandos> é uma seqüência de comandos entre {
e }.
![Page 23: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/23.jpg)
Exemplo: maior entre dois numeros
class Maior {
public static void main (String[] args) {int x, y;x = Util.readInt ();y = Util.readInt ();if (x > y )
System.out.println (x);else
if (y > x) System.out.println (y);
else System.out.println (“x = y”);
}}
![Page 24: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/24.jpg)
Repetição: while
Forma geral:
while (<expressão-booleana>)
<bloco-de-comandos>
![Page 25: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/25.jpg)
Exemplo: soma de 1 a n
...int i, n, s;n = Util.readInt ();i = 1; s = 0;while (i < = n) {s = s + i;i = i + 1;
}System.out.println(s);
...
![Page 26: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/26.jpg)
Alguns conceitos básicos de
orientação a objetos e Java
Objeto,Atributo,Método,Classe e
Encapsulamento
![Page 27: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/27.jpg)
Programação Orientada a Objetos
Foco nos dados (objetos) do sistema, não nas funções
Estruturação do programa é baseada nos dados, não nas funções
As funções mudam mais do que os dados
![Page 28: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/28.jpg)
NúmeroSaldo
21.342-7875,32
Crédito
Débito
Objeto Conta Bancária
![Page 29: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/29.jpg)
NúmeroSaldo
21.342-7875,32
Crédito
Débito
Estados do Objeto Conta
NúmeroSaldo
21.342-7895,32
Crédito
Débito
NúmeroSaldo
21.342-7875,32
Crédito
Débito
Crédito(20)
![Page 30: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/30.jpg)
Classe de Contas Bancárias
![Page 31: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/31.jpg)
Classes e Objetos
Objetos
métodos + atributos
estado encapsulado
Classes
agrupamento de objetos do mesmo tipo
![Page 32: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/32.jpg)
Classe de Contas em Java
class Conta {String numero;double saldo;void credito (double valor) {
saldo = saldo + valor;}void debito (double valor) {
saldo = saldo - valor;}}
![Page 33: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/33.jpg)
Criando Instâncias (Objetos)
Forma geral da declaração e criação de objetos
• Declaração
<id-classe> <lista-id>;
exemplo: Conta conta1, conta2;
• Criação<id> = new <id-classe> (<args>);exemplo: conta1 = new Conta ();
• Combinando declaração e criação
<id-classe> <id> = new <id-classe> (<args>)
exemplo: Conta conta1 = new Conta ();
![Page 34: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/34.jpg)
Ex.: programa que cria e manipula 1 conta
class CriaConta {/** Criando um objeto do tipo Conta */
public static void main (String [] args) {
Conta conta1 = new Conta ();
conta1.numero = “21.342-7”; // referencia a atributos
conta1.saldo = 0;
conta1.credito (500.87); // referencia a metodosconta1.debito (45.00);System.out.println(conta1.saldo);
}}
![Page 35: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/35.jpg)
Construtores
Além de atributos, classes podem ter construtoresservem como interfaces para inicializar objetospossuem o mesmo nome das respectivas classes
similares a métodos, mas não têm tipo de retornopode haver mais de um por classe (overloading)
Ex.: class Conta {String numero;double saldo;void credito (double valor) {saldo = saldo +
valor;}void debito (double valor) {saldo = saldo -
valor;}Conta (String n) {numero = n; saldo = 0;}
}
![Page 36: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/36.jpg)
Construtores
Além de atributos, classes podem ter construtoresservem como interfaces para inicializar objetospossuem o mesmo nome das respectivas classes
similares a métodos, mas não têm tipo de retornopode haver mais de um por classe (overloading)
Ex.: class Conta {String numero;double saldo;void credito (double valor) {saldo = saldo +
valor;}void debito (double valor) {saldo = saldo -
valor;}Conta (String n) {numero = n; saldo = 0;}
}
![Page 37: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/37.jpg)
Criando Objetos com Construtores
...Conta conta1;conta1 = new Conta(“21.342-7”);conta1.credito(500.87);conta1.debito(45.00);System.out.println(conta1.saldo);....
![Page 38: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/38.jpg)
Encapsulamento em uma classe(Ref. Dominando o Java, Makron)
Métodos públicos
Métodos privados
Atributos públicos
Atributos privados
![Page 39: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/39.jpg)
Controle de Acesso em Java
Normalmente, é conveniente proibir o acesso a certos
atributos (ou mesmo métodos). Os níveis de proteção extremos são:
• public - permite acesso a partir de qualquer classe
• private - permite acesso apenas na própria classe
Java oferece outros níveis de acesso que serão estudados posteriormente
![Page 40: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/40.jpg)
Consequências de tornar um atributo privado
• Tentar acessar um componente privado (de fora da classe) resulta em erro de compilação
• Mas como torná-lo acessível apenas para consulta (leitura)?
• Isto é possível definindo-se um método que retorna o atributo (na própria classe onde o atributo se encontra)
![Page 41: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/41.jpg)
Classe de Contas com Atributos Privados
class Conta {private String numero;private double saldo;void credito (double valor) {
saldo = saldo + valor;}void debito (double valor) {
saldo = saldo - valor;}String numero() {return numero;}double saldo() {return saldo;}Conta (String n) {numero = n; saldo = 0;}
}
![Page 42: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/42.jpg)
Exercício
Defina uma classe para representar um candidato a uma eleição, com atributos para armazenar o nome do candidato e o número de votos, ambos privados. Defina um método de acesso para cada atributo, um método para incrementar o número de votos do candidato e um construtor para a classe que recebe como argumento o nome do candidato e inicializa o número de votos com zero.
Desenvolva um programa que cria um candidato com nome de sua escolha. Em seguida, deve ser lido um nome. Se o nome lido for o do seu candidato, incrementar o contador de votos. No final, imprimir o nome do candidato e o total de votos.
![Page 43: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/43.jpg)
Especificação de Requisitos
Contexto:
Uma biblioteca municipal, deseja informatizar seus cadastrose controlar o empréstimo e reserva de livros.
A rede municipal de ensino, possui diversos alunos estes tema sua disposição uma biblioteca com diversos exemplaresde livros. Alguns livros podem ser levados para casa eposterior devolução.
![Page 44: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/44.jpg)
Especificação de Requisitos
Contexto:
Outros livros não podem ser emprestado, pois são raros erequer mais cuidado.
Os empréstimos são gratuitos desde que os livros sejam bemcuidados.
Os livros podem ter reservas, e assim que esse livro édevolvido ele é emprestado para quem reservou
![Page 45: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/45.jpg)
Especificação de Requisitos
Contexto:
A biblioteca necessita de uma listagem dos livros emprestadose devolvido por dia.
Uma listagem dos livros emprestado e livros reservados
Uma listagem de alunos e livros
![Page 46: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/46.jpg)
Especificação de Requisitos
Contexto:
O sistema deve possuir uma certa segurança onde somentefuncionários autorizados podem realizar empréstimos edevoluções.
Os alunos podem acessar o sistema para reservar livros.
![Page 47: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/47.jpg)
Especificação de Requisitos
E Agora?
O que eu faço?
![Page 48: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/48.jpg)
Especificação de Requisitos
DicasPense na situação realLembre-se o uso da orientação objeto é fundamental para a
facilidade ou dificuldade do sistema.
Pensa nos elementos envolvidos na situação real e principalmente com eles se relacionam
![Page 49: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/49.jpg)
Especificação de Requisitos
Algumas Perguntas a serem respondidas?
Quais são as classes envolvidas?
Qual o relacionamento entre elas?
Objetivo é definir a minha hierarquia de classes
![Page 50: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/50.jpg)
Caso de Uso
![Page 51: Lab de Programação de sistemas I · Referências Bibliográficas Bibliografia DEITEL, H.M., DEITEL, P.J. Java 2, Como Programar. 4ª Edição. Porto Alegre: Bookman, 2003 KATHY](https://reader031.vdocuments.pub/reader031/viewer/2022022110/5c1345dd09d3f208438c44a3/html5/thumbnails/51.jpg)
OBRIGADO!