Você está na página 1de 22

Análise e Projeto de

Sistemas Orientados
a Objetos

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


Código da turma no Google Sala de aula:

6qum7aa

Acessem classroom.google.com e cliquem


no botão “+”
2020 - Dante Souza e Souza - dante.s@uni9.pro.br
Regras de Convivência

● Estamos trabalhando em um novo formato, um desafio para todos;


● Durante as aulas deixar desligado o Microfone;
● Nossas interações ocorrerão pelo chat do Hangouts Meet. Se precisar
falar, envie mensagem solicitando permissão;
● Temos tempo suficiente para as aulas;
● Mantenha a regularidade de horário: nossas aulas serão nos horários
previstos do seu curso;
● Utilize o material disponível no AVA para estudo, sempre.

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


Orientações Gerais:

● Todos os slides e materiais de apoio serão disponibilizados na nossa sala


no Google Sala de Aula (Classroom);
● Novas atividades serão entregues também via Google Classroom, exceto
quando exigida outra forma de entrega;
● Se houver códigos-fonte, ele serão disponibilizados no repositório do
Github abaixo:
○ https://github.com/DanteSouzaeSouza/apdoo
● E-mail de contato: dante.s@uni9.pro.br

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


Na última aula...

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


5
Java: O que é?

▰ É uma linguagem de programação orientada a


objetos desenvolvida na década de 90 por uma
equipe de programadores chefiada por James
Gosling, na empresa Sun Microsystems.
▰ É compilada para um bytecode que é interpretado
por uma máquina virtual (Java Virtual Machine).

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


6
Java: Objetivos

▰ Orientação a objetos - Baseado no modelo de Simular;


▰ Portabilidade - Independência de plataforma - "escreva uma vez,
execute em qualquer lugar" ("write once, run anywhere");
▰ Recursos de Rede - Possui extensa biblioteca de rotinas que
facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP;
▰ Segurança - Pode executar programas via rede com restrições de
execução.

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


7
Java: Características
▰ Sintaxe similar a C/C++
▰ Facilidades de Internacionalização - Suporta nativamente caracteres Unicode;
▰ Simplicidade na especificação, tanto da linguagem como do "ambiente" de
execução (JVM);
▰ É distribuída com um vasto conjunto de bibliotecas (ou APIs);
▰ Possui facilidades para criação de programas distribuídos e multitarefa (múltiplas
linhas de execução num mesmo programa ou “threads”);
▰ Desalocação de memória automática por processo de coletor de lixo;
▰ Carga Dinâmica de Código - Programas em Java são formados por uma coleção de
classes armazenadas independentemente e que podem ser carregadas no
momento de utilização.
2020 - Dante Souza e Souza - dante.s@uni9.pro.br
8
Java: Como é?
▰ Estrutura de um programa em Java:

Pacote 1. package orgType.orgName.appName.compName;


2. import NomeClasseAImportar;
3.
Classe 4. especificadorAcesso class NomeClasse {
5.
Variáveis, constantes, 6. especificadorAcesso tipoDados nomeVariável [=valorInicial];
métodos e etc. 7.
8. especificadorAcesso NomeClasse([listaArgumentos]) {
Método main (na 9. código do Constructor
10. }
classe principal do
11. especificadorAcesso tipoRetorno nomeMétodo ([listaArgumentos]) {
projeto) 12. código do método
13. }
14. Comentário
15. Comentário
16. Comentário
17. multi linhas
18. }

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


9
Java: Como é? ●


orgType é o tipo de organização, como com,
org ou net.
orgName é o nome do domínio da organização,

Estrutura de um programa em Java:


como makotojava, oracle ou ibm.
▰ ● appName é o nome do aplicativo, abreviado.
● compName é o nome do componente.

Pacote 1. package orgType.orgName.appName.compName;


2. import NomeClasseAImportar;
3.
Classe 4. especificadorAcesso class NomeClasse {
5.
Variáveis, constantes, 6. especificadorAcesso tipoDados nomeVariável [=valorInicial];
métodos e etc. 7.
8. especificadorAcesso NomeClasse([listaArgumentos]) {
Método main (na 9. código do Constructor
10. }
classe principal do
11. especificadorAcesso tipoRetorno nomeMétodo ([listaArgumentos]) {
projeto) 12. código do método
13. }
14. Comentário
15. Comentário
16. Comentário
17. multi linhas
18. }

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


10
Java: Como é? ●


import informa ao compilador Java onde
localizar classes às quais você fez
referência dentro de seu código.
Qualquer classe não trivial usa outras
▰ Estrutura de um programa em Java: classes para alguma funcionalidade e a
instrução de importação é como você informa
ao compilador Java sobre elas.

Pacote 1. package orgType.orgName.appName.compName;


2. import NomeClasseAImportar;
3.
Classe 4. especificadorAcesso class NomeClasse {
5.
Variáveis, constantes, 6. especificadorAcesso tipoDados nomeVariável [=valorInicial];
métodos e etc. 7.
8. especificadorAcesso NomeClasse([listaArgumentos]) {
Método main (na 9. código do Constructor
10. }
classe principal do
11. especificadorAcesso tipoRetorno nomeMétodo ([listaArgumentos]) {
projeto) 12. código do método
13. }
14. Comentário
15. Comentário
16. Comentário
17. multi linhas
18. }

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


11
Java: Como é? ● especificadorAcesso indica o nível de
encapsulamento da classe.
class indica o tipo de arquivo sendo criado
Estrutura de um programa em Java:

▰ ●
(class, interface…)
NomeClasse nome da classe. Sempre escrito
com a primeira letra de cada palavra em
maiúscula.

Pacote 1. package orgType.orgName.appName.compName;


2. import NomeClasseAImportar;
3.
Classe 4. especificadorAcesso class NomeClasse {
5.
Variáveis, constantes, 6. especificadorAcesso tipoDados nomeVariável [=valorInicial];
métodos e etc. 7.
8. especificadorAcesso NomeClasse([listaArgumentos]) {
Método main (na 9. código do Constructor
10. }
classe principal do
11. especificadorAcesso tipoRetorno nomeMétodo ([listaArgumentos]) {
projeto) 12. código do método
13. }
14. Comentário
15. Comentário
16. Comentário
17. multi linhas
18. }

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


12
Java: Como é?
▰ Estrutura de um programa em Java: ●especificadorAcesso indica o nível de
encapsulamento da classe.
● tipoDados indica tipo de dados da variável
● nomeVariável nome da variável sempre com
primeira letra minúscula na primeira
Pacote 1. package orgType.orgName.appName.compName;
palavra
2. import NomeClasseAImportar; ● [=valorInicial] valor inicial opcional
3.
Classe 4. especificadorAcesso class NomeClasse {
5.
Variáveis, constantes, 6. especificadorAcesso tipoDados nomeVariável [=valorInicial];
métodos e etc. 7.
8. especificadorAcesso NomeClasse([listaArgumentos]) {
Método main (na 9. código do Constructor
10. }
classe principal do
11. especificadorAcesso tipoRetorno nomeMétodo ([listaArgumentos]) {
projeto) 12. código do método
13. }
14. Comentário
15. Comentário
16. Comentário
17. multi linhas
18. }

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


13
Java: Como é?
▰ Estrutura de um programa em Java:

● Método construtor usado para inicializar uma


Pacote 1. classe passando os valores para os
package orgType.orgName.appName.compName;
argumentos internos
2. import NomeClasseAImportar; ● [listaArgumentos] parâmetros opcionais
3.
Classe 4.
necessários à execução de um método
especificadorAcesso class NomeClasse {
5.
Variáveis, constantes, 6. especificadorAcesso tipoDados nomeVariável [=valorInicial];
métodos e etc. 7.
8. especificadorAcesso NomeClasse([listaArgumentos]) {
Método main (na 9. código do Constructor
10. }
classe principal do
11. especificadorAcesso tipoRetorno nomeMétodo ([listaArgumentos]) {
projeto) 12. código do método
13. }
14. Comentário
15. Comentário
16. Comentário
17. multi linhas
18. }

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


14
Java: Como é?
▰ Estrutura de um programa em Java:

Pacote 1. package orgType.orgName.appName.compName;


● Declaração de um Método usado para
2. import NomeClasseAImportar; especificação de ações executáveis pela
3.
Classe 4. especificadorAcesso class NomeClasse

classe.
{
tipoRetorno informação opcional. Caso o
método produza um resultado em forma de
5.
valor, deve ser informado
Variáveis, constantes, 6. especificadorAcesso tipoDados
● nomeVariável [=valorInicial];
[listaArgumentos] parâmetros opcionais
métodos e etc. 7. necessários à execução de um método
8. especificadorAcesso NomeClasse([listaArgumentos]) {
Método main (na 9. código do Constructor
10. }
classe principal do
11. especificadorAcesso tipoRetorno nomeMétodo ([listaArgumentos]) {
projeto) 12. código do método
13. }
14. Comentário
15. Comentário
16. Comentário
17. multi linhas
18. }

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


15
Java: Como é?
▰ Estrutura de um programa em Java:

Pacote 1. package orgType.orgName.appName.compName;


2. import NomeClasseAImportar;
3.
Classe 4. especificadorAcesso class NomeClasse {
5.
Variáveis, constantes, 6. especificadorAcesso tipoDados nomeVariável [=valorInicial];
métodos e etc. 7.
8. especificadorAcesso NomeClasse([listaArgumentos]) {
Método main (na 9. código do Constructor
10. }
classe principal do
11. especificadorAcesso ●tipoRetorno nomeMétodo ([listaArgumentos]) {
projeto) 12.
Tipos de comentários
código do método Java
possíveis em um código

13. }
14. Comentário
15. Comentário
16. Comentário
17. multi linhas
18. }

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


16
Exercício
1. Usando nosso exemplo do sistema AProf criado nas últimas aulas, como ficaria o
código das classes para o diagrama de classes abaixo?

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


17
Assuntos de hoje:

▰ Continuando: Conceitos de Java com


implementações

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


18
Exercício - Continuação
1. Usando nosso exemplo do sistema AProf criado nas últimas aulas, como ficaria o
código das classes para o diagrama de classes abaixo?

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


19
Exercício - Continuação
1. Quais métodos devemos criar para garantir o funcionamento do nosso sistema?

Vamos conferir nos nossos Diagramas UML?

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


20
Java: Interface gráfica

2020 - Dante Souza e Souza - dante.s@uni9.pro.br


21
Obrigado e até a
próxima aula!
2020 - Dante Souza e Souza - dante.s@uni9.pro.br
22

Você também pode gostar