Programação de computadores
● O processo de programação dos computadores evolui juntamente com os computadores e a medida que seus usuários exigem softwares cada vez mais sofisticados.
A evolução da Programação
Programação Linear Programação Estruturada Programação Orientada a Objetos
Programação Linear
Processamento tipo INPUT/OUTPUT Entrada (INPUT) dos programas e dados em um único sentido, via cartão perfurado. Armazenamento dos dados em núcleo de ferrite. Processamento dos dados de forma linear Saída (OUT)
Programação Estruturada
Baseada na construção de procedimentos com execução sequencial de comandos.
●10 print “'Ola Mundo!'”●20 goto 10
Introdução do conceito de procedimentos Introdução de estruturas de controle de fluxo
(if , while, case, for) Introdução de funções (clipper Summer'87)
Problemas da Programação Estruturada
Dificuldade da comunicação de usuário e programadores. Baixa reutilização de código. Problemas de retro-compatibilidade Dificuldade de documentação de software Dificuldade de manutenção do código.
Programação Orientada a Objetos
Programação O.O. é o 'Futuro'
Alta capacidade reutilização de código Facilidade de Documentação Processo claro de retro-compatibilidade Facilidade manutenção do código Maior agilidade na distribuição e organização de equipes de trabalho Etc..
Programação Orientada a Objetos
Tá. O que é orientação a objetos? Melhor, vamos devagar. O que é um Objeto ?
Objeto é uma entidade encapsulada que possui propriedades e protocolos de acesso
bem definidos.
Programação Orientada a Objetos
Orientação a objetos
Orientação : 1. Ato ou efeito de orientar-se. 2. Direção, guia. 3. Impulso, tendência.
Objeto : 1.Tudo que é perceptível por qualquer um dos sentidos. 2. Coisa, peça, artigo de compra ou venda. 3. Matéria, assunto.
O que é Programação Orientada a Objetos
A programação Orientada a Objetos (O.O.) uma tentativa de representação do mundo real na forma de linguagem de programação.
O que exige a O.O. ?
Mudança na forma de programar.Mudança na forma de ver o problema.Mudança de paradigma para quem vem com os conceitos da programação estruturada.Não se poder ver em partes pequenas e separar em pequenas funções (procedures), é preciso ter uma visão do todo.
O que exige a O.O. ?
Mudança de ParadigmaDevemos romper com o passado e pensar no FUTURO!Esqueçam o PASSADO!!!!
Mas o que é O.O. ?
Objeto :Objeto é uma entidade encapsulada que
possui propriedades e protocolos de acesso bem definidos.
Exemplo:Guarda-chuvaCaneta
Comparando os modelos de Programação
Programando um carro procedural Programando um carro orientado a objetos
Como Programar em O.O.
A O.O. Exige uma pré-analise do problema como um todo.
Identificação objetos que compõem o problema, bem como as relações que existem entre eles (atributos e protocolos de acesso).
Em seguida vem a codificação deste objetos em forma de classes.
O que é classe e objeto?
Classe : é a receita para a criação do objeto (o programa que origina o objeto, receita do bolo).
Objeto : é a 'materialização' da classe dentro do computador (também chamado de instância, o bolo propriamente dito)
Exemplo
O Problema : Como fazer panquecas?
Panquecas
Ovos 2Leite 1litroSal 1 pitadaAçucar 2 pitadasQueijo ralado 1pacote
Misture todos os ingredientes, bata todos no liquidificador. Pegue uma panela untada com óleo. Coloque uma concha da massa na panela e leve ao fogo. Vire a massa, espere um pouco e tire a panqueca da panela.
Onde estão os atributosou propriedades?
Ovos 2Leite 1litroSal 1 pitadaAçucar 2 pitadasQueijo ralado 1pacote
Misture todos os ingredientes, bata todos no liquidificador. Pegue uma panela untada com óleo. Coloque uma concha da massa na panela e leve ao fogo. Vire a massa, espere um pouco e tire a panqueca da panela.Sirva.
AtributosPanqueca
Ovos 2Leite 1litroSal 1 pitadaAçucar 2 pitadasQueijo ralado 1pacote
Misture todos os ingredientes, bata todos no liquidificador. Pegue uma panela untada com óleo. Coloque uma concha da massa na panela e leve ao fogo. Vire a massa, espere um pouco e tire a panqueca da panela.Sirva.
Onde estão métodos de acesso e objetos
relacionados?Ovos 2Leite 1litroSal 1 pitadaAçucar 2 pitadasQueijo ralado 1pacote
Misture todos os ingredientes, bata todos no liquidificador. Pegue uma panela untada com óleo. Coloque uma concha da massa na panela e leve ao fogo. Vire a massa, espere um pouco e tire a panqueca da panela.Sirva.
Métodos de acesso e relacionamentos ?
Ovos 2Leite 1 litroSal 2 pitadaAçucar 1 pitadasQueijo ralado 1 pacote
Misture todos os ingredientes, bata todos no liquidificador. Pegue uma panela untada com óleo. Coloque uma concha da massa na panela e leve ao fogo. Vire a massa, espere um pouco e tire a panqueca da panela. Sirva.
A Classe
Panqueca (){ int Ovos = 2; int Leite = 1; int Sal = 2; int Açucar = 1; int Queijo = 1;
public misture(); public bata(); public pegue();
public coloque(); public leve(); public vire(); public espere(); public sirva();
}
Fazendo a panqueca
●Agora que já temos a receita de como fazer a panqueca, só precisamos executar a receitar para que tenhamos uma panqueca pronta.
FazendoApanqueca.*
Include panqueca;
Panqueca minhaPanqueca = new Panqueca();
minhaPanqueca.misture();minhaPanqueca.bata();minhaPanqueca.pegue();minhaPanqueca.coloque();minhaPanqueca.leve();minhaPanqueca.vire(); minhaPanqueca.espere();minhaPanqueca.sirva();
Conceitos de O.O.
HerançaPolimorfismo Sobrecarga (overload)Redefinição (override)Encapsulamento
Herança
●Assim como na genética um filho herda características do pai, na O.O. um objeto filho pode herdar características do objeto pai.
Herança
Herança Exemplo
Digamos que agora queremos ao invés de uma paqueca salgada, queremos uma panqueca doce.
Criamos um novo objeto que hedarará as características do objeto panqueca e iremos aumentar a quantidade de açucar na receita.
Herança Exemplo
PanquecaDoce herda Panqueca (){
int Açucar = 5;
}
A Classe
Polimorfimos
Poliformismo, do grego muitas formas, refere-se aos processos que vários objetos podem executar.
Qual seu Peso?Qual seu Saldo?
Métodos polimorficos
Sobre Carga (overload)
●Temos uma sobre carga de método quando um mesmo protocolo (método) é executado para um fim mas recebendo informações diferentes.
Sobre Carga (overload)
Exemplo :
●Praticando o método pegar!
Sobre Carga (overload)
binhara.pegue(Cabelo);binhara.pegue(braco);binhara.pegue(voluntario);
Sobre Carga (overload)
●Exemplo :
Conceito de O.O.
●Tipos de métodos :ConstrutorDestrutorPublicoPrivadoEstático
Notação UML
A Unidied Modeling Language (UML)
Resultado da unificação da linguagem de modelagem de dados de Booch, OMT, OOSE.
A UML é uma linguagem de modelagem.
Notação UML
Diagrama de ClasseDiagrama de Caso de UsoDiagrama de InteraçãoDiagrama de SequênciaDiagrama de ColaboraçãoDiagrama de AtividadesDiagrama de ComponentesDiagrama de ObjetosDiagrama de Implantação
Notação UML VantagensFacilidade de comunicação com usuário
A partir dos Caso de Uso pode-se facilmente gerar os manuais do usuário
Através dos diagramas pode se orientar o trabalho dos programadores.
A modelagem é um retrato do código fonte
Padronização e distribuição rápida do conhecimento
Aplicações Complexas
Orientação a objetos e notação UML são a chaves para este tipo de desenvolvimento.
Irão facilitar o acesso as informações do modelo de negócio de forma fácil e padronizada.É uma padronização já aceita pelo mercado de trabalho.Estudantes poderão atuar ativamente neste modelo de desenvolvimento.
Está é a Questão
A Orientação a Objetos é a chave e a principal ferramenta do desenvolvedor de software livre para o desenvolvimento de aplicações com modelo de negócio complexo.