Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos



Documentos relacionados
UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Orientação à Objetos. Aécio Costa

Programas eram lineares e com poucos módulos (Programação estruturada) Aumento da complexidade dos sistemas e difícil reusabilidade dos mesmos

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Profº. Enrique Pimentel Leite de Oliveira

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

POO Programação Orientada a Objetos. Classes em Java

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Linguagem de Programação I

Análise e Projeto Orientados por Objetos

Orientação a Objetos com Java

Desenho de Software. Desenho de Software 1

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Análise e Projeto Orientados por Objetos

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Linguagem de Programação III

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programa do Módulo 2. Fundações do Modelo Objeto

TOTVS BA Guia de Customização Linha Logix

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Análise e Projeto de Software

Engenharia de Software III

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Técnicas de Programação II

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

2 Desenvolvimento de Software Orientado a Aspectos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Análise e Projeto de Sistemas

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

Modelagemde Software Orientadaa Objetos com UML

UML Aspectos de projetos em Diagramas de classes

Pesquisa e organização de informação

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

1. Apresentação Objetivos

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

CURSO DE PROGRAMAÇÃO EM JAVA

PROGRAMAÇÃO ORIENTADA A OBJETOS

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Organização e Arquitetura de Computadores I. de Computadores

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Python Intermediário. terça-feira, 4 de agosto de 15

3. PARADIGMA ORIENTADO A OBJETOS

Orientação a Objetos

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

UML Unified Modeling Language

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Programação de Computadores - I. Profª Beatriz Profº Israel

Dadas a base e a altura de um triangulo, determinar sua área.

Conceitos de Banco de Dados

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Herança. Alberto Costa Neto DComp - UFS

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Orientação a Objetos

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

Prof. Marcelo Henrique dos Santos

Prof. Me. Marcos Echevarria

Teste de Software. Ricardo Argenton Ramos Engenharia de Software I

Programação Orientada a Objetos em Java

Módulo 15 Resumo. Módulo I Cultura da Informação

2 Engenharia de Software

Linguagens de Programação Aula 10

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Polimorfismo. Prof. Leonardo Barreto Campos 1

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Aspectos técnicos do desenvolvimento baseado em componentes

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro.

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Introdução à Programação Orientada a Objetos

Padrões de projeto 1

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

AULA 4 Sistemas Operacionais

BANCO DE DADOS. Isac Aguiar isacaguiar.com.br

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

ProgramaTchê Programação OO com PHP

Tema 1: Modelo Estático

formação em programação em c/c++

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Desenvolvimento estruturado versus orientado a objetos.

Algumas propriedades dos objetos:

Transcrição:

Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013

O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton Carlos

Objetivos Comparação Programação Estrutura e POO Compreender os conceitos de Programação Orientada a Objetos (POO); Entender as vantagens de se utilizar POO; Entender os conceitos de POO aplicado a uma linguagem de programação (C# como exemplo); Aprender a criar classes e utilizá-las em um contexto prático.

Plano de Aula Comparação Programação Estrutura e POO Definição de Objetos Conceito, propriedades Definição de Classe Elementos Principais de Programação Orientada a Objeto Abstração, Encapsulamento, Modularidade, Herança, Polimorfismo Visibilidade Classe em C#

Paradigma Estrutural x Orientação a Objeto

Paradigma Estrutural x Orientação a Objeto Consiste no mapeamento do problema no mundo real a ser resolvido num modelo computacional. Programação Estrutura Consiste na criação de um conjunto de procedimentos (algoritmos) para resolver o problema Encontrar modos apropriados de armazenar os dados Programação Orientada a Objetos Consistem em identificar os objetos e as operações relevantes no mundo real O mapeamento desses em representações abstratas no espaço de soluções

Programação Orientada a Objetos Paradigma de Programação Dominante nos dias atuais Substituiu as técnicas de programação procedimental (estruturada) Fornece um mapeamento direto entre o mundo real e as unidades de organização utilizadas no projeto Diversas unidades de software, chamadas de objetos, que interagem entre si Separa claramente a noção de o que é feito de como é feito

Programação Orientada a Objetos Representação:

Definição de Objetos Um objeto é algo do mundo real : Concreto ou Abstrato As percepção dos seres humanos é dada através dos objetos Um objeto é uma entidade que exibe algum comportamento bem definido.

Objetos Características Dados representam características São chamados atributos São as variáveis do objeto Comportamento Operações definem comportamento São os métodos de um objeto São as funções que são executadas por um objeto

Objetos - Propriedades Estado Representado pelos valores dos atributos de um objeto Comportamento Definido pelo conjunto de métodos do objeto Estado representa o resultado cumulativo de seu comportamento Identidade Um objeto é único, mesmo que o seu estado seja idêntico ao de outro; Seu valor de referência Os valores dos DADOS são modificados a partir das OPERAÇÕES sobre estes dados

Objetos - Propriedades Estado Comportamento Acesa Apagada Acender Apagar Identidade

Classes São especificações para objetos; Representam um conjunto de objetos que compartilham características e comportamentos comuns. Todo carro tem em comum: Característica Cor Pneu Direção Comportamento Dirigir Frear

Abstração Abstração é uma das formas fundamentais que nós lidamos com a complexidade.; Quando queremos diminuir a complexidade de alguma coisa, ignoramos detalhes sobre as partes para concentrar a atenção no nível mais alto de um problema; Não se analisa o todo, em POO é importante analisar as partes para entender o todo.

Abstração Foca a característica essencial de alguns objetos relativo a perspectiva do visualizador

Encapsulamento Encapsulamento é o processo de esconder todos os detalhes de um objeto que não contribuem para as suas características essenciais; O encapsulamento é o modo de dar ao objeto seu comportamento caixa-preta, que é o segredo da reutilização e confiabilidade. Se o estado de um objeto foi modificado sem uma chamada de método desse objeto, então o encapsulamento foi quebrado

Encapsulamento e Abstração São conceitos complementares Abstração foca sobre o comportamento observável de um objeto, enquanto encapsulamento se concentra na execução que dá origem a esse comportamento

Modularidade Modularização é o processo de dividir um todo em partes bem definidas, que podem ser construídas e examinadas separadamente. Essas partes se interagem entre si, fazendo com que o sistema funcione de forma adequada Particionar um programa em componentes individuais, pode reduzir a complexidade.

Herança A abstração ajuda a diminuir a complexidade. Encapsulamento ajuda a gerenciar essa complexidade, ocultando a visão dentro de nossa abstrações. A modularidade também ajuda, dando-nos uma maneira de agrupar logicamente abstrações relacionadas. Um conjunto de abstrações, muitas vezes forma uma hierarquia, e identificando essas hierarquias no nosso projeto, simplifica grandemente o nossa compreensão do problema.

Herança Herança é o mecanismo para expressar a similaridade entre Classes, simplificando a definição de classes iguais que já foram definidas. O que um leão, um tigre, um gato, um lobo e um dálmatas têm em comum? Como eles são relacionados?

Herança

Polimorfismo Polimorfimos Poli -> varias; Morfos -> formas; Significa que um objeto pode assumir diferentes formas; O conceito de polimorfismo está associado a Herança; É caracterizado como o fato de uma operação poder ser implementada de diferentes maneiras pelas classes na hierarquia.

Polimorfismo

Visibilidade Private O nível de acesso se restringe apenas a classe; Não é passado por herança; Public O nível de acesso é irrestrito; Por padrão, é a visibilidade definida para métodos e atributos em uma classe Protected É visível em toda a classe; É passado por herança (mesmo em pacotes diferentes); Internal Com este modificador, o acesso é limitado apenas ao assembly atual. Protected Internal Com este modificador, o acesso é limitado ao assembly atual e aos tipos derivados da classe que contém o modificador.

Classes Classe Lampada Atributos potencia, ligada métodos ligar, desligar, estaligada

Classes Nome da classe Atributos métodos

Classes em C# Declaração de uma classe em C# A palavra-chave class é utilizada para definir uma nova classe A classe Lâmpada, por exemplo, representa uma entidade lâmpada Cada lâmpada armazena o seu estado (ligado ou desligado) e realiza as operações ligar e desligar

Classes em C# Declaração de uma classe em C# public class Lampada { private bool ligado; public void ligar() { ligado= true; } public void desligar() { ligado=false; } public bool estaligada(){return ligado;} }

Resumo Objeto Qualquer entidade que possui características e comportamento Classe Descreve um tipo de objeto Define atributos e métodos Atributo Define características do objeto Método Operações que o objeto pode realizar

Exercício implemente as classes abaixo em C#

Exercícios Imagine uma lâmpada que possa ter três estados: apagada, acesa e meia-luz. Usando a classe Lampada, vista nas transparências, escreva uma classe em C# para essa nova lâmpada. Crie uma classe Livro que represente os dados básicos de um livro. Escreva uma classe contenha a data do dia das mães, ela deve conter dia, mês e ano.

Dúvidas