Escolar Documentos
Profissional Documentos
Cultura Documentos
Roteiro
Classes, Objetos, Atributos, Mtodos, Herana, Agregao, Encapsulamento, Abstrao e Polimorfismo. Breve histrico, conceitos bsicos. Aplicao prtica.
O enigma do carro; Linguagem Simula 67: 1 Linguagem Orientada a objetos; Introduziu os conceitos de classes e herana; Baseada no ALGOL 60 (1 Estruturada). Linguagem Smalltalk
Originada do LOGO.
As Linguagens procedurais organizam o programa de forma linear e utilizam um fluxo de execuo de cima para baixo. Em outras palavras, o programa executado em uma srie de passos que so executados um aps o outro. Este tipo de programao funcionou bem para pequenos programas que consistiam de algumas centenas linhas de cdigo, mas conforme os programas se tornaram maiores e mais complexos eles se tornaram mais difceis de gerir e depurar.
Em uma tentativa de gerenciar o tamanho cada vez maior de programas, a programao estruturada foi introduzida para quebrar o cdigo em segmentos gerenciveis chamados de funes ou procedimentos. Isso foi uma melhoria, mas como os programas passaram a ter que realizar funcionalidade de negcios mais complexas e interagirem com outros sistemas, as seguintes deficincias da metodologia de programao estrutural comearam a aflorar:
Dificuldade de manuteno; Emaranhado de correes sequenciais (corrige 1 corrige todos) Pouco aproveitamento de cdigo para novas aplicaes; A programao no voltada para o desenvolvimento em equipe. Os programadores tinham de conhecer todos os aspectos do programa. Tornando-se difcil isolar os seus esforos em um aspecto do sistema;
Ficou muito difcil traduzir os modelos de negcios existentes em modelos de programao; A integrao entre os diversos sistemas existentes passou a ser um pesadelo; Alm de problemas de interao com o usurio. Programas pouco intuitivos e nada interativos.
Uma transio mais intuitiva dos modelos de anlise de negcios para a implementao do software; A capacidade de manter e implementar mudanas nos programas de forma mais rpida e eficiente; A capacidade criar sistemas de software atravs de um processo de equipe, permitindo a especialistas trabalharem em partes do sistema; A capacidade de reutilizao de componentes de cdigo em outros
A capacidade de reutilizao de componentes de cdigo e a aquisio de componentes escritos por desenvolvedores de terceiros aumentando a funcionalidade de programas com pouco esforo; Uma melhor integrao com sistemas distribudos e com baixo acoplamento; Melhor integrao com os Sisetmas Operacionais modernos; A capacidade de criar uma interface de usurio grfica mais intuitiva
Classes
No contexto da OOP um objeto uma instncia de uma classe. Onde a classe o tipo e o objeto uma instncia do tipo.
Abstrao
habilidade de concentrar-se nos aspectos essenciais de um contexto qualquer, ignorando caractersticas menos importantes ou no essenciais e abstraindo (ou retirando) as realmente necessrias. uma classe uma abstrao de uma entidade existente no domnio do sistema de software
Encapsulamento
O objeto esconde seus dados de outros objetos e permite que os dados sejam acessados por intermdio de seus prprios mtodos.
Ex.: Um departamento pessoal geralmente encapsula a informao sobre os empregados determinando como e quando esses dados podem ser manipulados.
Polimorfismo (sobrecarga)
Ex.: diferentes mtodos de um objeto com o mesmo nome mas assinaturas diferentes. getProduto(int codigo) getProduto(string nome)
a capacidade de criar objetos novos ou especficos a partir de objetos originais primrios (tipos). Superclasse: classe a partir da qual todas as suas caractersticas so herdadas por suas subclasses. Subclasse: herda todas as caractersticas de suas superclasses.
Agregao:
A agregao ocorre quando um objeto consiste de uma composio de outros objetos que trabalham juntos.
Ex.: o objeto carro um composto de objetos roda, objeto motor, objeto farol, objeto direo, etc. Agregados (juntos) todos esses objetos compem o objeto carro.
Breve Histrico:
Aplicaes Monolticas: Aplicativo continha todas a funcionalidades em um nico mdulo gerado por uma grande quantidade de linhas de cdigo e de manuteno nada fcil. Aplicaes em Duas Camadas: Nessas aplicaes a base de dados era colocada em uma mquina especfica, separada das mquinas que executavam as aplicaes. Temos aplicativos instalados em estaes clientes contendo toda a lgica da aplicao (problemas de verses)
Esta camada interage diretamente com o usurio, atravs dela que so feitas as requisies como consultas, por exemplo.
Camada do negcio:
Tambm chamada de Lgica empresarial, Regras de negcio ou Funcionalidade. nela que ficam as funes e regras de todo o negcio. Inexiste uma interface para o usurio e seus dados so volteis, ou seja, para que algum dado seja mantido deve ser utilizada a camada de dados.
A terceira camada definida como o repositrio das informaes e as classes que a manipulam. Esta camada recebe as requisies da camada de negcios e seus mtodos executam essas requisies em um banco de dados. Alterando o banco de dados alteraria apenas as classes da camada de dados, e o restante das camadas no seriam afetados por essa alterao.