Baixe o app para aproveitar ainda mais
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.
Compartilhar