histÓrico e introduÇÃo À orientaÇÃo a objetos · introduÇÃo À orientaÇÃo a objetos prof....

64
HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião

Upload: others

Post on 03-Jun-2020

40 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS

Prof. Me. Hélio Esperidião

Page 2: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

O QUE É UM ALGORITMO?

É qualquer procedimento bem definido queinforma algum valor ou conjunto de valores comoentrada e produz algum valor ou conjunto devalores como saída.

Page 3: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PROGRAMAS

Um computador nada maisfaz do que executarprogramas.

01Um programa ésimplesmente uma sequenciade instruções definida por umprogramador em umalinguagem de especifica quepode ser executada em umcomputador.

02Um programa pode sercomparado a uma receita queindica os passos elementaresque devem ser seguidos paradesempenhar uma tarefa.

03

Page 4: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PROGRAMAS

Cada instrução é executada no computador por seu principal componente, o processador ouCPU (Unidade Central de Processamento).

Formalmente um programa:

É um conjunto de instruçõesque descrevem uma tarefa aser realizada por umdispositivo computacional.

Page 5: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

LINGUAGEM DE PROGRAMAÇÃO

É um método padronizado para comunicar instruções que serão processadas em um processador.

Permite que um programador especifique precisamente em quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas em circunstâncias pré determinadas

Exemplos:

C

C++

Java

Page 6: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

MULTIPLATAFORMA

São aquelas linguagens que podem ser executadas em sistemas operacionais distintos.

Page 7: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

NÃO PORTÁVEIS

São aquelas desenvolvidas para um equipamento ou sistema operacional especifico.

Exemplos:

Visual Basic

Plataforma .net da Microsoft

Page 8: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PROGRAMAÇÃO DE ALTO NÍVEL

É uma linguagem com um nível de abstraçãorelativamente elevado, longe do código de máquina e mais próximo à linguagem humana.

O programador de uma linguagem de alto nívelnão precisa conhecer características do processador, como instruções e registradores. Essas características são abstraídas na linguagemde alto nível.

Page 9: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

LINGUAGENS DE ALTO NÍVEL:

ASP

Java

MATLAB

PHP

Visual Basic

Page 10: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PROGRAMAÇÃO DE BAIXO NÍVEL

É uma linguagem de programação que não abstrai as características da arquitetura do computador.

É necessário conhecer detalhes físicos da maquina que está sendo programada.

As linguagens de baixo nível estão diretamente relacionadas com a arquitetura do computador.

Exemplo: Assembly.

Page 11: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

BAIXO NÍVEL VS ALTO NÍVEL

Vantagens Desvantagens

Baixo nível

Programas são processados mais rapidamente. Ocupam menos espaço na memória

Programas tem pouca portabilidade, ou seja, são específicos para cada tipo de processador) e não são estruturados

AltoNível

Programas tem maior portabilidade e as linguagens são mais estruturadas

Programas exigem mais tempo de processamento

Page 12: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

TERMOS UTILIZADOS

Termo Descrição

Compilar Transformar código fonte em código de maquina.

Rodar é o mesmo que executar

Executar Carregar o programa na memória e iniciar o processamento

Em execução O programa está na memória, pode estar ou não sendo executado pelo processador

Debug Análise linha a linha do código a procura de erro

“Debugar” O mesmo que Debug

Case Sensitive Maiúsculas e minúsculas fazem diferença

Page 13: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

VARIÁVEIS

Definem um espaço de memória para armazenar dados.

Possuem tipos específicos para armazenamento de dados.

Um espaço destinado para guardar números é diferente de um espaço criado para guardar letras ou caracteres.

X= 5

Y=3*X

Page 14: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

VARIÁVEIS

O nome de uma variáveldeve começar com umaletra

01Os caracteressubsequentes devem serletras, números ousublinhado

02O nome de uma variávelnão pode ser igual a umapalavra reservada nemigual ao nome de umafunção declarada peloprogramador

03

Page 15: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

VARIÁVEIS Todas as variáveis devem ser declaradas antes de

serem usadas.

Page 16: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

TIPOS BÁSICOS

Caractere

O valor armazenado é um caractere ou um conjunto de caracteres(Letras).

Inteiro

Número inteiro é o tipo padrão e o tamanho do conjunto que pode ser representado normalmente depende da máquina em que o programa está rodando.

Page 17: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

TIPOS BÁSICOS

Real:

Número em ponto flutuante de precisão simples. São conhecidos normalmente como números reais.

Lógico:

Verdadeiro ou falso

Page 18: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

INTRODUÇÃO AO PARADIGMA

Uma das primeiras providências a serem tomadasquando se deseja aprender algo novo é entender ostermos que compõem a expressão que a identifica.

Em outras palavras, entenda o nome do novoassunto antes de se aprofundar nele.

Page 19: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PARADIGMA

Embora o termo “paradigma” não sejatão comum assim em nosso cotidiano,seu significado é simples.

De acordo com Houaiss, Franco e Villar(2001, p. 329), paradigma significamodelo, padrão.

No contexto da programação decomputadores, um paradigma é umjeito, uma maneira, um estilo de seprogramar

Page 20: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PROGRAMAÇÃO ORIENTADA A

OBJETOS

É um paradigma que atualmente está entre os mais difundidos.

Isso acontece porque se trata de um padrão que tem evoluídomuito, principalmente em questões voltadas ao reaproveitamentode código, o que é muito importante no desenvolvimento dequalquer aplicação moderna.

Page 21: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

POO

A Programação Orientada aObjetos (POO) diz respeito a umpadrão de desenvolvimento que éseguido por muitas linguagens,como C# e Java

Page 22: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

A LINGUAGEM JAVA É ORIENTADA A OBJETOS.

Também chamada(OOP) é um modo de conceituarum programa de computador como um conjunto deobjetos que se interagem.

Para alguns, ela é apenas um modo de organizarprogramas em qualquer linguagem pode ser usadapara criar programas orientados a objetos

Page 23: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PROGRAMA DE COMPUTADOR

O programa de computador é o meio pelo qual um computador executa cálculos e funções.

Ele é escrito com o uso de comandos, operadores, variáveis e alguns outros recursos que, dispostos corretamente, formam uma linguagem de programação.

O que de melhor um computador faz é receber, processar e disponibilizar nomes, valores, fórmulas e textos que, de forma genérica, chamamos de dados. Tudo isso, é claro, por meio de um programa

Page 24: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PROCESSAMENTO DE DADOS

O que nos interessa, por ora, são justamente os dados. Santos (2003) nos ensina que o paradigma de programação orientada a objetos considera que os dados a serem processados e os mecanismos de processamento desses dados devem ser considerados em conjunto

Essa relação entre os dados e as operações neles aplicadas logo será mais bem detalhada

Page 25: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

REPRESENTAÇÕES SIMPLIFICADAS

Quando representamos elementos reais de formasimplificada e padronizada, estamos criando ummodelo para esses elementos.

Modelos são representações simplificadas deobjetos, pessoas, itens, tarefas, processos,conceitos, ideias etc., usados comumente porpessoas no seu dia a dia, independentemente douso de computadores.

Page 26: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

SERIA ADEQUADO, ENTÃO, ASSOCIARMOS MODELOS A

ELEMENTOS QUE VEMOS NO MUNDO REAL?

Page 27: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

MODELOS

Os modelos geralmente agregam dados e as operações que se aplicam a eles. Para entendermos melhor esse conceito, devemos passar pelo exemplo que segue, adaptado de Santos.

Page 28: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

RESTAURANTE POOENAMESA

De forma simplificada, ele é capaz de agregar as informações necessárias para acontabilização dos pedidos (peso da refeição, tipo e quantidade de refrigerantessolicitados e a sobremesa, por exemplo) e as operações ou os procedimentosassociados a essas informações, como encerramento do pedido, apresentação daconta para o cliente e inclusão de um novo item, entre outras.

Page 29: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

COMANDA DO RESTAURANTE

Page 30: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

SUBMODELOS

A mesma forma de utilização de um modelo pode ser considerada para submodelos.

Usando o POOeNaMesa como referência, imagine uma comanda específica para conter os dados da sobremesa ou das bebidas consumidas.

Essa comanda específica conterá características gerais da comanda principal, como o nome do restaurante, mas tratará especificamente do armazenamento dos dados da sobremesa consumida.

Page 31: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

RELEVÂNCIA DOS DADOS

Dependendo do contexto em que um modelo está inserido, é comum que ele assuma certas particularidades.

Tomemos como exemplo a representação das informações de uma pessoa. Se estivermos tratando de um modelo em que uma pessoa é um eleitor, por exemplo, alguns dados serão relevantes e outros não. Observe os exemplos.

Page 32: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PESSOA CONSIDERADA COMO ELEITOR

Pessoa considerada como eleitor: nesse caso, é necessário conhecermos seu nome, endereço, número de inscrição, zona de votação e seção.

A operação de alteração de domicílio eleitoral poderia ser aplicada nesse modelo.

Page 33: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PESSOA CONSIDERADA COMO ALUNO

Pessoa considerada como aluno: para a composição do modelo de aluno, é necessário que se tenha o nome, o número de matrícula, a nota da primeira prova, a nota da segunda prova, as faltas e a nota final, entre outros dados.

Operações como consultar nota e solicitar revisão de ausências são plausíveis nesse contexto.

Page 34: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

PESSOA CONSIDERADA COMO MOTORISTA

Nesse caso, as informaçõesde nome do condutor,número da CNH, históricode multas e data darevalidação devem comporo modelo, assim como asoperações de consultamultas e solicita revalidação

Page 35: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

CONTEXTO

Lembre-se: a inclusão ou não de dados ou operações no modelo depende fortemente do contexto.

Não faria sentido colocarmos, nos respectivos modelos, o dado de salário do condutor do veículo ou a operação de consulta de nota para a representação de um eleitor.

Page 36: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

CLASSES

É uma estrutura criada paradar origem ou modelar umobjeto ou modelo.

O exemplo abaixo mostra aestrutura básica de umcarro. Essa estrutura podeser modelada e dar origem adiversos carros

Page 37: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

MÉTODO

Método vem a ser um grupo de instruções em uma classe que define como os objetos da classe se comportarão.

Os métodos são análogos às funções em outras linguagens

Também podem ser consideradas as ações.

Page 38: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

OBJETOS

É uma instância de uma classe.

Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.

Page 39: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

INSTÂNCIA (CLASSE)

As instâncias de uma classe compartilham o mesmo conjunto de atributos, embora sejam diferentes quanto ao conteúdo desses atributos.

Por exemplo, a classe “Animal" descreve os atributos comuns a todas as instâncias da classe " Animal ".

Os objetos dessa classe podem ser semelhantes, mas variam em atributos tais como "nome" e “tamanho". A descrição da classe contém os itens correspondentes a esses atributos e define as operações ou ações relevantes para a classe, tais como "aumento de salário" ou "mudança do número de telefone".

Pode-se então falar sobre uma instância com o nome = “Ted" e outra com o nome = “Bob".

Page 40: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

INSTÂNCIA (CLASSE)

Page 41: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

CLASSE (CACHORRO)

▪ Atributos(Características)▪ Nome, Idade, Tamanho, Cor, Peso, etc.

▪ Métodos▪ Latir, Correr em círculos, comer, etc.

▪ Objetos▪ As classes nada mais são do que moldes

para criação de objetos.

▪ Instanciar▪ Cria objetos por meio de classes

Page 42: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

UML – UNIFIED MODELING LANGUAGE

É uma linguagem para especificação, construção, visualização e documentação de sistemas de software;

É a união da sintaxe gráfica de vários métodos, com vários símbolos removidos e vários adicionados;

Page 43: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

DIAGRAMA DE CLASSES

Utilizado para representar modelos.

Page 44: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

DIAGRAMA DE CLASSE – UML(MODELO DOG)

Nome da classe

Atributos

métodos

Cachorro

+nome: string+idade: int+tamanho: int+cor: string+peso: int

+Correr(velocidade: int): void+Comer(): void

Page 45: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

VANTAGENS?

Page 46: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

APROVEITAMENTO DE CÓDIGO

Animal

+nome: string+idade: int+tamanho: int+cor: string+peso: int

+Correr(velocidade: int): void+Comer(): void

Page 47: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

ANALOGIA – CLASSES E FORMULÁRIOS

Form1

+titulo: string+tamanho: int+cor: string

Botao

+titulo: string+tamanho: int+cor: string

Page 48: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

HISTÓRICO DO PARADIGMA DE ORIENTAÇÃO A OBJETOS

Para entender o que a orientação a objetorepresenta hoje, nada melhor do que vasculharseus primórdios, mesmo que de modo breve.

O criador da expressão programação orientada aobjetos (POO) foi Alan Kay, o mesmo que criou alinguagem Smalltalk.

No entanto, mesmo antes de o termo ter sido criado, ideias conceituais sobre orientação a objetos já estavam sendo aplicadas na linguagem de programação SIMULA 67

Page 49: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

ALAN KAY

Como seu nome sugere, essa linguagem era usada para criar simulações.

Alan Kay, que atuava na Universidade de Utah naquela época, gostou do que viu na SIMULA.

Consta que ele teria vislumbrado um computador pessoal que pudesse fornecer aplicações orientadas a gráficos e intuiu que uma linguagem como a SIMULA poderia oferecer bons recursos para leigos criarem tais aplicações

Page 50: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

DYNABOOK

Kay então resolveu “vender sua visão” à Xerox e no início dos anos 1970; sua equipe criou o primeiro computador pessoal, o Dynabook.

A linguagem Smalltalk, que era orientada a objetos e também orientada a gráficos, foi desenvolvida para programar o Dynabook.

Ela existe até hoje, embora não seja larga mente usada para fins comerciais.

Page 51: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

1970/1980

A ideia da programação orientada a objetos ganhou impulso na década de 1970 e, no começo da década de 1980,

Bjarne Stroustrup integrou a orientação a objeto na linguagem C, o que resultou no C++, tida como a primeira linguagem OO usada em massa.

Page 52: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

1990

No início dos anos 1990, um grupo da Sun, liderado por James Gosling, desenvolveu uma versão mais simples do C++, que foi batizada de Java.

O grupo esperava que o Java fosse usado para aplicações de vídeo sob demanda, mas o projeto não evoluiu.

.

Page 53: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

MODELOS

Modelos são representações simplificadas de objetos, pessoas, itens, tarefas, processos, conceitos, ideias etc., usados comumente por pessoas no seu dia a dia, independentemente do uso de computadores (SANTOS, 2003, p. 2).

Page 54: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

CARACTERÍSTICAS E PRINCÍPIOS DO PARADIGMA DE ORIENTAÇÃO A OBJETOS

Machado (2015) entende que o paradigma da orientação a objeto é fundamentado por quatro características.

Page 55: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

ABSTRAÇÃO

A abstração está relacionada à definição precisa de um objeto.

Essa definição inclui sua identificação (nome), suas características (ou propriedades) e o conjunto de ações que ele desempenha.

Page 56: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

EXEMPLO CACHORRO

O objeto cachorro deve ser únicoe não poderá ser repetido.

Nesse ponto, o objeto já temidentidade definida.

Sua caracterização se dá pela cordo pelo, peso, raça e por aí vai.

Por fim, as ações que ele é capazde desempenhar incluem latir,farejar, pular etc.

Pronto! Conseguimos abstrair oobjeto cachorro e o temosperfeitamente definido.

Page 57: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

HERANÇA

Um objeto filho herdará característicase comportamentos do objeto pai.Quando estiver criando classes, você vaiperceber que essa possibilidadepermite o reaproveitamento de códigoe torna o trabalho mais racional eotimizado.

A ideia da herança é mostrada naFigura 1.3.

Page 58: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

POLIMORFISMO Polimorfismo: antes de entendermos esse conceito, melhor

entendermos a composição de seu nome. O termo “poli” significa muitos, vários. Já “morfismo” remete a formas.

Page 59: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

POLIMORFISMO

Contudo, em certos casos, precisaremos definir ações do objeto de outra forma. Assim, polimorfismo consiste em dar outra forma à alguma ação herdada do objeto pai.

Imagine um objeto chamado eletrodoméstico. Uma das suas ações consiste em ligar.

No entanto, os objetos forno de micro-ondas e televisão — que são especializações de eletrodoméstico — são ligados de formas diferentes. Por isso, para cada um dos objetos filho, a ação ligar será descrita de modo diferente.

Page 60: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

ENCAPSULAMENTO

Quando você clica o botão para tirar a foto, o processo de seleção de velocidade e de abertura apropriada do obturador é iniciado.

Para quem está operando a câmera, os detalhes relacionados a velocidade, tipo de filme e ajuste à iluminação do ambiente não têm relevância alguma.

O que importa, de fato, é que a foto seja tirada.

Ainda usando a analogia da máquina fotográfica, a ocultação do comportamento e dos dados relativos ao processo permite que o usuário se preocupe apenas em tirar a foto e o impede de modificar dados e comportamentos da câmera. Assim será quando você estiver escrevendo classes e utilizando objetos.

Page 61: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

LÂMPADA LED

DADO BÁSICO: estado de ligada ou desligada.

OPERAÇÕES: ligar, desligar, alterar cor (Em alguns modelos, isso é possível pelo acionamento e desligamento da lâmpada via interruptor em menos de um segundo), mostrar estado (Operação desnecessária na vida real, mas necessária durante a modelagem).

A mudança de estado se dá pelo ato de ligar ou desligar a lâmpada. A Figura 1.4 mostra o modelo “Lâmpada”.

Page 62: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

MODELAGEMUML

Essa representação coloca o nome do modelo (sem acento) na primeira divisão do retângulo.

Logo em seguida é descrito o único dado (haverá mais que um, na maioria dos casos) do modelo. Na terceira divisão da representação, são exibidos os comportamentos ou as funções do modelo Lâmpada.

Page 63: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

JAVA NO MUNDO

https://www.tiobe.com/tiobe-index/

Page 64: HISTÓRICO E INTRODUÇÃO À ORIENTAÇÃO A OBJETOS · INTRODUÇÃO À ORIENTAÇÃO A OBJETOS Prof. Me. Hélio Esperidião. O QUE É UM ... A LINGUAGEM JAVA É ORIENTADA A OBJETOS

JAVA NO MUNDO

https://pypl.github.io/PYPL.html