Introdução ao paradigma de programação: Orientado a Objetos

Slides:



Advertisements
Apresentações semelhantes
Orientação a objetos identidade abstração classificação encapsulamento
Advertisements

Análise e Projeto Orientado a Objetos
Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Princípios da Orientação a Objetos e a Linguagem UML
Paulo Marques Hernâni Pedroso
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Análise Orientada a Objetos
Modelagem Orientada a Objetos
Orientação a Objetos: Encapsulamento e Classificação
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
O Paradigma de Orientação a Objetos
Introdução a diagrama de classes e UML
Alexandre Parra Site: Os Pilares da OO em Java Alexandre Parra Site:
Diagrama de Classes.
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Introdução à Modelagem Conceitual 1. Conceitos Básicos
Programação Orientada a Objetos
Programação orientada a objetos com Java
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Classes Abstractas.
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Orientação a Objetos.
TÉCNICAS DE PROGRAMAÇÃO II
Polimorfismo em C#.
Princípios de Orientação à Objetos
Diagrama de Classes e Colaboração
Introdução à Ciência da Computação-2 Fabio Nakano – Por favor colocar no assunto: ICC2 - – Bloco A-1, segundo andar,
PROGRAMAÇÃO ORIENTADA À OBJETOS
Sobrecarga e Encapsulamento
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Programação Orientada à Objetos
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Métodos de Construção de Software: Orientação a Objetos
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Orientação a Objetos Parte I
Programação Orientada à Objetos
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Herança em POO Importante:
SISTEMAS DISTRIBUIDOS Aula 4
© Ricardo Pereira e Silva
Aula prática 14 Orientação a Objetos – C++ Parte 2
Análise Orientado aos Objetos Prof. Wolley W. Silva
PROGRAMAÇÃO ORIENTADA A OBJETOS
Programação Orientada à Objetos
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Generalização e herança Agregação e composição
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Bruno Inojosa MCP .NET Framework
Introdução a Programação Orientada a Objetos
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Introdução a Orientação a Objetos
2 – Revisão de Programação Orientada a Objetos
Histórico, cenário atual e características.
20/04/2017 Orientação a Objetos 1 1.
Módulo II Capítulo 1: Orientação a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Continuação Modelagem Orientada a Objetos Técnico Subsequente.
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Padrões de Projeto 2 – Revisão de Programação Orientada a Objetos.
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Análise Orientada a Objetos Por Patrícia Braga Centro Universitário Jorge Amado.
1.
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Introdução ao paradigma de programação: Orientado a Objetos Alexandre Parra http://www.joinville.udesc.br/portal/professores/parra/

Roteiro Paradigma de construção de software Orientação a Objetos Conceitos de Orientação a Objetos (OO) Classe, Objeto e Mensagem Os pilares da Orientação a Objetos (OO) Reuso de Implementação

Paradigma Paradigma é a filosofia adotada na construção de software: Imperativo ou Procedural (C, Fortran, etc...); Lógico (Prolog, etc...); Funcional (Lisp, OCAML, etc...); Orientado a Objetos (Java, C++, SmallTalk, etc... ); Orientado a Aspectos (AspectJ, AspectC++, etc...).

Paradigma Orientado a Objetos (1/2) Sugere a diminuição da distância entre a modelagem computacional e o mundo real. Surgiu na tentativa de solucionar problemas complexos existentes através do desenvolvimento de softwares menos complexos, confiáveis e com baixo custo de desenvolvimento e manutenção.

Paradigma Orientado a Objetos (2/2) Permite que objetos do mundo real sejam mapeados em Objetos no computador, pressupondo que o mundo é composto por objetos. Os sistemas são modelados como um conjunto de objetos que interagem entre si.

Por que programar Orientado a Objetos? Permite alta reutilização de código; Reduz tempo de manutenção de código; Reduz complexidade através da melhoria do grau de abstração do sistema; Aumenta qualidade e produtividade  oferece maiores facilidades ao desenvolvedor; Adoção (aceitação) comercial crescente.

Armadilhas da Orientação a Objetos Pensar no paradigma OO simplesmente como uma linguagem; Aversão a reutilização; Pensar na OO como uma solução para tudo; Programação Egoísta: É preciso documentar!

Orientação a Objetos (OO) É uma forma de entender e representar sistemas complexos como estruturas hierárquicas de objetos que se relacionam.

Conceitos da Orientação a Objetos Classe Objeto (Instância) Mensagem Encapsulamento Herança Polimorfismo ...

Classe (1/3) A classe é a implementação de tipo abstrato de dados (TAD) no paradigma orientado a objetos. Uma classe Java é um molde para a criação de objetos. A classe define as propriedades (atributos) e os comportamentos (métodos). Além disso, uma classe Java define como produzir (instanciar) objetos a partir dela.

Classe (2/3)

Classe (3/3)

Objeto (1/3) Um objeto é uma construção de software que encapsula estado e comportamento, através respectivamente de propriedades (atributos) e operações (métodos); Estado de um Objeto: composto por suas propriedades e seus respectivos valores; Comportamento: a maneira como o objeto reage quando o seu estado é alterado ou quando uma mensagem é recebida.

Objeto (2/3)

Objeto (3/3)

Mensagens Mecanismo através do qual os objetos se comunicam, invocando as operações desejadas; Um objeto (Emissor) envia uma mensagem a outro (Receptor) que executará uma tarefa.

Os pilares da OO Os pilares da OO são mecanismos fundamentais que garantem a filosofia de Orientação a Objetos. São eles: Encapsulamento; Herança; Polimorfismo.

Encapsulamento (1/2) Resumindo: “Não mostre as cartas de seu baralho” Objetivos: Ocultar do mundo externo ao objeto os detalhes de implementação e restringir o acesso às propriedades e aos métodos; Permitir a criação de programas com menos erros e mais clareza. Vantagens: Segurança no acesso ao objeto; Melhor consistência no estado interno, pois evita alterações incorretas nos valores das propriedades.

Encapsulamento (2/2)

Herança (1/3) Resumindo: “Filho de peixe, peixe é”. Permite definir novas classes (subclasses) a partir de uma classe já existente (superclasse). A subclasse herda as propriedades comuns da superclasse e pode ainda adicionar novos métodos ou reescrever métodos herdados. Objetivo: evitar que classes que possuam atributos ou métodos semelhantes sejam repetidamente criados.

Herança (2/3) Pode ser: Simples

Herança (3/3) Pode ser: Múltipla

Polimorfismo Resumindo: “Vamos nos adaptar”. Permite a um método ter várias implementações as quais são selecionadas com base na quantidade de parâmetros e seus tipos que é passado para a invocação do método. Janela ( ) Janela ( 1 x 2 , 2 ) Janela ( 1 x 2 , 2, Azul )

Tipos de Polimorfismo São dois os tipos de Polimorfismo: Sobrescrita ou Redefinição de métodos (Override); Sobrecarga de métodos (Overload).

Exemplo de Sobrecarga (Overload) Permite a existência de vários métodos de mesmo nome, porém com assinaturas levemente diferentes (número, tipo e qtd de parâmetros). public class Soma { public int somar( int x, y) { return x+y; } public double double y) {

Exemplo de Sobrescrita (Override) Permite a existência de vários métodos com assinaturas idênticas, porém com implementações distintas.

Reuso de Implementação Separação interface-implementação  maior reuso Reuso depende de bom planejamento durante a etapa de modelagem. Uma vez criada uma classe, ela deve representar uma unidade de código útil para que seja reutilizável.

Reuso de Implementação Formas de uso e reuso de classes Uso e reuso de objetos criados pela classe: mais flexível Composição: a “é parte essencial de” b Agregação: a “é parte de” b Associação: a “é usado por” b Reuso da interface da classe: pouco flexível Herança: b “é um tipo de” a (substituição útil, extensão)

Composição, Agregação e Associação Composição (tem-um): um trem é formado por locomotiva e vagões. Agregação: uma locomotiva tem farol (mas não vai deixar de ser uma locomotiva se não o tiver). Associação: um trem usa uma estrada de ferro (não faz parte do trem, mas ele depende dela).

Trabalho Leitura do capítulo 1 do livro do autor Meilir Page-Jones: “Fundamentos do Desenho Orientado a Objeto com UML” páginas 1-50. Leitura do arquivo “conceitos_OO.pdf” da autora Tatyana Bitencourt. Entregar impresso no dia 18 de Agosto (segunda-feira).