Buscar

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

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 20 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 20 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 20 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

Prévia do material em texto

06/08/12 
1 
Programação Orientada a 
Objetos - POO 
Prof. Emerson Freire 
Mudanças Tecnológicas 
  1950-1960 
  Orientação batch; 
  Distribuição limitada; 
  Software customizado; 
  1960-1970 
  Multi-usuário; 
  Tempo real; 
  Produto de software (empresas) 
  1970-1980 
  Sistemas distribuídos 
  “Inteligência” embutida 
  Hardware de baixo custo 
  1980-2000 
  Poderosos sistemas desktops; 
  Orientação a objetos; 
  Redes neurais artificiais; 
  Computação paralela; 
06/08/12 
2 
Evolução Linguagens de 
Programação 
1º -  Códigos de máquinas 
-  Nível mais baixo de abstração 
Assembler 
2º -  Base para todas as linguagens 
modernas; 
-  Amplo uso; 
-  Enormes bibliotecas de software 
Fortran, Cobol, Algol, Basic 
3º -  Linguagem de programação estruturada 
-  Início - Linguagem orientada a objetos 
C, Pascal, C++, Smaltalk, Lisp, 
Prolog 
4º -  Linguagem de consulta 
-  Linguagem Orientada a Objetos 
-  Geradores de código 
SQL, Java 
5º - Próximas linguagens reconhecerão vozes e 
gestos 
Paradigmas de Programação 
  Programação Procedural: 
  Conjunto de instruções organizado em blocos para realizar 
determinadas tarefas (funções). 
  Conjuntos de funções agrupadas por funcionalidades em 
bibliotecas. 
  Modelagem por fluxogramas e grande utilização de algoritmos. 
  C, Pascal, Perl, Basic; 
  Programação Orientada a Objetos: 
  Composto por objetos com propriedades e operações que 
podem ser executadas por eles (métodos). 
  As funcionalidades e atributos são armazenados em classes 
  Utiliza-se a UML (Unified Modeling Language) para modelar os 
problemas orientados a objetos. 
  Smalltalk, Java, C++, C#; 
06/08/12 
3 
POO – Conceitos iniciais 
Classes e Objetos 
  CLASSE: 
  Uma classe é um tipo definido pelo usuário que possui 
especificações (características e comportamentos) que o 
identifiquem. 
  Simplificando, trata-se de um molde que servirá para 
construir objetos que representam elementos da vida 
real. 
  Este molde é construído a partir da observação e 
agrupamento de elementos que possuam as mesmas 
características. 
POO – Conceitos iniciais 
Classes e Objetos 
EXEMPLO: 
 PRODUTO 
Identificação Preço 
PRODUTO 
Identificação Preço 
Camiseta R$ 35,99 
PRODUTO 
Identificação Preço 
Blusa R$ 121,99 
PRODUTO 
Identificação Preço 
Aumentar preço 
Diminuir preço 
Alterar identificação 
ATRIBUTOS 
MÉTODOS 
06/08/12 
4 
POO – Conceitos iniciais 
Classes e Objetos 
  OBJETOS: 
  No exemplo anterior, “camiseta / R$ 35,99” e “Blusa / R$ 121,99” 
são casos particulares da classe PRODUTO. 
  Eles são denominados instâncias de classe, ou objetos. 
  Apesar de compartilharem a mesma classe (molde), têm vida 
independente. 
  Para a criação de objetos usa-se o operador new, o qual 
alocará o espaço de memória necessário para o objeto. 
  Sintaxe: 
  <NomeDaClasse> <nomeVariavel> = new <NomeDaClasse> (); 
  Exemplos: 
  Produto meuProduto = new Produto(); 
JAVA – noções básicas 
  PORTABILIDADE – independente do Sistema Operacional 
  A classe deve ser salva em formato texto em um arquivo 
de mesmo nome com extensão .java. Ex: HelloWorld.java 
  Todo programa java é composto de uma ou mais classes 
  Normalmente trabalha-se uma classe por arquivo 
06/08/12 
5 
ROTEIRO de PROGRAMAÇÃO 
Editor ASCII 
Arquivo 
.java 
Compilador Java 
(javac) 
Arquivo 
.class 
JVM - Máquina Virtual Java 
Pode ser até mesmo o Bloco 
de Notas do Windows 
.java - Extensão padrão do arquivo 
javac - Comando para Compilar 
o arquivo .java 
Java gera .class e não .exe 
e precisa da JVM para 
rodar este arquivo 
JAVA – noções básicas 
  Como Java é uma linguagem 
100% orientada a objetos, um 
programa terá no mínimo uma 
classe. 
  Programas típicos empregam 
dezenas ou até mesmo 
centenas de classes diferentes. 
  A execução de qualquer 
programa é iniciada através de 
um método (uma função de 
classe) denominado main. 
 
06/08/12 
6 
JAVA – noções básicas 
  Sintaxe elementar semelhante a C/C++. 
  Inteiros 
  byte: 8 bits, -128 a 127 
  short: 16 bits, -32768 a 32767 
  int: 32 bits, -2147483648 a 2147483647 
  long: 64 bits, ... 
  Reais 
  float: 32 bits 
  double: 64 bits 
  Caracter 
  char (Unicode caracter): 16 bits (‘a’ - literal) 
  Lógicos 
  boolean (1 bit). Valores literais: {true, false} 
Declaração: 
int idade; 
int soma = 0; 
float media, salario; 
char cidade, time; 
boolean flag; 
JAVA – noções básicas 
 Operadores: 
 aritméticos: 
+ - * / % 
 relacionais: 
> < >= <= == != 
  lógicos: 
&& || ! 
 atribuição: 
 = 
 e outros. 
 Possuem Regras de Prioridade 
06/08/12 
7 
Declaração de classes, variáveis, 
atributos e métodos 
  Devem começar com letras A-Z, a-z, _ ou $ 
  Exemplos: Fornecedor, PESSOA_JURIDICA, $MinhaVariavel, 
contador, Classe1, _umaVariavel 
  CONVENÇÕES de Código sugeridas pela SUN: 
  Nome de Classe  iniciar com Maiúscula e demais minúsculos. 
  Ex: MinhaClasse, MeuCadastroClientes 
  Métodos, atributos e variáveis  primeiro caracter em 
minúsculo e o restante segue regra de nomes de classes. 
  Ex: meuMetodo, minhaVariavel, notaAluno 
  Para mais convenções: 
  http://java.sun.com/docs/codeconv/ 
JAVA – noções básicas 
// comentário de uma linha 
 
/* comentário 
 de múltiplas linhas */ 
 
/** comentário de documentação 
 * Usado no prólogo e que também 
 * pode ter múltiplas linhas 
 */ 
Comentários (Documentação do Programador) 
06/08/12 
8 
JAVA – noções básicas 
 decisão: 
if/else, switch/case/default 
 repetição: 
while, do/while , for 
 desvio: 
break, continue, return 
 controle de erros: 
try/catch/finally 
Estruturas de controle: 
JAVA – noções básicas 
  Em Java as instruções terminam com ponto-e-vírgula (;). 
  Um bloco está sempre entre chaves - { e } e constitui 
uma instrução. 
  Os espaços em branco são permitidos entre os 
elementos do código-fonte, sem qualquer restrição. Os 
espaços em branco incluem espaços, tabulações e 
novas linhas. Usados para melhorar a aparência visual e 
a legibilidade do código-fonte 
  Java é case-sensitive, ou seja, maiúsculas são diferentes 
de minúsculas. Exemplo: MINHAVariavel é diferente de 
minhaVariavel. 
06/08/12 
9 
JAVA – noções básicas 
 /** Definição: Programa Mensagem 
 * Autor: SeuNome Data: 01/01/2012 
 * Funcionalidade: Apresentar uma mensagem na tela 
 */ 
 
public class Exemplo1 
 { 
 
 
 
 
 
 
 
 
 } 
public static void main (String args[]) 
 { 
 
 
 } 
System.out.println (”Bem-vindo ao Mundo Java!"); 
JAVA – noções básicas 
Entrada de Dados via classe Scanner 
  Para utilizar a classe Scanner em uma aplicação Java deve-se 
proceder da seguinte maneira: 
1.  importar o pacote java.util: 
import java.util.Scanner; 
 
2.  Instanciar e criar um objeto Scanner: 
Scanner ler = new Scanner(System.in); 
 
3.  Lendo valores através do teclado: 
i.  Lendo um inteiro 
 
int n; 
System.out.printf("Informe um número para a tabuada: "); 
n = ler.nextInt() 
Fonte: Prof. Omero Francisco Bertol (http://www.pb.utfpr.edu.br/omero/) 
06/08/12 
10 
JAVA – noções básicas 
Entrada de Dados via classe Scanner 
  Lendo um valor real: 
float preco; 
System.out.printf("Informe o preço da mercadoria = R$ "); 
preco = ler.nextFloat(); 
 
  Lendo um valor real: 
double salario; 
System.out.printf("Informe o salário do Funcionário = R$ "); 
salario = ler.nextDouble(); 
JAVA – noções básicas 
Entrada de Dados via classe Scanner 
  Lendo uma String, usado na leitura de palavras simples que não 
usam o caractere de espaço (ou barra de espaço): 
String s; 
System.out.printf("Informe uma palavra simples:\n"); 
s = ler.next(); 
  Lendo uma String, usado na leitura de palavras compostas, por 
exemplo, Pato Branco: 
String s; 
System.out.printf("Informe uma cadeia de caracteres:\n"); 
s = ler.nextLine(); 
 
 
06/08/1211 
JAVA – noções básicas 
Entrada de Dados via classe Scanner 
  Na leitura consecutiva de valores numéricos e String deve-se 
esvaziar o buffer do teclado antes da leitura do valor String, por 
exemplo: 
int n; 
String s; 
System.out.printf("Informe um Número Inteiro: "); 
n = ler.nextInt(); 
ler.nextLine(); // esvazia o buffer do teclado 
System.out.printf("Informe uma cadeia de caracteres:\n"); 
s = ler.nextLine(); 
 
JAVA – noções básicas 
Entrada de Dados via classe Scanner 
  Lendo um caractere usando o método read() do pacote de 
classes System.in: 
public static void main(String args[]) throws Exception { 
char c; 
System.out.printf("Informe um Caractere: "); 
c = (char)System.in.read(); 
} 
06/08/12 
12 
JAVA – noções básicas 
E / S de dados via classe JOptionPane 
  import javax.swing.JOptionPane; 
  O comando import indica a localização da classe JoptionPane, 
presente no pacote de classes javax.swing 
  Pode-se utilizar a classe JOptionPane para exibir janelas de 
diálogo padronizados com o usuário, a partir de métodos como 
os seguintes: 
  •showMessageDialog(); Caixa de diálogo que apresenta uma 
mensagem, possibilitando acrescentar ícones de alerta ao usuário; 
  •showInputDialog(); Caixa de diálogo que, além de emitir uma 
mensagem, permite a entrada de um texto; 
  •showConfirmDialog(); Caixa de diálogo que, além de emitir uma 
mensagem, possibilita ao usuário responder a uma pergunta; 
 
JAVA – noções básicas 
E / S via classe JOptionPane 
  JOptionPane.showMessageDialog(). Sintaxe: 
  JOptionPane.showMessageDialog (Component, <mensagem>, <título 
da mensagem>, <tipo de mensagem>); 
• Component: –qual é o componente (frame) a partir do qual a 
janela deve ser centralizada. Quando este argumento é null, a caixa 
de diálogo aparece no centro da tela do computador; 
 • Mensagem: a mensagem de texto (String) que deverá ser 
 exibida na caixa de diálogo. 
  Se desejar, ainda podem ser acrescentados dois argumentos: 
 • Título – um título para a caixa de diálogo (String); 
 • Ícone tipo de mensagem: ícone para tipo de diálogo. Exs: 
Perguntaà JOptionPane.QUESTION_MESSAGE; 
Informação à JOptionPane.INFORMATION_MESSAGE; 
Alerta à JOptionPane.WARNING_MESSAGE; 
Erro à – JOptionPane.ERROR_MESSAGE; 
Vazio (somente mensagem, sem ícone) à JOptionPane.PLAIN_MESSAGE; 
 
06/08/12 
13 
JAVA – noções básicas 
E / S de Dados via classe JOptionPane 
  JOptionPane.showInputDialog. Sintaxe: 
  JOptionPane.showInputDialog(Component, <mensagem>, <título da 
menagem>, <tipo de mensagem>). 
Além de emitir uma mensagem, permite ao usuário digitar um valor, 
cujo o retorno é uma String; 
JAVA – noções básicas 
E / S via classe JOptionPane 
06/08/12 
14 
JAVA – noções básicas 
E / S via classe JOptionPane 
JAVA – noções básicas 
Criando Métodos 
  Em uma linguagem orientada a objetos, como JAVA, um 
método é equivalente a uma função, subrotina ou 
procedimento em outras linguagens de programação. 
  Sintaxe básica: 
[modificador] tipo_retorno identificador ([argumentos]) { 
 //Corpo do método 
} 
06/08/12 
15 
JAVA – noções básicas 
Criando Métodos 
  EXEMPLO: 
public class Conta { 
 ... 
 
 public void debitar(double valor) { 
 saldo = saldo - valor; 
 } 
} 
corpo do 
método tipo de 
retorno 
parâmetros 
do método 
  Usa-se void para indicar que o método não retorna nenhum 
valor, apenas altera os valores dos atributos de um objeto 
JAVA – noções básicas 
Criando Métodos 
  EXEMPLO: 
  Os métodos que retornam valores como resultado usam o 
comando return 
public class Conta { 
 private String numero; 
 private double saldo; 
 
 public String getNumero() { 
 return numero; 
 } 
 public double getSaldo() { 
 return saldo; 
 } 
 ... 
} 
06/08/12 
16 
JAVA – noções básicas 
Criando Métodos 
  Modificadores de Acesso 
  Java controla o acesso a atributos e métodos através do uso dos 
modificadores de acesso. São eles : 
  public: É o menos restritivo de todos. Atributos e métodos 
declarados como public em uma classe podem ser 
acessados pelos métodos da própria classe, por classes 
derivadas desta e por qualquer outra classe em qualquer 
outro pacote. 
  protected: Atributos e métodos definidos como protected são 
acessíveis pelos métodos da própria classe e pelas classes 
derivadas. 
  private: É o mais restritivo. Atributos e métodos declarados 
como private só podem ser acessados pelos métodos da 
própria classe. 
  OBS: Para simplificar, definiremos por hora nossos métodos 
como: public static ... 
 
JAVA – noções básicas 
Criando Métodos 
  Os objetos se comunicam para realizar tarefas 
  A comunicação é feita através da troca de mensagens ou 
chamada de métodos 
  Cada mensagem é uma requisição para que um objeto 
execute uma operação específica 
conta.creditar(99.50) 
variável contendo 
referência para 
objeto 
nome do 
método a ser 
executado 
06/08/12 
17 
JAVA – noções básicas 
Criando Métodos 
  Modificadores de Acesso 
  Java controla o acesso a atributos e métodos através do uso dos 
modificadores de acesso. São eles : 
  public: É o menos restritivo de todos, pois é visível por 
qualquer classe. 
  protected: Visível pela própria classe, por suas sub-classes e 
pelas classes do mesmo pacote. 
  private: É o mais restritivo. Atributos e métodos declarados 
como private só podem ser acessados pelos métodos da 
própria classe. 
JAVA – noções básicas 
Classe String 
  A classe String. (String não é um dado primitivo) 
  Usada para representação e manipulação seqüências de caracteres. 
Inclui métodos úteis para úteis para processamento de textos 
  Caractere existente numa dada posição do string: 
  minhaString = “Java”; 
  minhaString.lenght() è 4 
  minhaString.charAt(0) è ‘J’ 
  minhaString.charAt(2) è ‘v’ 
  minhaString.charAt(4) è java.lang.StringIndexOutOfBoundException 
  Construção de instâncias da classe String 
  String facul = “Fatec Jundiaí”; 
  String facul = new String(“Fatec Jundiaí”); 
06/08/12 
18 
JAVA – noções básicas 
Classe String 
  Métodos para comparação de string 
  Strings não devem ser comparados com == 
  String curso = “Computação”; 
  “Computação”.equals(curso) è true 
  “computação”.equals(curso) è false 
  curso.equals(“Computação”) è true 
  curso.equals(“Comuptação”) è false 
  curso.equals(curso) è true 
  “Computação”.equalsIgnoreCase(curso) è true 
  “cOmPutaÇãO”.equalsIgnoreCase(curso) è true 
JAVA – noções básicas 
Classe String 
  Métodos para procura de substrings 
  Verificar se um string contém outro string 
  String curso = “Informática”; 
  curso.indexOf(“ática”) è 6 
  curso.indexOf(“n”) è 1 
  curso.indexOf(“orm”) è 4 
  curso.indexOf(“carm”) è -1 
  curso.indexOf(“Comp”) è 0 
06/08/12 
19 
JAVA – noções básicas 
Classe String 
 Métodos para transformação de strings. 
  String curso = “Informática ”; 
  curso = “ Tecnologia em ”.concat(curso); 
  curso.toLowerCase() è “ tecnologia em informática ” 
  curso.toUpperCase() è “ TECNOLOGIA EM INFORMÁTICA ” 
  curso.trim() è “Tecnologia em Informática” 
  curso.replace(‘ ’, ‘-’) è “-Tecnologia-em-Informática-” 
  curso.substring(15) è “Informática ” 
  curso.substring(15, 18) è “Info” 
  curso.substring(18, 12)  java.lang.StringIndexOutOfBoundsException 
JAVA – noções básicas 
Classe String 
  Métodos para comparação de string 
  Strings não devem ser comparados com == 
  String curso = “Computação”; 
  “Computação”.equals(curso) è true 
  “computação”.equals(curso) è false 
  curso.equals(“Computação”) è true 
  curso.equals(“Comuptação”) è false 
  curso.equals(curso) è true 
  “Computação”.equalsIgnoreCase(curso) è true 
  “cOmPutaÇãO”.equalsIgnoreCase(curso) è true 
06/08/12 
20 
JAVA – noções básicas 
Exercício 
  Crie um programa em Java que permita armazenar os países 
que participamdas Olimpíadas e apresente o atual quadro de 
medalhas à medida que um atleta é premiado. O critério de 
desempate é o número de medalhas de ouro, depois o de prata 
e em seguida o de bronze. Portanto, se um país X tem 1 
medalha de ouro no total contra três de prata de outro país Y, o 
país X deverá aparecer como primeiro colocado no quadro de 
medalhas.

Outros materiais