Buscar

Aula 02 - Abstração

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

FATEC - SP
FACULDADE DE TECNOLOGIA
DE SÃO PAULO
	CAMPUS
	
	
	Carapicuíba
	PROG. ORIENTADO A OBJETOS I
	Aula 02
	Professor: Glauber da Rocha Balthazar
E-mail: professorglauberbalthazar@yahoo.com.br
- Abstração
– Abstração O.O.
	Analogia Biológica de Alan Key
De acordo com David (2007) o termo Programação Orientada a Objetos foi criado por Alan Kay, autor da linguagem de programação Smalltalk. Mas mesmo antes da criação do Smalltalk, algumas das ideias da POO já eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas idéias foi a linguagem Simula 67, criada por Ole Johan Dahl e Kristen Nygaard em 1967. De acordo com Bezerra (2003) Alan Kay, formulou a chamada analogia biológica (“Como seria um sistema de software que funcionasse como um ser vivo?" com os seguintes princípios:
• Cada “célula” interagiria com outras células através do envio de mensagens para realizar um objetivo comum.
• Adicionalmente, cada célula se comportaria como uma unidade autônoma. 
• De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagissem entre si.
	De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagem entre si. Através de sua analogia biológica, Alan Kay definiu os fundamentos da orientação a objetos, sendo eles apresentados a seguir:
1. Qualquer coisa é um objeto.
2. Cada objeto pertence a uma determinada classe (uma classe agrupa objetos similares).
3. A classe é um repositório para comportamento associado ao objeto.
4. Classes são organizadas em hierarquias.
5. Objetos realizam tarefas através da requisição de serviços a outros objetos.
	Bezerra (2003) complementa afirmando que o paradigma da orientação a objetos visualiza um sistema de software como uma coleção de agentes interconectados chamados objetos. Cada objeto é responsável por realizar tarefas específicas. É através da interação entre objetos que uma tarefa computacional é realizada. Um sistema de software orientado a objetos consiste de objetos em colaboração com o objetivo de realizar as funcionalidades deste sistema. 
	Além disso, o mundo real é formado de coisas. Na terminologia de orientação a objetos, estas coisas do mundo real são denominadas objetos. Seres humanos costumam agrupar os objetos para entendê-los. A descrição de um grupo de objetos é denominada 
classe de objetos, ou simplesmente de classe.
	Vamos a um exemplo:
Objetos
Três diferentes objetos são mostrados a seguir.
 
Classes
Agora cada um dos objetos mostrados anteriormente foram organizados classes.
a) Classe Cadeira
 (...)
b) Classe Carro
 (...)
c) Classe Cavalo
 (...)
– Classes e Objetos
Segundo Furlan (1998) o primeiro conceito da orientação a objeto é o do próprio objeto. Um objeto é uma ocorrência específica (instância) de uma classe e é similar a uma entidade/tabela no modelo relacional somente até o ponto onde representa uma coleção de dados relacionados com um tema comum. A Figura 1 apresenta um modelo de como as classes são organizadas de acordo com um tema comum.
Figura 1 – Organização das classes de acordo com temas em comuns
	Ainda de acordo com Furlan (1998) classe é uma coleção de objetos que podem ser descritos com os mesmos atributos e os mesmos métodos. Representa a idéia ou um conceito simples e categoriza objetos que possuem propriedades similares, configurando-se em um modelo para a criação de novas instâncias (Booch, 2000). A Figura 2 apresenta a representação de uma classe com seus atributos e métodos.
Figura 2 – Exemplo de uma classe e seus membros
	Desta forma, como foi dito em todas as citações anteriores, uma classe é constituída de atributos e métodos. Um atributo pode ser visto como uma qualidade ou característica da classe. Por exemplo, a classe Funcionário, terá os seguintes atributos: nome, idade, sexo, etc. Já os métodos são os serviços que uma classe pode oferecer. Para este caso, Funcionário, poderia-se ter: calcularSalario, calcularHorasExtras, etc.
	Pode-se então chegar a uma conclusão analisando a estrutura gramatical das definições descritas anteriormente na qual descobre-se que um atributo é um ADJETIVO e um método um VERBO. O atributo tem a função de qualificar alguma coisa, ou descrever e o método de realizar uma tarefa, fazer algo. Desta forma, existe uma simetria entre os conceitos descritos na Língua Portuguesa e na Orientação a Objetos.
	A Figura 3 apresenta a classe Funcionário com seus atributos e métodos.
Figura 3 – Classe Funcionário com atributos e Métodos
	Resumindo: o objetivo da abstração é a construção de um modelo para representar a realidade, ou seja, veja a figura 4.
 
Figura 4 – Um objeto automóvel abstraído em uma classe Automóvel
�
– Classes em Java (prática)
	Segundo [THOMAS,PATEL,HUDSON,BALL], a Orientação a Objetos talvez seja a frase mais na moda de toda a computação. Assim como todas as frases da moda, há uma tonelada de interpretações diferentes daquilo que ela realmente significa.
	Desta forma, as classes são os verdadeiros elementos a orientação a objetos. Uma classe descreve um tipo contendo sub-rotinas (ou métodos) e dados. Como uma classe descreve um tipo, pode-se construir variáveis que contêm tanto métodos quanto variáveis. Tais variáveis são os objetos. Os objetos diferem das variáveis das linguagens de programação procedimentais porque podem definir o modo como os dados podem ser alterados. As sub-rotinas nas linguagens orientadas a objetos diferem de seus equivalentes nas linguagens procedimentais pois elas têm um conjunto de dados (os membros de dados definidos na mesma classe), o qual elas podem alterar, mas os outros métodos não
	[HOPSON,INGRAM] ainda completam, dizendo que a classe é o ponto de partida da programação orientada a objetos em Java. São elas que fornecem modelos para a especificação do estado e do comportamento de um objeto durante a execução. Um objeto é reconhecido como uma instância de uma classe. Para uma determinada classe e uma sessão runtime específica, é possível haver várias instâncias de objetos.
	Por exemplo, a figura 5 apresenta a classe Funcionário. Esta classe possui os atributos "salario", "setor" e "horasExtras". Ela também possui o método "calcularSalario". Do lado esquerdo é apresentado o diagrama que representa a classe e do lado direito o código fonte da implementação desta classe em Java.
�
�
public class Funcionario {
	
	double salario;
	int horasExtras;
	double calcularSalario(){
		return salario + horasExtras;
	}
}
�
�
Figura 5 – A classe Funcionária implementada em Java
	
�
– Exercícios
Quando se diz a palavra "gato" estamos nos referindo a uma classe ou a um objeto?
Quando se diz a palavra "Pedro" estamos nos referindo a uma classe ou a um objeto?
O que é uma classe?
O que é um objeto?
Do que uma classe é constituída?
Dada uma classe, descreva os seus atributos e comportamentos (métodos) como mostrado abaixo:
Leia o texto abaixo atentamente:
Para um sistema de controle de estoque deve-se gerenciar o produto a ser estocado. Todo produto tem um nome, preço e data de entrada. Os produtos podem ser removidos, atualizados e excluídos do sistema.
Baseado no texto anterior, diga o nome da classe envolvida e quais são os seus atributos e comportamentos (métodos).
Leitura/Atividade Obrigatória:
Realizar um resumo (1 página de caderno pautada - frente e verso), por escrito em caneta azul ou preta e individual.
Capítulo 1 - Introdução à programação orientada a objetos do livro:
SANTOS, Rafael. Introdução à programação orientada a objetos usando Java / Rafael Santos. - Rio de Janeiro : Elsevier, 2003 - 12ª reimpressão.
Valor 1,0 ponto na prova do 1º bimestre.
�
ReferencialBibliográfico
BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição. Editora Campus / Elsevier, 2003.
BOOCH, Grady. UML guia do usuário / Grady Booch, James Rumbaugh, Ivar Jacobson ; tradução de Fábio Freitas da Silva. - Rio de Janeiro : Campus, 2000.
HADDAD, Matheus, Origem da Orientação a Objetos. WebGoal - Software simples para empresas grandes, 2009. Acessado em <14/01/13>. Disponível em < http://www.webgoal.com.br/origem-da-orientacao-a-objetos/ >.
DAVID, Marcio Frayze. Programação Orientada a Objetos: uma introdução. Guia do Hardware.net, 2007. Acessado em <14/01/2013>. Disponível em <http://www.hardware.com.br/artigos/programacao-orientada-objetos/>.
DEITEL, H. M. C++ Como Programar. 5ª Edição, 2006. Editora Prentice Hall. São Paulo, SP.
FURLAN, José D. Modelagem de Objetos através da UML – the Unified Modeling Language – São Paulo : Makron Books, 1998.
SANTOS, Rafael. Introdução à programação orientada a objetos usando Java / Rafael Santos. - Rio de Janeiro : Elsevier, 2003 - 12ª reimpressão.
_1218802097.unknown
_1218803281.unknown
_1218801160.unknown

Outros materiais