Paradigma Orientado a Objetos

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Análise e Projeto Orientado a Objetos
Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Programação em Java Prof. Maurício Braga
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Projeto – Parte II - Exemplos de Diagrama de Colaboração
Princípios da Orientação a Objetos e a Linguagem UML
INTRODUÇÃO À TECNOLOGIA DE OBJETOS Prof. Thiago Pereira Rique.
Perspectivas baseadas em procedimentos e orientadas por objectos Conceitos principais: Encapsulamento, Herança, Polimorfismo (Encapsulation, Hierarchy,
Implementação Orientada a Objetos Prof. Rodrigo Rocha – UMC Prof
Análise e Projeto de Sistemas
Linguagens de Programação Orientadas a Objetos
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.
Adaptado de material da profa. Maria Aparecida Livi
Análise Orientada a Objetos
O Paradigma de Orientação a Objetos
Introdução ao paradigma de programação: Orientado a Objetos
Curso Sistemas de Informação Disciplina: Arquitetura de Software
7 Abstração Genérica Unidades genéricas e instanciação.
Programação Orientada a Objetos
Programação orientada a objetos com Java
Algoritmos e Estruturas de Dados II
UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS!
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Algoritmos e Programação
O Portal do Estudante de Computação
TÉCNICAS DE PROGRAMAÇÃO II
Paradigmas de programação
Variáveis, Tipos de Dados e Constantes
Análise Orientada a Objetos
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Princípios de Orientação à Objetos
MÉTODO JACOBI.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Laboratório de Programação I
Linguagem de Programação II
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
Oberdan Bitencourt Ferreira
Classes, Objetos, Atributos e Métodos JAVA
Orientação a Objetos e Java Graduação em Ciência da Computação
Orientação a Objetos Parte I
PROGRAMAÇÃO ORIENTADA A OBJETO - JAVA
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
PROGRAMAÇÃO ORIENTADA A OBJETOS
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS (VETORES)
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Ferramentas para Orientação a Objetos
Programação I Aula 1 Prof. Gilberto Irajá Müller Última atualização 2/3/2009.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Orientação a Objetos Programação Estruturada e Orientada a Objetos
Introdução a Programação Orientada a Objetos
Introdução a Orientação a Objetos
20/04/2017 Orientação a Objetos 1 1.
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Padrões de Projeto Aula 9 – Padrão Adapter.
Linguagem Java Programação II.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Análise Orientada a Objetos Prof. Wolley W. Silva
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
SUB-ROTINAS EM PASCAL PROGRAMAÇÃO MODULARIZADA 252.
Transcrição da apresentação:

Paradigma Orientado a Objetos Professor: Leandro Luque

Como pensamos? Paradigma procedural Quais são os procedimentos/funções necessários para resolver o problema? Quais são os dados necessários para resolver o problema? Programas modularizados em procedimentos e funções Procedimento 3 Dados Procedimento 1 Procedimento 2

Como pensamos? Exemplo Cálculo de média de alunos Notas procedure calcularMedia(); var contador: integer; begin media := 0; for contador:=1 to 4 do begin media := media + notas[contador] end; media := media / 4; procedure exibirMedia(); writeln('A média do aluno é ', media); lerNotas(); calcularMedia(); exibirMedia(); end. Notas program media; uses wincrt; var notas: Array[1..4] of real; media: real; procedure lerNotas(); cont: integer; begin for cont:=1 to 4 do begin write(‘Nota ', cont, ': '); readln(notas[cont]); end; Calcular média Ler notas do aluno Exibir média do aluno

Mudando de Paradigma Problema Solução Solução

Perspectivas de Estudo do Paradigma Orientado a Objetos (OO) História/evolução dos conceitos; Análise isolada dos conceitos; Comparação com o paradigma procedural;

História do Paradigma Orientado a Objetos e seus conceitos Simula 67 Linguagem de propósito geral; Suporte a simulação de sistemas; Simulação de fluxos de barcos no mar norueguês

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Mapeamento problema -> solução Procedimento Complexidade Crescente em Função do Número de Navios Procedimento

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Exemplo simples de simulação: Lançamento de uma bola em uma sala. Onde a bola irá parar? Verificar colisão com o chão Mover bola Dados Verificar colisão com a parede Verificar colisão com a cadeira Alterar movimento da bola

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Verificar colisão com a cadeira 2 ... ... Verificar colisão com o chão Verificar colisão com a cadeira 1 ... Dados Alterar a posição da Bola 1 Verificar colisão com a parede ... Alterar a posição da Bola 2 ... ...

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Gestão da complexidade: dividir para conquistar Parede Chão Mapeamento direto Dados Comportamento Bola Cadeira

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Quais são as características e comportamento desses objetos? Bola mover alterarMovimento elasticidade Características (dados): elasticidade, pressão, resistência, x, y, z, rotacao, velocidade, aceleracao, ... Comportamento (procedimentos): mover, encher, esvaziar, ... pressão resistência ... encher

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Quais são as características e comportamento desses objetos? mover recResistencia Cadeira material pernas Características (dados): material, pernas, cor, resistência, ... Comportamento (procedimentos): mover, subirAssento, descerAssento resistência ... recuperarPosicao

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Interação entre objetos: recResistencia mover recResistencia recuperarPosicao Chão Cadeira encher mover recResistencia alterarMovimento Parede Bola

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Diferença na abordagem proposta: Permite o encapsulamento dos dados Procedimento 3 Dados procedimento1 procedimento2 acoplamento dados Procedimento 1 Procedimento 2 procedimento3 Facilita a gestão da complexidade

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Como definir os objetos em programação? Especificar as características e métodos para cada objeto? Captar o que há de comum a classes de objetos

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Classe: Abstração do que há de comum (em termos de características e comportamento) a um conjunto de objetos. Características (atributos): velocidade, potência, numPortas, ... Comportamento (métodos): acelerar, frear, ligar, desligar, ...

História do Paradigma Orientado a Objetos e seus conceitos (cont.) Classe: Mamífero Características (atributos): idade, altura, peso, ... Comportamento (métodos): mover, alimentar, descansar ...

Formalização de Conceitos Paradigma orientado a objetos: Um programa pode ser entendido como uma coleção de objetos com suas características e comportamento, especificados por classes, que interagem para a produção do resultado esperado.

Formalização de Conceitos (cont.) Classes: Especificam o que há de comum entre um conjunto de objetos. Podem ser especializações de outras classes (relacionamento de herança – forma de reuso);

Formalização de Conceitos (cont.) Objeto: Abstração do domínio do problema ou da solução. É conhecido como instância de classe; Um carro qualquer é um Objeto da classe dos carros potência = 80 numPortas = 4 ... Características (atributos): velocidade, potência, numPortas, ... Comportamento (métodos): acelerar, frear, ligar, desligar, ...

Formalização de Conceitos (cont.) Objeto: Possui: Identidade. dois objetos são diferentes mesmo que todos os seus dados sejam iguais dados que representam suas características e são chamados de atributos; procedimentos que implementam seu comportamento e são chamados de métodos;

Formalização de Conceitos (cont.) Atributos: dados que representam as características de objetos; Métodos: operações (procedimentos) que implementam o comportamento de objetos Podem receber parâmetros e retornar valores; Ao conjunto composto por nome do método + parâmetros dá-se o nome de assinatura do método Uma classe pode ter vários métodos com o mesmo nome, mas quantidade ou tipos de parâmetros diferentes (polimorfismo de sobrecarga); Uma classe especializada pode redefinir um método de uma classe mais genérica (polimorfismo de inclusão);

Formalização de Conceitos (cont.) Mensagens: Interação entre diferentes objetos. Exemplo: Objeto de carro interage com objeto da estrada enquanto anda nela; Objeto de cliente interage com objeto de produto para conhecer suas características;

Formalização de Conceitos (cont.) Classe e Objeto: Receita de bolo 4 ovos 2 xícaras de açúcar 3 xícaras de farinha de trigo 1 copo de suco de laranja ( 250ml) 1 colher de sopa de fermento em pó ... Bolos diferentes

Representação de classes e objetos na UML Nome da classe Atributos Métodos Nome do objeto Classe

Codificação de classes com Java Objetos class Carro { double potencia; int numeroPortas; java.util.Date dataFabricacao; Carro(double p, int numP, String d) { potencia = p; //... } void ligar() { // código para ligar o carro. void desligar() { // código para desligar o carro. void trocarMarcha() { // código para trocar a marcha do carro. Carro FuscaDoJuscelino = new Carro(54, 3, “07/06/1969”); Carro FuscaDoJoao = new Carro(76, 5, “10/12/2008”);

Como identificar classes e objetos? Pode representar: Coisas tangíveis: livros, pessoas Incidente (evento, ocorrência): CopaDoMundo, BO Interação (transação, contrato): Venda Quais objetos estão presentes no domínio do problema e solução? Procure por substantivos no domínio do problema/solução para identificar classes/objetos e atributos; Procure por verbos no domínio do problema/solução para identificar métodos;

Como identificar classes e objetos? Perguntas: Quais dados precisam ser produzidos, processados ou armazenados? Qual deve ser o comportamento do sistema? Como posso organizar os dados e comportamento visando o reuso?

Como identificar classes e objetos? Exemplo: “Um cliente deve poder consultar e comprar produtos através da nossa loja virtual. Desejamos poder cadastrar os produtos informando seu código, nome e preço e deixaremos para o cliente a realização do cadastro. No cadastro do cliente, deverá ser informado o cpf, nome, endereço e telefone.”

Leitura Recomendada A history of object-oriented programming and their impact on program design and software development: http://jeffsutherland.com/papers/Rans/OOlanguages.pdf

Obrigado! Ajude a plantar árvores. É possível compensar sua emissão de carbono: www.clickarvore.com.br