Post on 09-Jun-2015
some rights reserved
Plano de ensino
Componente: Programação
Orientada a Objetos Para WEB
Competência
• Desenvolver aplicativos utilizando metodologia orientada a objetos, de acordo com a sintaxe da linguagem, incluindo os fundamentos de programação orientada a objetos e características de organização de classes em pacotes e projetos, aplicando a orientação a objetos no desenvolvimento de sistemas, com visão lógica e pró-atividade.
Conhecimentos
• Fundamentos de Programação Orientada a objetos: sintaxe da linguagem, funções, passagem de parâmetros, bibliotecas
• Características de organização de classes em pacotes e projetos
• Características de estruturas das classes da linguagem e sua hierarquia
Habilidades
• Criar e manipular classes e objetos
• Criar projetos e pacotes de classes
• Testar algoritmos
• Desenvolver aplicações que utilizem os conceitos de orientação a objetos
• Modelar situações do mundo real para códigos orientados a objeto.
Indicadores
• Cria classes e objetos a partir de fundamentos da programação orientada a objetos, atuando com paciência.
• Testa algoritmo utilizando ferramentas para teste de algoritmos, de acordo com os princípios de lógica, abstração e programação orientada a objetos.
• Criar projetos e pacotes de classes com raciocínio lógico, a partir das características de organização e de estruturas das classes da linguagem e sua hierarquia.
Valores e atitudes
• Paciência
• Organização
• Raciocínio lógico
Cronograma
• 42 horas/aula• 12 encontros• Frequência mínima de 9 encontros• Avaliações em média a cada 3 encontros• Datas prováveis1. 05 de dezembro2. 14 de dezembro3. 08 de fevereiro4. 15 de fevereiro
Boas Práticas
Kent Beck
“Não sou um grande programador; Sou apenas um bom programador com
ótimos hábitos. Refatorar me ajuda a ser muito mais efetivo na escrita de
código robusto”
Kent Beck
TDDTest Driven Development
Pair Programming
Baby steps
Abrace Mudanças
Controle de Versão
Por que GIT?•Social
•Robusto
•Rápido
•Tudo é local
•Distribuído
git clone
Crie, edite, apague, mova,
arquivos e diretórios
git add
git commit
Não esqueça da mensagem!
Fluxo
git push
Trabalho em equipe
git pull
Vamos à prática
• Criar um repositório no Github
• Clonar o repositório criado para um diretório
• Adicionar e editar arquivos no diretório
• Adicionar os arquivos ao repositório
• Fazer commit no repositório
• Fazer push para o Github
Orientação a Objetos
Java é orientado a objetos
O que ganhamos com o paradigma de
Orientação a Objetos?
Organização e
Responsabilidade
Como conectar informações e funcionalidades
?
Atráves de conceitos de Orientação a
Objetos
Encapsulamentoe
Polimorfismo
Modelando o Mundo Real
Conta Bancária
Informações
Funcionalidades
Informações
Variáveis
Atributos
Funcionalidades
Métodos
Comportamentos
Estes atributos e comportamentos que são
viabilizados por nossa modelagem ainda não fazem
nada na prática, são apenas uma especificação de o que uma
conta deve ter de informações e funcionalidades.
Mas então em que momento que essa
especificação servirá para alguma coisa?
Quando tirarmos essas contas do papel (especificação) e
transformarmos em instâncias do mundo real.
Pense que um banco primeiramente
escreve um documento que
especifica os detalhes de uma conta bancária
E que com esta especificação pronta
ele encontre 5 clientes e crie uma conta para
cada um deles
É obvio que cada um destes clientes
deverá ter seu próprio saldo e limite, certo?
Ou seja, cada cliente terá sua
própria (instância) conta bancária.
Que será definida de acordo com (a especificação) uma série de regras que toda
conta bancária deve seguir, independente do cliente.
Para a especificação no mundo
Orientado a Objetos damos o nome de
Classe
E para cada instância de
conta bancária damos o nome
de Objeto
SHOW ME THE CODE!