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

Post on 03-Jun-2020

43 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Prof. Me. Hélio Esperidião

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.

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

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.

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

MULTIPLATAFORMA

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

NÃO PORTÁVEIS

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

Exemplos:

Visual Basic

Plataforma .net da Microsoft

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.

LINGUAGENS DE ALTO NÍVEL:

ASP

Java

MATLAB

PHP

Visual Basic

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.

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

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

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

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

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

serem usadas.

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.

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

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.

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

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.

POO

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

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

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

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

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.

SERIA ADEQUADO, ENTÃO, ASSOCIARMOS MODELOS A

ELEMENTOS QUE VEMOS NO MUNDO REAL?

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.

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.

COMANDA DO RESTAURANTE

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.

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.

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.

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.

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

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.

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

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.

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.

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".

INSTÂNCIA (CLASSE)

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

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;

DIAGRAMA DE CLASSES

Utilizado para representar modelos.

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

VANTAGENS?

APROVEITAMENTO DE CÓDIGO

Animal

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

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

ANALOGIA – CLASSES E FORMULÁRIOS

Form1

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

Botao

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

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

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

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.

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.

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.

.

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).

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.

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.

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.

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.

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.

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.

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.

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”.

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.

JAVA NO MUNDO

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

JAVA NO MUNDO

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

top related