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

Propaganda
Introdução a Programação
Orientada a Objetos
• Introdução
– Noções básicas
– Outras disciplinas complementarão
• Programação
– Como elaborar programas
• Orientada a Objetos
– Paradigma de modelagem conceitual
1
Paradigma de Orientação a
Objetos
• Surgiu na tentativa de solucionar
problemas existentes no
desenvolvimento de softwares
complexos com confiabilidade e baixo
custo de desenvolvimento e manutenção
• Representar objetos em um software é
mais natural e permanente do que
representar a sua funcionalidade –
decomposição funcional –, pois essa é
mutável
2
Modelagem Conceitual
• Tarefa mais importante do processo de
desenvolvimento de um software
– Realiza-se a análise do domínio da aplicação e
a modelagem das entidades e fenômenos
desse domínio que o projetista considera
importante, independentemente da
implementação
• A tarefa de modelagem conceitual
envolve dois mecanismos
– Abstração
– Representação
3
Modelagem Conceitual
Operação mental
para observar um
domínio e capturar
sua estrutura
Uso de convenções
de representação
REPRESENTAÇÃO
ABSTRAÇÃO
Entidade
Observada
Entidade
Representada
Notação gráfica, Avião
linguagem de
programação
4
Abstração
• Mecanismo utilizado na análise de um
domínio
• Indivíduo observa a realidade e dela
abstrai entidades e ações consideradas
essenciais para uma aplicação,
excluindo todos os aspectos julgados
irrelevantes
• Exercício: analisar os objetos
apresentados a seguir e distinguir
características e ações que estes
objetos podem executar
5
6
Conceitos Básicos de OO
• Mundo real é formado por Entidades
que interagem entre si
• Entidades podem ser classificadas
em Categorias
• A categoria de uma entidade define
suas
– Características, ou particularidades
– Funcionalidades, ou atividades que as
entidades de uma categoria podem
executar
7
Substituindo por sinônimos…
Entidades por Objetos
Categorias por Classes
Características por Atributos
Funcionalidades por Métodos
8
Em outras palavras…
• Mundo real é formado por Objetos
que interagem entre si
• Objetos podem ser classificados em
Classes
• A classe de um objeto define seus
– Atributos, ou particularidades
– Métodos, ou as atividades que os
objetos de uma classe podem executar
9
Segundo o dicionário Aurélio Século XXI
http://www2.uol.com.br/aurelio
os significados dos termos
Classe
Objeto
Atributo
Método
são...
10
Classe
• Categoria, ordem
• Numa série ou num conjunto, grupo ou
divisão que apresenta características
semelhantes
• Informática: Em programação ou
modelagem orientada a objetos,
categoria descritiva geral, que abrange o
conjunto de objetos que compartilham
uma ou mais características quanto a
seus itens de dados e procedimentos
associados
11
Objeto
• Tudo que é manipulável e/ou
manufaturável
• Tudo que é perceptível por qualquer dos
sentidos
• Informática: Em programação orientada
a objetos, qualquer módulo que contém
rotinas e estruturas de dados e é capaz
de interagir com outros módulos
similares, trocando mensagens
12
Atributo
• Aquilo que é próprio de um ser
• Informática: Na modelagem conceitual,
cada uma das propriedades que definem
um objeto ou entidade
Método
• Caminho pelo qual se atinge um objetivo
• Informática: Programa que regula
previamente uma série de operações que
devem ser realizadas, apontando erros
evitáveis, em vista de um resultado
determinado
13
Classes
• Todos os objetos do mundo real podem
ser divididos em categorias ou classes se
eles possuírem as mesmas
características, ou atributos, e mesmas
funcionalidades, ou métodos
• Muito importante é compreender a
diferença entre
– Atributo
– Valor de atributo
14
Classes
• Todos os objetos da mesma classe
possuem os mesmos atributos
• Uma classe
– Define as características de um grupo
de objetos, ou seja, define como serão
as instâncias pertencentes a ela
– Define também quais serviços, ou
operações, qualquer objeto da classe
poderá executar, ou seja, seu
comportamento
15
Classes
• Representação simples em UML
Nome da Classe
Definição dos Atributos
Definição das
funcionalidades ou
Métodos
• Como todo objeto é uma instância de alguma
classe, isto é, todo objeto pertence a uma
classe, então a classe pode ser considerada
como o tipo do objeto
16
UML
• Acrônimo de Unified Modeling Language –
Linguagem de Modelagem Unificada
• Pode ser usada com qualquer processo de
desenvolvimento
• Padronizada pelo OMG – Object
Management Group – e já sofreu
atualizações
• Versão atual: UML 2.0
• Mais informações em
– pt.wikipedia.org/wiki/UML
– www.uml.org
17
Objetos
Objeto é qualquer coisa que tenha algum
significado dentro do contexto de um
problema, seja ela concreta ou abstrata,
ou seja, qualquer coisa que apresente
alguma utilidade ou sirva para um
propósito
• Para programação, um objeto é a abstração de
uma entidade do mundo real que apresenta sua
própria existência, identificação, características
de composição e que pode executar
determinados serviços quando solicitado
18
Exemplos: Objetos e Classes
Objetos
um livro
uma página de um livro
uma viagem
uma determinada data
um endereço de alguém
uma pessoa
uma determinada festa
uma música
uma conexão de rede
uma nota fiscal
uma determinada porta
Classes
Livro
Página de livro
Viagem
Data
Endereço
Pessoa
Festa
Música
Conexão de rede
Nota fiscal
Porta
19
Exemplos
• Seja a definição de uma classe Porta, que deve
representar as características e funcionalidades
consideradas relevantes para todos os objetos
que compõem esta classe
Classe Porta
Atributos
cor
altura
largura
fechadura
Funcionalidades abrir-se
fechar-se
20
Exemplos
• Seja o objeto resultante de uma abstração da
porta de uma sala, ou seja, um objeto uma
porta
Objeto uma porta
Atributos
cor = azul
altura = 2,10 m
largura = 0,90 m
fechadura = “objeto da classe das
fechaduras”
Funcionalidades abrir-se
fechar-se
21
Exemplos
• Seja a definição abstrata de uma classe Aluno
de uma determinada disciplina
• Considerando que o sistema de avaliação em
uma disciplina seja por uma prova escrita, os
atributos e serviços deste objeto seriam
Classe Aluno
Atributos
nome do aluno
matrícula
nota prova
Funcionalidades estudar
assistir aula
realizar prova
22
Exemplos
• Seja a definição de um objeto um aluno da
classe Aluno definida anteriormente
Objeto um aluno
Atributos
nome do aluno = Maria
matrícula = 12345678
nota prova = 9,0
Funcionalidades
estudar
assistir aula
realizar prova
23
Exemplos
Objeto meu relógio
Atributos Formato
Cor
Peso
A Pulseira
Os Ponteiros
A Pilha
Métodos
arredondado
amarela
30 gramas
outro objeto
outro objeto
outro objeto
Iniciar marcação de horas
Informar horas
Corrigir horas
Trocar pilha
24
Exemplos
Objeto meu relógio
Atributos Formato
Cor
Peso
A Pulseira
Os Ponteiros
A Pilha
Métodos
arredondado
amarela
30 gramas
outro objeto
outro objeto
outro objeto
Iniciar marcação de horas
Informar horas
Características de
Corrigir horas
qualquer objeto da
Trocar pilha
Classe Relógio
25
Exemplos
Objeto meu relógio
Atributos Formato
Cor
Peso
A Pulseira
Os Ponteirosoutro
A Pilha
arredondado
amarela
30 gramas
outro objeto
objeto
outro objeto
Características do
Métodos Iniciar marcação de horas
meu Informar
relógio em
horas
particular
Corrigir horas
Trocar pilha
26
Exemplos
Objeto meu relógio
Funcionalidade de
arredondado
qualquer
amarelaobjeto da
Classe
Relógio
30 gramas
Atributos Formato
Cor
Peso
A Pulseira
outro objeto
Os Ponteirosoutro objeto
A Pilha
outro objeto
Métodos
Iniciar marcação de horas
Informar horas
Corrigir horas
Trocar pilha
27
Exemplos
Objeto meu relógio
Atributos Formato
Cor
Peso
A Pulseira
Os Ponteirosoutro
A Pilha
Métodos
arredondado
amarela
30 gramas
outro objeto
objeto
outro objeto
Iniciar marcação de horas
Informar horas
Corrigir horas
Outros objetos
Trocar pilha
que
ajudam a compor um
objeto da Classe Relógio
28
Objetos – Representação Visual
meu relógio
Objeto com
outros objetos
agregados
Representação simples
meu relógio
os ponteiros
a pulseira
Objeto
composto
a pilha
29
Objetos
• Um objeto é um elemento do programa que,
após ser criado através da execução de
determinados comandos pelo computador, passa
a ocupar um espaço na memória
• Todo objeto deve ter uma identificação (nome)
• Os atributos são as características de
composição de um objeto e definem sua
estrutura
• Atributos
– valores simples ou outros objetos
– podem mudar durante a vida do objeto
30
Objetos
• As ações, serviços realizados ou
comportamento dos objetos, serão
chamados de métodos
• Devemos imaginar que um objeto é algo
que tem vida própria e que tenha
capacidade de realização de ações
mesmo quando este objeto tratar-se da
abstração de algo inanimado ou abstrato
31
Sobre Objetos e suas Classes
• Objetos de uma certa classe têm
atributos
– Uma conta tem um número, um saldo, um
histórico de transações
– Um cliente tem um nome, um endereço
– Um cheque tem um valor
• Objetos de uma mesma classe têm um
mesmo comportamento
– Clientes entram numa agência
– Clientes fazem depósitos e saques
– Clientes emitem cheques
32
Classes
• Há simplificações no comportamento dos
objetos em relação ao mundo real
– Por vezes não é interessante modelar todo o
comportamento dos objetos
• Exemplo: clientes tomam café no mundo real mas
provavelmente não na classe Cliente
– Os comportamentos freqüentemente são
assumidos por objetos diferentes
• Exemplo: no mundo real, quem faz um depósito
numa conta? Um cliente
• Nos programas, qual classe assumiria a
responsabilidade de fazer um depósito? A classe
conta
33
Classes
• Alguns objetos não têm comportamento
– Contas não são vivas: não "fazem" nada
• Objetos podem estar relacionados
– Um cliente pode possuir várias contas
• Objetos podem pertencer a mais de uma
classe
– João, que pertence a classe Cliente, pode
pertencer também a classe Estudante
• Para ler mais sobre o assunto
– www.inf.ufsc.br/poo/conceitos
34
Representação da Classe
Nome da Classe
Relogio
-String
-String
-String
-Pulseira
-Ponteiro
-Pilha
formato
cor
peso
apulseira
osponteiros
apilha
+ iniciarMarcacaoDeHoras
+ informarHoras
+ corrigirHoras
+ trocarPilhas
Atributos
Atributos que correspondem a
objetos de outras classes
Métodos
35
Representação da Classe
Relogio
-String
-String
-String
-Pulseira
-Ponteiro
-Pilha
formato
cor
peso
apulseira
osponteiros
apilha
+iniciarMarcacaoDeHoras
+informarHoras
+corrigirHoras
+trocarPilhas
Nessa
disciplina
daremos
especial
atenção a
Construção de
Métodos
36
Métodos
• Um Objeto presta um serviço executando
algum Método especificado em sua classe
• Um mesmo serviço poderá ser executado
de várias formas, mas por enquanto
assumiremos que cada Serviço
corresponderá a um Método
• Denominação:
– Serviço para a ação do objeto
– Método para a forma como a ação será executada
• Inicialmente veremos a construção de um
método como a construção de um
programa
37
A Plataforma Java
• Uma plataforma é o ambiente de
hardware e software onde um
programa é executado
• A Plataforma Java é definida por:
– APIs Java
– Máquina Virtual Java
38
Exemplo de Um Programa
Exemplo de Um Programa
class Carro {
String marca;
String cor;
boolean motorEstado;
void ligaMotor() {
motorEstado = true;
System.out.println("O motor foi ligado.");
}
void desligaMotor() {
motorEstado = false;
System.out.println("O motor foi desligado.");
}
void mostraAtributos() {
System.out.println("O carro tem a cor " +
cor + "e eh da marca " + marca);
if (motorEstado == true)
System.out.println("O motor jah estah ligado.");
else {
System.out.println("O motor estah desligado.");
}
}
}
Exemplo de Um Programa
Bem, até agora criamos apenas a
classe Carro. Precisamos criar
também um objeto dessa classe. Em
Java podemos fazer isso
adicionando o método main à classe
Carro e nele instanciando
efetivamente um objeto da classe
Carro (comando new).
Exemplo de Um Programa
public static void main (String args[]) {
Carro meuCarro = new Carro(); // instancia o objeto
meuCarro.marca = "Palio"; // inicia o atributo marca
meuCarro.cor = "azul";
// inicia o atributo cor
System.out.println("Mostrando os atributos:");
meuCarro.mostraAtributos(); //mensagem para o objeto
System.out.println("---------");
System.out.println("Ligando o motor...");
meuCarro.ligaMotor(); //mensagem para ligar o carro
System.out.println("Mostrando os atributos:");
meuCarro.mostraAtributos();
System.out.println("---------");
System.out.println("Desligando o motor...");
meuCarro.desligaMotor();
System.out.println("Mostrando os atributos:");
meuCarro.mostraAtributos();
}
Exemplo de Um Programa
Pronto, a tela deve exibir algo como:
A Linguagem Java
• Um ambiente de programação Java é
constituído de um compilador Java que
gera um código de mais baixo nível
denominado bytecode
• O bytecode é então interpretado
• Um interpretador de bytecodes interpreta
as instruções da chamada “Máquina
Virtual Java” (JVM)
• Este esquema, além de outras vantagens,
contribuí para facilitar a implementação
da linguagem em um grande número de
computadores diferentes
44
Ambientes de Programação
• Além de compiladores e interpretadores um
ambiente de programação de uma linguagem de
alto nível oferece, em geral, um conjunto de
bibliotecas de componentes ou módulos de
programas usados no desenvolvimento de
programas
• Além disso incluem ferramentas para uso e
desenvolvimento de programas como editores
de texto e depuradores de programas
• Em um ambiente de programação integrado
todos estes componentes são oferecidos no
mesmo programa
45
IDEs
• IDE é a sigla de Integrated Development
Environment, ou Ambiente Integrado de
Desenvolvimento
• Usaremos JCreator
• Outras IDEs que podem ser utilizadas
•
•
•
•
•
Eclipse (www.eclipse.org)
NetBeans (www.netbeans.org)
Gel (www.gexperts.com)
JEdit (www.jedit.org)
OptimalJ
(www.compuware.com/products/optimalj)
46
Download