SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
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 Paradigma
Devemos 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-chuva
Caneta
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 2
Leite 1litro
Sal 1 pitada
Açucar 2 pitadas
Queijo 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 atributos
ou propriedades?
Ovos 2
Leite 1litro
Sal 1 pitada
Açucar 2 pitadas
Queijo 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 2
Leite 1litro
Sal 1 pitada
Açucar 2 pitadas
Queijo 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 2
Leite 1litro
Sal 1 pitada
Açucar 2 pitadas
Queijo 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 2
Leite 1 litro
Sal 2 pitada
Açucar 1 pitadas
Queijo 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ça
Polimorfismo
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 :
Construtor
Destrutor
Publico
Privado
Está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 Classe
Diagrama de Caso de Uso
Diagrama de Interação
Diagrama de Sequência
Diagrama de Colaboração
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Objetos
Diagrama de Implantação
Notação UML Vantagens
Facilidade 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.

Mais conteúdo relacionado

Destaque

Poo slides01
Poo slides01Poo slides01
Poo slides01
jmtofoli
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
Leandro Santos
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
Armando Daniel
 

Destaque (20)

Introdução a java
Introdução a javaIntrodução a java
Introdução a java
 
Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Apostila sobre o Visualg
Apostila sobre o VisualgApostila sobre o Visualg
Apostila sobre o Visualg
 
[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML
 
Aula 04
Aula 04Aula 04
Aula 04
 
Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.
 
Introduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação WebIntroduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação Web
 
Xamarin plataform
Xamarin plataformXamarin plataform
Xamarin plataform
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Aula 02
Aula 02Aula 02
Aula 02
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o Visualg
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
Apostila Visualg
Apostila VisualgApostila Visualg
Apostila Visualg
 

Semelhante a Curso C# em Mono - Orientação a Objeto Basico

TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
ssuser059c2c1
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
Rangel Javier
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
Wesley Lemos
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
Emerson Soares
 
Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012
Frederico Maia Arantes
 

Semelhante a Curso C# em Mono - Orientação a Objeto Basico (20)

Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Apresentando o CakePHP
Apresentando o CakePHPApresentando o CakePHP
Apresentando o CakePHP
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
 
Oo presentation básica
Oo presentation básicaOo presentation básica
Oo presentation básica
 
TDC2018SP | Trilha .Net - Programacao Funcional com C#
TDC2018SP | Trilha .Net - Programacao Funcional com C#TDC2018SP | Trilha .Net - Programacao Funcional com C#
TDC2018SP | Trilha .Net - Programacao Funcional com C#
 
Abordagem Funcional para Gerenciamento de Erros em .NET
Abordagem Funcional para Gerenciamento de Erros em .NETAbordagem Funcional para Gerenciamento de Erros em .NET
Abordagem Funcional para Gerenciamento de Erros em .NET
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
Introducao POO.pdf
Introducao POO.pdfIntroducao POO.pdf
Introducao POO.pdf
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
.NET e C# - Introdução Geral
.NET e C# - Introdução Geral.NET e C# - Introdução Geral
.NET e C# - Introdução Geral
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Programando em Go
Programando em GoProgramando em Go
Programando em Go
 
Algorítimos
AlgorítimosAlgorítimos
Algorítimos
 
Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012
 

Mais de Alessandro Binhara

Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Alessandro Binhara
 
BigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaBigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenharia
Alessandro Binhara
 
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
Alessandro Binhara
 

Mais de Alessandro Binhara (20)

Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
 
BigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaBigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenharia
 
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaCase RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
 
2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual
 
Realidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinowareRealidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinoware
 
Realidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de DadosRealidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de Dados
 
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
 
Curso de Férias - Robótica
Curso de Férias -  Robótica Curso de Férias -  Robótica
Curso de Férias - Robótica
 
BIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  AplicaçõesBIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  Aplicações
 
Games imersivos
Games imersivosGames imersivos
Games imersivos
 
Abertura - interopmix2014
Abertura - interopmix2014Abertura - interopmix2014
Abertura - interopmix2014
 
Treinamento csharp mono
Treinamento csharp monoTreinamento csharp mono
Treinamento csharp mono
 
Int305 projeto mono-final
Int305 projeto mono-finalInt305 projeto mono-final
Int305 projeto mono-final
 
Apresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasicApresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasic
 
App CrossMobile com C# para Android, Iphone e WindowsPhone
App CrossMobile com C# para Android, Iphone e WindowsPhoneApp CrossMobile com C# para Android, Iphone e WindowsPhone
App CrossMobile com C# para Android, Iphone e WindowsPhone
 
Xamarin Interop - hands on android -
Xamarin Interop - hands on android - Xamarin Interop - hands on android -
Xamarin Interop - hands on android -
 
Quarto Encontro GUX
Quarto Encontro GUX Quarto Encontro GUX
Quarto Encontro GUX
 
O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???
O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???
O queo facebook faz com minhas fotos??? E o que o BigData tem haver com isso ???
 
Interoperabilidade com BigData Hadoop para Windows Azure
Interoperabilidade com BigData Hadoop  para Windows AzureInteroperabilidade com BigData Hadoop  para Windows Azure
Interoperabilidade com BigData Hadoop para Windows Azure
 

Curso C# em Mono - Orientação a Objeto Basico

  • 1. 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.
  • 2. A evolução da Programação Programação Linear Programação Estruturada Programação Orientada a Objetos
  • 3. 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)
  • 4. 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)
  • 5. 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.
  • 6. 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..
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 11. O que exige a O.O. ? Mudança de Paradigma Devemos romper com o passado e pensar no FUTURO! Esqueçam o PASSADO!!!!
  • 12. Mas o que é O.O. ? Objeto : Objeto é uma entidade encapsulada que possui propriedades e protocolos de acesso bem definidos. Exemplo: Guarda-chuva Caneta
  • 13. Comparando os modelos de Programação Programando um carro procedural Programando um carro orientado a objetos
  • 14. 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.
  • 15. 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)
  • 16. Exemplo O Problema : Como fazer panquecas?
  • 17. Panquecas Ovos 2 Leite 1litro Sal 1 pitada Açucar 2 pitadas Queijo 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.
  • 18. Onde estão os atributos ou propriedades? Ovos 2 Leite 1litro Sal 1 pitada Açucar 2 pitadas Queijo 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.
  • 19. AtributosPanqueca Ovos 2 Leite 1litro Sal 1 pitada Açucar 2 pitadas Queijo 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.
  • 20. Onde estão métodos de acesso e objetos relacionados? Ovos 2 Leite 1litro Sal 1 pitada Açucar 2 pitadas Queijo 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.
  • 21. Métodos de acesso e relacionamentos ? Ovos 2 Leite 1 litro Sal 2 pitada Açucar 1 pitadas Queijo 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.
  • 22. 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(); }
  • 23. 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.
  • 24. FazendoApanqueca.* Include panqueca; Panqueca minhaPanqueca = new Panqueca(); minhaPanqueca.misture(); minhaPanqueca.bata(); minhaPanqueca.pegue(); minhaPanqueca.coloque(); minhaPanqueca.leve(); minhaPanqueca.vire(); minhaPanqueca.espere(); minhaPanqueca.sirva();
  • 25. Conceitos de O.O. Herança Polimorfismo Sobrecarga (overload) Redefinição (override) Encapsulamento
  • 26. 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.
  • 28. 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.
  • 30. PanquecaDoce herda Panqueca () { int Açucar = 5; } A Classe
  • 31. Polimorfimos Poliformismo, do grego muitas formas, refere-se aos processos que vários objetos podem executar. Qual seu Peso? Qual seu Saldo?
  • 33. 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.
  • 34. Sobre Carga (overload) Exemplo : ●Praticando o método pegar!
  • 37. Conceito de O.O. ●Tipos de métodos : Construtor Destrutor Publico Privado Estático
  • 38. 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.
  • 39. Notação UML Diagrama de Classe Diagrama de Caso de Uso Diagrama de Interação Diagrama de Sequência Diagrama de Colaboração Diagrama de Atividades Diagrama de Componentes Diagrama de Objetos Diagrama de Implantação
  • 40. Notação UML Vantagens Facilidade 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
  • 41. 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.
  • 42. 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.