Conceitos de programação orientada a objeto

Documentos relacionados
LINGUAGEM DE PROGRAMAÇÃO

Introdução à Orientação a Objetos

Informática. Professor: Diego Oliveira. Conteúdo 04: Orientação a Objetos

O PARADIGMA ORIENTADO POR OBJETOS

Introdução ao Java. Prof. Herbert Rausch Fernandes

Laboratório de programação II

Introdução à Programação Orientada a Objetos. Prof. Leonardo Barreto Campos 1

Programação Orientada a Objetos

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

ORIENTAÇÃO A OBJETOS Histórico:

Requisitos de sistemas

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Prof: Ricardo Quintão Site:

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

Modelo do Mundo Real. Abstração. Interpretação

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Fundamentos de Programação

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Programação Orientada a Objetos JAVA - NETBEANS

Panorâmica da Programação Orientada a Objetos

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Java para Desktop. Programação Orientada à Objetos 2 JSE

Programação Java (nível intermediário) 4. Polimorfismo

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Programação Orientada a Objetos

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Programação Orientada a Objetos

Apresentação da Disciplina e Revisão dos Conceitos de Orientação a Objetos

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013

Introdução à UML. Prof. Jesus José de Oliveira Neto

Herança Tiago Eugenio de Melo

Conceitos de Programação Orientada a Objetos

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Introdução a classes e objetos. Copyright 2006 by Pearson Education

Programação Orientada a Objetos

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Linguagem de Programação I Apresentação da Disciplina

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Linguagem de Programação III

Conceitos de Orientação a Objetos

Programação Orientada a Objetos

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Linguagens de Programação Aula 12

Encapsulamento. Separa a interface de um objeto dos detalhes de seu funcionamento interno. Caixa preta 2/27

Levantamento, Análise e Gestão Requisitos. Aula 03

Linguagens de Programação

Orientação a objetos. Objetos ou Instâncias I

Linguagem de Programação. Diagrama de classes

Linguagem de Programação III

Desenvolvimento de Aplicações Desktop

Linguagens de Programação Aula 3

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Engenharia de Software Projeto de software

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Capítulo 6: Linguagens de Programação

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Sobrecarga, Sobreposição e Polimorfismo

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Plano de Trabalho Docente Ensino Técnico

Programação Orientada a Objetos em Python

Programação Orientada a Objeto

FIC-POO. Aula 1.1 Apresentação do Curso e Introdução aos Paradigmas de Programação. Prof. Dr. Bruno Moreno

Linguagem de Programação III

Programação Orientada a Objetos

Orientação a Objetos e UML

Capítulo 2. Orientação a Objetos

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Rafael B. Pereira (

Tópicos Especiais em Sistemas de Telecomunicações IV

2. Classes, Objectos, Herança e Polimorfismo

2. Classes, Objectos, Herança e Polimorfismo

Introdução à Orientação a Objetos. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

LO GICA E TE CNICA DE PROGRAMAC ÃO. TÁSSIO JOSÉ GONÇALVES GOMES

Fundamentos de Sistemas Operacionais

Aula II Orientação a Objetos. Pedro Baesse Alves Pereira

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Introdução ao paradigma da orientação a objetos

ACH2002. Orientação a Objetos

Introdução à Orientação a Objetos em Java

Programação Orientada a Objetos Introdução a POO Modelo de Objetos Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

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

Programação I Curso: Sistemas de Informação. Prof.: José Ronaldo Leles Júnior .:

Plano de Aula - Lógica de Programação - cód Horas/Aula

Python Orientação a Objetos. Introdução à Programação SI2

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

Transcrição:

Conceitos de programação orientada a objeto A linguagem Java é (principalmente) orientada a objetos. Se você não usou uma linguagem orientada a objetos antes, os conceitos de OOP podem parecer estranhos à primeira vista. Esta seção é uma rápida introdução aos conceitos de linguagem OOP, usando programação estruturada como um ponto de contraste. O que é um objeto? Linguagens de programação estruturas, como C e COBOL, seguem um paradigma de programação diferente daquelas orientadas a objetos. O paradigma de programação estruturada é altamente orientado a dados: você possui estruturas de dados e instruções do programa atuam nesses dados. Linguagens orientadas a objetos, como a linguagem Java, combinam instruções de dados e programas em objetos. Um objeto é uma entidade autocontida que contém atributos e comportamento, e nada mais. Em vez de ter uma estrutura de dados com campos (atributos) e transmite essa estrutura em toda a lógica do programa que atua nela (comportamento), em uma linguagem orientada a objetos, dados e lógica de programa são combinados. Essa combinação pode ocorrer em níveis completamente diferentes, de objetos com baixa granularidade, como Number, a objetos com alta granularidade, como um serviço FundsTransfer em um aplicativo financeiro amplo. Objetos pai e filho Um objeto pai é aquele que serve como base estrutural para derivação de objetosfilho mais complexos. Um objeto filho assemelha se ao seu pai, mas é mais especializado. Com o paradigma orientado a objetos, é possível reutilizar os atributos comuns e o comportamento do objeto pai, incluindo nesses objetos filho atributos e comportamentos diferentes. (Você aprende mais sobre herança na próxima seção deste tutorial.) Comunicação e coordenação de objetos Os objetos se comunicam enviando mensagens (chamadas de métodos na linguagem Java). Além disso, em um aplicativo orientado a objetos, o código do programa coordena as atividades entre objetos para executar tarefas dentro do contexto do domínio de aplicativo específico. Resumo de objeto Um objeto bem escrito: https://www.ibm.com/developerworks/br/java/tutorials/j introtojava1/ 1/5

Tem limites nítidos Executa um conjunto finito de atividades Conhece apenas sobre seus dados e quaisquer outros objetos necessários para realizar suas atividades Em essência, um objeto é uma entidade discreta que possui apenas as dependências necessárias em outros objetos para executar suas tarefas. Agora, você vê como um objeto se parece. O objeto Person Eu começo com um exemplo que baseia se em um cenário de desenvolvimento de aplicativo comum: um indivíduo sendo representado por um objeto Person. Voltando à definição de um objeto, você sabe que um objeto tem dois elementos primários: atributos e comportamento. Eu mostro como eles se aplicam a Person. Atributos Quais atributos uma pessoa pode ter? Alguns atributos comuns incluem: Name Age Height Weight Eye color Gender Você provavelmente pensará em outros (e pode sempre incluir mais atributos posteriormente), mas esta lista é um bom começo. Comportamento Uma pessoa real pode fazer todo o tipo de ação, mas comportamentos de objetos geralmente estão relacionados a algum tipo de contexto de aplicativo. Em um contexto de aplicativo de negócios, por exemplo, você pode querer perguntar ao seu objeto Person : "Qual é sua idade?" Em resposta, Person informaria o valor de seu atributo Age. Lógica mais complexa pode estar oculta dentro do objeto Person, por exemplo calcular um Índice de massa corpórea (IMC) de uma pessoa para um aplicativo de saúde, mas, por enquanto, suponha que Person tenha o comportamento de responder a estas questões: https://www.ibm.com/developerworks/br/java/tutorials/j introtojava1/ 2/5

Qual é seu nome? Qual é sua idade? Qual é sua altura? Qual é seu peso? Qual é a cor de seus olhos? Qual é seu sexo? Estado e sequência Estado é um conceito importante em OOP. Um estado de objeto é representado a qualquer momento pelo valor de seus atributos. No caso de Person, seu estado é definido por atributos como nome, idade, altura e peso. Se você quisesse apresentar uma lista de vários desses atributos, poderia fazer isso usando uma classe String, da qual eu falarei mais posteriormente no tutorial. Usando os conceitos de estado e sequência juntos, é possível dizer para Person, "Diga me quem você é fornecendo me uma listagem (oustring) de seus atributos." Princípios de OOP Se você veio de um plano de fundo de programação estruturada, a proposição de valor de OOP pode ainda não estar muito clara. Afinal, os atributos de uma pessoa e qualquer lógica para recuperar (e converter) esses valores podem ser escritos em C ou COBOL. Esta seção esclarece os benefícios do paradigma de OOP explicando seus princípios de definição: encapsulamento, herançae polimorfismo. Encapsulamento Voltar para parte superior Lembre se de que um objeto é, acima de tudo, discreto ou autocontido. Essa característica é o princípio do encapsulamento em funcionamento.ocultação é outro termo que às vezes é usado para expressar a natureza autocontida e protegida de objetos. Independentemente da terminologia, o que é importante é que o objeto mantém um limite entre seu estado e o comportamento e o mundo externo. Como objetos no mundo real, objetos usados na programação de computador possuem vários tipos de relacionamentos com diferentes categorias de objetos nos aplicativos que os usam. https://www.ibm.com/developerworks/br/java/tutorials/j introtojava1/ 3/5

Na plataforma Java, é possível usar modificadores de acesso (que eu apresento posteriormente no tutorial) para variar a natureza dos relacionamentos de objetos de público para privado. O acesso público é muito aberto, considerando que acesso privado significa que os atributos de objetos estão acessíveis apenas dentro do próprio objeto. O limite público/privado impinge o princípio de encapsulamento orientado a objetos. Na plataforma Java, é possível variar a intensidade desse limite em uma base de objeto por objeto, dependendo de um sistema de confiança. O encapsulamento é um recurso poderoso da linguagem Java. Herança Na programação estruturada, é comum copiar uma estrutura, nomeá la e incluir ou modificar os atributos que torna a nova entidade (como um registro Account ) diferente de sua fonte original. Com o tempo, essa abordagem gera uma grande questão de código duplicado, o que pode criar problemas de manutenção. O OOP apresenta o conceito de herança, pelo qual classes especializadas sem código adicional podem "copiar" os atributos e o comportamento de classes de origem na qual elas se especializam. Se alguns desses atributos ou comportamentos precisarem mudar, você os substitui. O único código fonte a ser mudado é o código necessário para criar classes especializadas. Como vimos na seção "Conceitos da programação orientada a objetos", o objeto de origem é chamado de pai e a nova especialização é chamada de filho. Herança em funcionamento Suponha que você esteja programando um aplicativo de recursos humanos e queira usar a classe Person como base (chamada de superclasse) para uma nova classe chamada Employee. Sendo filha de Person, Employee teria todos os atributos de uma classe Person, junto com aqueles adicionais, como: Número de identificação de contribuinte Número de matrícula Salário A herança facilita a criação da nova classe Employee sem a necessidade de copiar todo o código Person manualmente. Você verá muitos exemplos de herança na programação Java posteriormente no tutorial, especialmente na Parte 2. https://www.ibm.com/developerworks/br/java/tutorials/j introtojava1/ 4/5

Polimorfismo O polimorfismo é um conceito mais difícil de compreender do que o encapsulamento e a herança. Em essência, isso significa que objetos que pertencem à mesma ramificação de uma herança, quando enviam a mesma mensagem (ou seja, quando efetuam a mesma ação), podem manifestar esse comportamento de forma diferente. Para entender como o polimorfismo se aplica a um contexto de aplicativo de negócios, retorne ao exemplo de Person. Lembre se de dizer aperson para formatar seus atributos em uma String? O polimorfismo torna possível que Person represente seus atributos em uma variedade de formas, dependendo do tipo que Person é. O polimorfismo é um dos conceitos mais complexos que você encontrará no OOP na plataforma Java e está além do escopo de um tutorial introdutório. https://www.ibm.com/developerworks/br/java/tutorials/j introtojava1/ 5/5