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

Documentos relacionados
Programação Orientada a Objetos em Python

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

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

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

Programação Orientada a Objetos

Laboratório de programação II

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

O PARADIGMA ORIENTADO POR OBJETOS

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

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

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

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Introdução à Programação Orientada a Objetos. Programação Estruturada vs Programação Orientada a Objetos

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

Polimorfismo. O que é polimorfismo?

Linguagens de Programação Aula 12

Programação Orientada a Objetos. Professor Leonardo Cabral - Larback

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

Introdução à orientação a objetos

Daniel Wildt

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

1 Introdução e Conceitos básicos

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

Programação Orientada a Objetos

Introdução à Programação. Encapsulamento e Herança

Orientação a Objetos (OO)

Linguagem de Programação III

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

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

Conceitos de Programação Orientada a Objetos

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

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

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

Programação Orientada a Objetos

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

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

Programação Orientada a Objetos

Unidade: Introdução à POO (Programação Orientada a Objetos)

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

Orientação a objetos Disciplina: Linguagens de Programação. Prof. Alexandre Cassimiro Andreani

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Herança e Propriedades

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

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

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

Linguagem de Programação IV Introdução

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Interfaces e Classes Abstratas

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Programação Orientada a Objetos

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Programação Orientada a Objetos

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

Classe Abstrata e Interface

Introdução a Orientação a Objetos e UML

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Sobrecarga, Sobreposição e Polimorfismo

Programação Orientada a Objetos

3.4. Programação Orientada a Objetos

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos

Definição. Em POO, a abstração é o processo de esconder os detalhes de implementação de uma aplicação.

LINGUAGEM DE PROGRAMAÇÃO

Aula 7 POO 1 Herança. Profa. Elaine Faria UFU

Herança e Polimorfismo

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

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

Encapsulamento. Alberto Costa Neto DComp - UFS

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

Linguagem de Programação I

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

Programação Orientada a Objetos

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

Transcrição:

Introdução a Programação Orientada a Objetos Fernando de Simas, Airton de Souza, Sérgio Roberto Centro de Ciências Tecnológicas da Terra e do Mar Universidade do Vale do Itajaí UNIVALI. 88302-202 Itajaí SC Brasil simas.programador@univali.br; airton@hotmail.co.jp; sergiogorniski@hotmail.com Abstract. This article comes with the objective to explain the Fundamentals of the paradigm of Object Oriented Programming. Resumo. Este artigo tem como objetivo mostrar os fundamentos do paradigma de Programação Orientada a Objetos. 1. História da Programação Orientada a Objetos A história da Programação Orientada a Objetos remonta-se a década de 1960, mas sua utilização passou a ser mais significativa na década 1990. O termo foi cunhado por Alan Kay, criador da linguagem de programação SmallTalk, porém algumas das ideias da POO já eram aplicadas, sendo que a primeira linguagem a realizar estas idéias foi a linguagem Simula 67, criada por Ole Johan Dahl e Kristen Nygaard em 1967. Hoje em dia muitas línguas usam POO entre elas podemos citar: C#, C++, Java, Delphi, Ruby, Python, entre outras. A maioria delas podem ser consideradas linguagens hibridas, pois aceitam métodos diferentes de programação como a programação por procedimentos, não obrigando o programador a usar POO em seu projeto quando trabalha com essas linguagens. 2. Vantagens e Desvantagens A programação orientada a objetos tem como vantagem, ser um paradigma de fácil manutenção, reutilização de código (evita que métodos e propriedades sejam redeclarados), é de fácil compreensão. Porém tem como desvantagens como, complexidade no aprendizado para desenvolvedores de linguagens estruturadas por exemplo. 3. Fundamentos da Orientação a Objetos

Programação Orientada a Objetos é um paradigma de análise, projeto e programação de softwares que é baseada na interação entre unidades de software denominadas Objetos. Presente em várias linguagens de programação atuais como Java, Object Pascal, C++, PHP, Python, Ruby etc. este paradigma tem meta visar melhor o conjunto de objetos para descrever um sistema de software, ou seja, trazer para o computador uma concepção mais possível do natural. Até o surgimento deste conceito, os programas eram tratados como procedimentos lógicos que recebem dados, os processa e exibe um resultado. Na Orientação a Objetos o foco está nos objetos a serem manipulados, mas isso não quer dizer que a lógica esteja descartada. Para exemplificar, vamos pegar como exemplo uma moto. A classe moto tem as seguintes propriedades: Marca, Modelo, Cor, Ano de Fabricação etc. Em linguagem de programação C++ seria desta forma class Moto private: char *Marca; char *Modelo; char *Cor; int AnoFabricacao; Esta seria o objeto Moto com suas propriedades básicas, além destas, meu objeto também possuiria ações ou métodos. Como é uma moto, poderíamos ter as ações Acelera, Freia, Liga, Desliga, por exemplo. class Moto private: char *Marca; char *Modelo; char *Cor; int AnoFabricacao; public: void Acelera(); void Freia();

void Liga(); void Desliga(); A estratégia da Orientação a Objetos é que os sistemas sejam construídos de uma forma em que os componentes possam ser reutilizáveis e que também, estejam centralizados, desta forma sempre que houver a necessidade de um ajuste, será necessário fazê-lo em apenas em um lugar. Estes objetos possuem duas características básicas que são: Objetos possuem dados e Objetos podem manipular dados e executam ações. Conceitos Básicos Os conceitos básicos da Orientação a Objetos são: Objeto Objeto é a entidade que queremos generalizar, ou seja, transformar em classe. Pode ser uma pessoa, um lugar, um conceito, relatório, qualquer coisa que seja real. Classe Uma classe é a abstração de um objeto, tomamos um objeto real e retiramos todas as características que não são necessárias diante do contexto em que estamos aplicando. Atributo São elementos que definem a estrutura de uma classe. São variáveis que geralmente estão declaradas na seção private de uma classe. Atributos podem ser modificadas por métodos como no exemplo abaixo: class MyClass private : char *Fnome; void SetNome(char *val) FNome = val; char* GetNome() return FNome; Métodos Métodos são as ações que as classes sabem fazer. Eles podem alterar os atributos como foi dito anteriormente, realizar funções que retornem o valor de um atributo e/ou realizar um procedimento, por exemplo.

Herança O mecanismo de herança no paradigma de Orientação a Objetos é um dos seus grandes trunfos. Este permite poupar tempo quando se trata de criar classes que são similares a outras. De uma forma simples, herança é o mecanismo que faz com que uma nova classe herde da classe mãe (ou superclasse) atributos e métodos. class Animal void Andar() /*nada*/ void Dormir() /*nada*/ class Tatu : public Animal void Cavar() /*nothing*/ Polimorfismo Polimorfismo é quando dois ou mais objetos respondem a mesma mensagem de uma maneira diferente. Ele permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Podemos usar a classe Animal novamente como exemplo: class Animal virtual void Som() = 0; class Cachorro : public Animal void Som() cout << "Au au!"; class Vaca : public Animal void Som() cout << "Muuuu!"; No exemplo acima, temos a classe abstrata Animal, declaramos o método Som() como um método virtual, e nas classes derivadas Cachorro e Vaca, fazemos a implementação dos métodos. Encapsulamento

O encapsulamento consiste em definir o que os outros objetos poderão acessar. O encapsulamento é implementado através do uso das palavras reservadas public, private e protected. class Aluno private : int FMatricula; char *FNome; void CadastraAluno(char *Nome) this.fnome = Nome; FMatricula = this.geramatricula(); protected : int GeraMatricula() return "select max(matricula) from alunos where 1=1"; Na classe acima temos na seção private os atributos FMatricula e FNome que respectivamente armazenarão o número da matrícula e nome do aluno. Estes só poderão ser acessados dentro da própria classe. Na seção public temos o método cadastrar aluno, que recebe como parâmetro uma string que será o novo valor do atributo FNome, também neste método há a chamada do método GeraMatricula() que está declarado na seção protected. Métodos e atributos na seção protected estarão disponíveis apenas na própria classe e nas subclasses. Referencias Carvalho, Faical Farhat de, (2001) Delphi 6: Programação Orientada a Objetos. Deitel, Harvey M., (1998) C++: Como Programar.