P. 1
Introduao Ao Java

Introduao Ao Java

|Views: 368|Likes:
Published by Samylla Moura

More info:

Published by: Samylla Moura on Jul 14, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

01/17/2013

pdf

text

original

Sections

  • Java Básico
  • Poliedro Informática
  • Introdução ao Java
  • Visão Geral
  • Visão Módulo a Módulo
  • Módulo 1
  • Iniciando em Java
  • A Máquina Virtual Java
  • Java Runtime Enviroment
  • Carregador de Classes (Class Loader)
  • Verificador de Bytecode
  • Ambiente Tipico do Java
  • Referências
  • Módulo 2
  • Programação Orientada a Objetos
  • Engenharia de Software
  • Abstração
  • Ambiente JAVA
  • Software necessários
  • Instalando o SDK
  • Instalando Documentação e Editor
  • Primeiro Programa em JAVA
  • Compilando e executando
  • Acessando Membros do Objeto
  • Segundo Programa Java
  • Exibindo Múltiplas Linhas
  • Seqüências de ESCAPE
  • Operadores Aritméticos
  • Ordem de Precedência
  • Operadores de Igualdade e Relacionais
  • Exemplo ´Additionµ
  • Exemplo ´Additionµ (Cont.)
  • Javax.swing.JOptionPane
  • Exercício
  • Módulo 3
  • Comentários
  • Exemplo de comentário
  • Gerando Documentação
  • Documentação
  • Identificadores
  • Palavras-Chave Java
  • Tipos Primitivos
  • Lógico -boolean
  • Textual
  • Ponto Flutuante -float e double
  • Ponto flutuante
  • Manipulando String
  • Operadores Incremento e Decremento
  • Operadores de Atribuição
  • Tipos Referência
  • Constantes
  • Construindo e Inicializando Objetos
  • Alocação de Memória e Layout
  • Inicialização Explícita de Atributos
  • Executando o construtor
  • Atribuição de variável
  • Passagem por Valor
  • Exemplo de uso de referência
  • A referência this
  • Exemplo de uso ´thisµ
  • Variáveis e Escopo
  • Inicialização de Variáveis
  • Operadores Lógicos
  • Casting
  • Conversão de Tipos
  • Promoção e Casting de Expressões
  • Módulo 4
  • Estruturas e Fluxo de Controle
  • Exemplo de IF
  • Instruções Break e Continue
  • Uso de Break
  • Uso de Continue
  • Exercícios
  • Módulo 5
  • Declarando Arrays
  • Inicializando Arrays
  • Arrays multi-dimensionais
  • Array Multidimensional
  • Limites de Arrays
  • Redimensionando Arrays
  • Copiando Arrays
  • Recursao no JAVA
  • Módulo 6
  • Exceções
  • RunTimeException
  • Tratamento de Exceções
  • Try e catch
  • Try/Catch
  • Cláusula finally
  • printStackTrace e getmessage
  • Throw
  • Mecanismo de Pilha
  • Categorias de Exceções
  • Exceções Comuns
  • Regra de Tratamento ou Declaração
  • Referência
  • Módulo 7
  • Métodos
  • Métodos Estáticos
  • Invocação de Métodos
  • Exemplo
  • Retorno de Métodos
  • Passagem de Parâmetros
  • Exemplo (Resultado)
  • Módulo 8
  • API Basica
  • A classe Math
  • A classe String
  • A classe StringBuffer
  • A Classe java.util.Arrays
  • Classe java.util.GregorianCalendar
  • Parâmetros de linha de comando

Java Básico Poliedro Informática Introdução ao Java

Visão Geral

Programação Básica em Java Sintaxe da linguagem Java Principais estruturas da linguagem JAVA Tratamento de Exceções em Java

Visão Módulo a Módulo

Módulo 1 ± ³Iniciando em Java´ Módulo 2 ± ³Programação Orientada a Objetos´ Módulo 3 ± ³Identificadores, Palavras-chave e Tipos´ Módulo 4 ± ³Expressões e Fluxo de controle´ Módulo 5 ± ³Arrays´ Módulo 6 ± ³Exceções´

Java Básico Poliedro Informática Módulo 1 Iniciando em Java .

Principais objetivos da Tecnologia Java Provê uma linguagem de fácil uso: Evitando falhas de outras linguagens Sendo orientada a objetos Habilitando usuários a criar códigos limpos .

carregando classes de uma fonte diferente .Principais objetivos da Tecnologia Java Provê um ambiente interpretado (multiplataforma) Habilita usuários a rodar mais de uma thread ou atividade Carrega classes dinamicamente. isto é. a medida que elas são realmente necessárias Suporta mudança dinâmica de programas durante a execução.

Principais objetivos da Tecnologia Java As seguintes funcionalidades preenchem esses objetivos: A Máquina Virtual Java (JVM) O coletor de lixo (³Garbage Collection´) Segurança do código .

A Máquina Virtual Java Provê uma especificação de plataforma de hardware Lê byte-code compilado que é independente de plataforma É implementado como software ou hardware É implementado em uma plataforma de desenvolvimento Java ou em um navegador WEB .

A Máquina Virtual Java A JVM provê definições para: Conjunto de instruções (CPU) Conjunto de Registros Formato de arquivo de classes Pilha Heap do coletor de lixo Área de Memória .

A Máquina Virtual Java A maior parte da verificação de tipos é feita quando o código é compilado Cada implementação da JVM aprovada pela Sun Microsystems deve ser apta a rodar qualquer classe compatível .

Coleta de Lixo (Garbage Collection) Memória alocada que não será mais necessária deve ser desalocada Em outras linguagens. a desalocação é responsabilidade do programador A linguagem Java provê uma thread de sistema para monitorar a alocação de memória .

Coleta de Lixo (Garbage Collection) Coleta de Lixo: Verifica e libera memória não mais necessária É feita automaticamente Pode variar dramaticamente entre implementações da JVM .

Java Runtime Enviroment Desempenha três principais tarefas Carrega código Verifica o código Executa o código .

Carregador de Classes (Class Loader) Carrega todas as classes necessárias para a execução do programa Mantêm classes do sistema de arquivos local em ³namespaces´ distintos Previne spoofing .

Verificador de Bytecode Garante que: O código adere a especificação da JVM O código não viola a integridade do sistema O código não provoca overflow na pilha de operadores ou underflow Os tipos de parâmetros para todo o código operacional está correto Não ocorreu nenhuma conversão ilegal de tipos .

Ambiente Tipico do Java .

Referências Java Como Programar Capítulo 1 ± Introdução aos computadores. à Internet e à WEB Capítulo 2 ± Intodução a aplicativos Java .

Java Básico Poliedro Informática Módulo 2 Programação Orientada a Objetos .

80¶s) Linguagens Orientadas a Objeto ( 980 .00 ) . C.00 ) oolkits/ rameworks / Object I¶s (90¶s . I . COBOL) Bi liotecas/ I¶s de funç es ( 0¶s .Engenharia de Software Códi de M i ( 0¶s) r i ent dos istemas eracionais inguagens de alto ní el ( ortran.

escrever um algoritmo uma vez para usá-lo em várias situações Objetos . relacionados e comportamentos em uma classe Framewor s e API¶s .grupo de objetos que dá suporte a uma atividade complexa Framewor s podem ser usadas da maneira original ou ser modificada para estender o comportamento básico .agrupa um conjunto de atributos.Abstração Funções .

uma classe é a descrição de um objeto Uma classe descreve os dados de cada objeto Uma classe descreve o comportamento que cada objeto exibe . Blueprint é a descrição de um dispositivo do qual muitos outros são construídos Em software.Classes como formas para objetos Em manufatura.

Classes como formas para objetos Em Java. classes suportam três recursos chaves da POO: Encapsulamento Herança Polimorfismo .

Ambiente JAVA .

Software necessários J2SDK Compilador JVM Java API Editor de textos ou ambiente desenvolvimento TextPad NetBeans Eclipse JBuilder .

2_05\bin´ no PATH . Demo ± exemplos de programas Include ± arquivo para métodos nativos Lib ± arquivos de bibliotecas Src ± fontes de bibliotecas. Colocar o caminho ³c:\j2sdk1.4.2_05´ Estrutura de diretórios após instalação Bin ± Compilador de ferramentas.Instalando o SDK Execute o instalador ³j2sdk-1_4_2_05-windowsi586-p.4.exe´ Utilize o diretório padrão de instalação ³c:\j2sdk1.

Instalar o TextPad (Editor de textos) executando o instalador ³txpptb473.zip´ para a pasta ³c:\j2sdk1.2_05´ e faca a descompactação.Instalando Documentação e Editor Opcionalmente podemos instalar a documentação da biblioteca Java.4. Após instalação existirá um diretórios ³docs´ dentro do diretório de instalação do SDK.exe´ Criar um diretório ³c:\Poliedro´ para salvar nosso exercícios. Copie o arquivo ³j2sdk-1_4_2-doc. .

Primeiro Programa em JAVA .

class´ Execute o aplicativo ³java Welcome1´ Obs.Compilando e executando Abra uma janela do DOS. O TextPad permite a compilação e execução de programas java sem sair do editor.java´ Após compilação deverá existir um arquivo ³Welcome1. . Posicione no diretório onde estão os fontes ³C:\Poliedro´ Execute ³javac Welcome1.

Declarando Classes Java Sintaxe básica: <class_declaration> ::= <modifier> class <name> { <attribute_declaration>* <constructor_declaration>* <method_declaration>* } .

public void setMaxLoad(double value) { maxLoad = value. } } .Declarando Classes Java Exemplo: public class Vehicle { private double maxLoad.

Declarando Atributos Sintaxe básica: <attribute_declaration> ::= <modifier> <type> [= <default_value>] <type> ::= byte | short | int | long | char | float | double | boolean | <class> .

private float y = 1 . F. } .Declarando Atributos Exemplo: public class Foo { public int x. private String name = ³Fred Flintstone´.

Declarando Métodos Sintaxe básica: <method_declaration> ::= <modifier> <return_type> <name (<parameter>*)> { <statement>* } .

public int getX() { return x.Declarando Métodos Exemplos: public class Thing { private int x. } public void setX(int new_x) { x = new_x. } } .

Acessando Membros do Objeto Notação de ³ponto´: <object>. thing2. //somente se x for public .<membro> É usado para acessar membros incluindo atributos e métodos Exemplos: thing1.x = 47.setX(47).

Segundo Programa Java .

Exibindo Múltiplas Linhas .

Seqüências de ESCAPE .

lang Pacotes de extensão (começam com ³javax´).swing Utiliza-se a palavra chave ³import´ para identificar e carregar classes que serão usadas em um programa. Esses pacotes estão divididos em dois grandes grupos.JAVA API A API JAVA está organizada em categoria de classes chamadas ³Pacotes´. Pacotes de núcleo (começam com a palavra ³java´) Exemplo: java. . Exemplo: javax.

Utilizando uma caixa de dialogo .

Operadores Aritméticos .

Ordem de Precedência .

Operadores de Igualdade e Relacionais .

Exemplo ´Additionµ .

Exemplo ´Additionµ (Cont.) .

JOptionPane .swing.Javax.

Encapsulamento: Escondendo Informação O Problema MyDat e day : int month : int year : int .

day+ 1. d.day = 32.Encapsulamento: Escondendo Informação Código cliente: MyDate d = new MyDate() d.day = d. //invalid day d.month = 2.day = 3 . //não checa último dia do mês . //errado d.

Encapsulamento: Escondendo Informação A Solução MyDate day : int month : int year : int getDay() : int getMonth() : int getYear() : int setDay(d : int) setMonth(m : int) setYear(y : int) .

Encapsulamento: Escondendo Informação Código cliente (deve usuar set/get): MyDate d = new MyDate() d.setDay(d.setDay(32).setMonth(2).getDay() + 1). //retornará false se for último dia do mês . //retorna falso d. d.setDay(3 ). //retorna falso d.

Encapsulamento Esconde os detalhes de implementação Força o usuário a usar uma interface para acessar os dados Facilita a manutenção do código MyDate date : long getDay() : int getMonth() : int getYear() : int setDay(d : int) setMonth(m : int) setYear(y : int) .

32.Exercício Resolver os exercícios 2. .33. 2. 2.34 e 2.35 da página 134 do livro texto.

Java Básico Poliedro Informática Módulo 3 Identificadores. Palavras-Chave e Tipos .

Comentários Os três tipos de comentários permitidos em Java são: // comentário de linha /* comentário em uma ou mais linhas */ /** comentário de documentação */ .

Exemplo de comentário

/* Este é um exemplo de comentário utilizando várias linhas de documentação. */ /** Classe de exemplo de uso de comentarios*/ public class Comentario { /** Exemplo de comentario de documentacao */ public static void main (String[] args) // metodo principal { System.out.println("Introducao ao Java \n"); } }

Gerando Documentação

Para gerar a documentação incluida no codigo fonte execute o utilitário ³javadoc´. Ex. javadoc Comentario.java Ao terminar a execução localize o arquivo Comentario.html e abra no navegador para visualizar o resultado.

Documentação

} . y = x + 1.): totais = a + b + c + d + e + f. Um bloco é uma coleção de comandos entre chaves: { x = y + 1.Ponto e vírgula. blocos e espaços Um comando é uma ou mais linhas de código terminada com (.

Ponto e vírgula. } Você pode colocar blocos dentro de blocos (nested) Qualquer quantidade de espaços em branco é permitida pela linguagem Java . blocos e espaços Você pode usar blocos em uma declaração de classe: public class MyDate { private int day. private int year. private int month.

ou cifrão ($) São case sensitive e não possuem tamanho máximo Exemplos: identifier username user_name _sys_var1 $change . sublinhado (_).Identificadores São nomes dados a variáveis. classes ou métodos Podem começar com uma letra Unicode.

Palavras-Chave Java .

Tipos Primitivos A linguagem de programação Java define oito tipos primitivos: Lógico: boolean Texto: char Inteiro: byte. short. int e long Ponto Flutuante: double e float .

true e false Por exemplo.boolean O tipo boolean possui dois literais. a declaração: boolean truth = true.Lógico . declara a variável truth do tipo boolean e atribui a ela o valor true .

Textual c ar epresenta um caracter unicode de -bits eu literal deve estar entre aspas simples (µ¶) sa as seguintes notaç es µa¶ Letra a µ\t¶ abulaç o µ\u????¶ m caracter unicode específico. ????. é substituído por exatamente uatro dígitos decimais (por ¶ é a letra grega phi) exemplo. µ\u0 .

octal ou hexadecimal 2 Decimal dois 007 O zero a esquerda indica um valor octal 0xBAAC o 0x indica um valor hexadecimal Possui inteiro (int) como default Define long usando a letra L ou l .Inteiros Usa três formas .decimal.

Inteiros Os tipos inteiros tem as seguintes faixas de valores: .

Ponto Flutuante .float e double Default é double Literais de ponto flutuante devem incluir ponto decimal ou um dos que seguem: E ou e (+ valor exponencial) F ou f (float) D ou d (double) 3. 2E23 2.4E+3 6D .14 6.71 F 123.

Ponto flutuante Os tipos de ponto flutuante tem as seguintes faixas de valores: .

String nome. nome = new String(³Ricardo´). . String errorMessage = ³Record Not Found!´.Textual String Não é um tipo primitivo São imutáveis Tem seus literais entre aspas dupla (³´) ³The quic brown fox jumps over the lazy dog.´ Pode ser usado como se segue: String greeting = ³Good morning !!! \n´. O primeiro caractere está na posição zero.

3). String a=³Bem´.equals(³Bem-vindo´). String s = saudacao. s == a . Identificando o tamanho Int n = saudacao. s. // Provavelmente Falso .equalsIgnoreCase(³bem-vindo´).substring(0.Manipulando String A classe String possui vários métodos que facilitam a sua manipulação: Substrings String saudacao = ³Bem-vindo´. Comparando Strings Saudacao.length().

++contador. System. Qual seria o resultado de: int a = 10.Operadores Incremento e Decremento Incremento e Decremento ++ -Exemplos: contador++.out. c=3. System. .println(++b).out.println(a++). parcelas--. b=5.

d *= 5. //equivale a c = c + 7.Operadores de Atribuição Os seguintes operadores de atribuição podem ser utilizados: += -= *= /= %= Exemplo: c += 7. // equivale a d = d * 5. .

todos os outros são referências Uma variável referência contém um ponteiro para uma objeto .Tipos Referência Excluindo os tipos primitivos.

.54. final double CM_POR_POL = 2. Exemplo: final int MAX = 200.Constantes Utiliza-se a palavra ³final´ para declarar uma constante. Por convenção utiliza-se letras maiúsculas.

MyDate my_birth = new MyDate(22.Construindo e Inicializando Objetos Chamando new Xxx() para alocar espaço para o novo objeto resulta em: Alocação de memória Inicialização explícita é executada O construtor é executado A variável atribuída passa a referenciar o objeto Exemplo. . 7. 1 64).

1 64). .7. Use o operador new para alocar espaço para MyDate: MyDate my_birth = new MyDate(22.Alocação de Memória e Layout A declaração aloca memória apenas para a referência: MyDate my_birt.

1 64).Inicialização Explícita de Atributos Inicializa os atributos: MyDate my_birth = new MyDate(22.7. Os valores default são tomados da declaração dos atributos .

1 64). .7.Executando o construtor Executa o seguinte construtor: MyDate my_birth = new MyDate(22.

7. .Atribuição de variável Atribui o novo objeto criado à variável de referência: MyDate my_birth = new MyDate(22.1 64).

Passagem por Valor A linguagem de programação Java somente passa argumento por valor Quando uma instância de objeto é passado como argumento para um método. mas a referência para o objeto nunca muda . o valor do argumento é uma referência para o objeto O conteúdo do objeto pode ser mudado pelo método chamado.

Empregado b.setNome("ana maria").getNome()).500). } } .out. b=a. System.Exemplo de uso de referência public class Comentario { public static void main (String[] args) // metodo principal { Empregado a = new Empregado("Ricardo". b. b = new Empregado("Paulo".getNome()+" \n Nome de b:"+b.println("Nome de a:"+a.1000).

A referência this Alguns usos da referência this: Duas referências com mesmo nome a um mesmo atributo this é usado para eliminar a ambiguidade entre a variável de instância e a variável do construtor ou local ao método Para passar o objeto corrente como parâmetro a outro método ou construtor .

} public void setNome(String nome) { this. salario = s. public Empregado(String n. } } . double salario.nome = nome. double s) { nome = n.Exemplo de uso ´thisµ class Empregado { String nome.

Classes: class SavingsAccount Interfaces: interface Account Métodos: balanceAccount() .Convenções de Codificação Java Pac ages: pac age ban ing.objects.

Convenções de Codificação Java Variáveis: currentCustomer Constantes: HEAD_COUNT MAXIMUM_SIZE .

temporárias ou variáveis stac .Variáveis e Escopo Variáveis que são definidas dentro de um método são chamadas locais. Variáveis que são criadas quando o método é executado são destruídas quando o método termina Variáveis devem ser inicializadas antes de serem usadas ou erros de compilação irão ocorrer . automáticas.

Inicialização de Variáveis .

day //executa algo com d } | .or Operados booleanos (short-circuit): odem ser usados como se segue: )) { .not & .Operadores Lógicos Os operadores booleanos s o: ! .and && .and M Date d.or ^. if((d! null) && (d.xor || .

String title = salutation + ³ ´ + name. String name = ³Pete´ + ³ ´ + ³Seymour´. Um argumento deve ser um objeto String Não Strings são convertidos para String automaticamente .Concatenação de String com + O operador +: Executa a concatenação de Strings Produz uma nova string String salutation = ³Dr.´.

necessita typecasting int squashed = (int) L.Casting Se uma informação é perdida durante uma atribuição. //errado. int squashed = bigValue. mas sem sentido int squashed = . o programador deve confirmar a atribuição com um typecasting A atribuição entre long e int requer um casting explícito: long bigValue = L. necessita typecasting int squashed = (int) bigValue. //errado. //OK. //OK int squashed = L. //literal inteiro é o default .

Exemplo: Double x=9.round(x). int nx= (int) Math.9997. .Conversão de Tipos Conversão implícita Byte->short->long->float->double Char -> int Conversão explícita (casts) Trunca valores.

414 é um double . //Ilegal double z = 12. //Ilegal.414.Promoção e Casting de Expressões Variáveis são automaticamente promovidas para um tipo maior (como int para long) Expressão: são compatíveis a nível de atribuição se o tipo de variável é pelo menos do tamanho da expressão long bigVal = 6. 12.414F. //OK float z1 = 12. //OK int smallval = L.

Referências Java Como Programar Capítulo 4 ± Estruturas de controle 4.11 em diante .

Java Básico Poliedro Informática Módulo 4 Estruturas e Fluxo de Controle .

} else { comando ou bloco. } . } if (expresao_booleana) { comando ou bloco. } else if (expresao_booleana) { comando ou bloco.Estrutura Condicional Sintaxe do if/else: if (expressao_booleana) { comando ou bloco.

Exemplo de IF Sem uso de ³else´ Com uso de ³else´ .

char. brea . Sintaxe do switch: switch (expressao) { case constante1: comandos. default: comandos. brea .Estrutura Condicional Utilizados com byte. } . int. brea . case constante2: comandos. shor.

.

i++) { System.out.out. } System.Comandos de Repetição O comando for: for(expressao_inicial. .println(³Você já terminou?´). teste_booleano. } Exemplo: for(int i = . expressao_final) { comando ou bloco.println(³Finalmente!´). i < 1 .

println(³Feito!´).println(³Você já terminou?´). i++. .Comandos de Repetição O comando while: while (expressao_booleana) { statement ou bloc . } System. } Exemplo: int i = while(i < 1 ) { System.out.out.

Comandos de Repetição

O comando do/while:
do { comando ou bloco; } while (teste_booleano);

Exemplo:
int i = do { System.out.println(³Você já terminou?´); i++; } while(i < 1 ) System.out.println(³Feito!´);

Instruções Break e Continue

Podem ser utilizadas para interromper a execução de um bloco; Break : o programa vai para a primeira instrução fora do bloco; Continue: pula as instruções restantes de um bloco, mas não sai do bloco;

Uso de Break

Uso de Continue .

Blocos rotulados .

Exercícios 1 ± Use repetições (loops) e condicionais 2 .25 e 4. .25 da página 256. 4.Usar loops aninhados Exercícios: 4.2 e 5.31 da pagina 213. 5.24.

Referências Java Como Programar Capítulo 4 ± Estruturas de controle: parte 1 Capítulo 5 ± Estruturas de controle: parte 2 .

Java Básico Poliedro Informática Módulo 5 Arrays .

Point[] p. Cria espaço para uma referência Um array é um objeto.Declarando Arrays Agrupa objetos de um mesmo tipo Declara arrays de tipos primitivos ou classe car s[]. char[] s. portanto é criado com new . Point p[].

Array .

s = new char[26].Criando Arrays Use a palavra new para criar o array Por exemplo. i<26. } . } return s. i++) { s[i] = µA¶+ i. for(int i= . o array de primitivos char: public char[] createArray() { char[] s.

um array de objetos: public Point[] createArray() { Point[] p. for(int i= . i<1 . } return p. p = new Point[1 ].Criando Arrays Outro exemplo. i+1). i++) { p[i] = new Point(i. } .

Inicializando Arrays Inicializando um elemento de um array Criando um array com valores iniciais: .

18 da pagina 357 (Não utilize applets) . Resolver o exercício 7.Exercício Escreva um programa que receba do teclado 10 numero inteiros e armazene em um array. o programa ordena o array e imprime o conteudo do array ordenado na tela. Em seguida.

twoDim[ ][ ] = 1 . twoDim[2][1] = 12.Arrays multi-dimensionais int twoDim [][] = new int [4][5]. twoDim[ ][3] = 2 . .

Array Multidimensional .

Exemplo .

twoDim[ ] new int[ ]. twoDim[ ] new int[8]. twoDim[0] new int[ ].Arrays multi-dimensionais Arrays de arrays não retangulares: int twoDim[][] new int [ ][]. twoDim[ ] new int[ ]. //ilegal . int twoDim [][] new int [][ ].

Limites de Arrays Todos os arrays iniciam em : int list[] = new int[1 ].println(list[i]). } . i++) { System.length. i < list.out. for(int i = .

Redimensionando Arrays Arrays não podem ser redimensionados ode ser usada a mesma referência para se criar um novo array int elements[] new int[ ]. elements new int[ 0]. .

0. . . .8. //copia todos os elementos de elements para hold //começando com o elemento 0 ystem. . hold. . . .Copiando Arrays Método ystem.9. }.length). 0. . }. //novo array int hold[] { 0. . .arraycopy() //array original int elements[] { . elements.arraycopy(elements. .

Exercícios 1 ± Resolver o exercício 7.println) .2 da página 35 (Nào utilze applets e mostreo resultado em um JOptionPane ou na console usando o comando System.out.

Recursao no JAVA A liguagem JAVA permite a utilizaçao de recursão. .

Arrays .Referências Java Como Programar Capítulo 7 .

Java Básico Poliedro Informática Módulo 6 Exceções .

. As classes ³Error´ e ³Exception´ derivam de ³Throwable´ Todas as exceções derivam da classe ³Exception´ Abaixo de ³Exception´ existem dois grandes grupos ³RuntimeException e suas derivadas´ e as demais exceções. Cada nova classe pode acrescentar sua proprias possibilidades de erro.Exceções Uma indicação de que ocorreu um problema durante a execução do programa.

Outras Exceções Tentar ler além do final do arquivo Tentar abrir uma URL incorreta. Acesso a ponteiro nulo. . Regra geral: uma RunTimeException ocorre por erro do programador.RunTimeException RunTimeException Acesso a elemento de array além dos limites.

Ao ocorrer uma exceção é chamado um código do programa que deverá trata-la (Tratador de Exceção). Já usa modelo de ³terminação no tratamento de exceção´ . A ocorrência de uma problema que provoque a utilização do código de tratamento de exceções provoca queda de desempenho.Tratamento de Exceções Permite ao programa capturar e tratar erros em vez de deixa-los ocorrer e sofrer as conseqüências. O simples existem do código de tratamento de exceção não causa perda de desempenho.

Exceções A classe Exception define condições de erros que seu programa pode encontrar Exceções podem ocorrer quando: O arquivo que você tentou abrir não existe A conexão com a rede não está ativada Os operandos sendo manipulados estão fora da faixa prescrita O arquivo de classes que você quer ler está faltando Utiliza-se o bloco Try/Catch para tratar exceções .

Try e catch 1 try { 2 // código que pode lançar exceção 3 } catch (MyExceptionType myExcept) { 4 // código a ser executado se uma exceção MyExceptionType é lançada 5 } catch (Exception otherExcept) { 6 // código a ser executado se uma exceção Exception geral é lançada .

Um CATCH que captura um objeto ³Exception´ captura todas as exceções. Um CATCH que caputa um objeto ³Throuwable´ captura todas as exceções e erros. O Bloco FINALLY é executado independente de ocorrer uma exceção ou não. nenhum dos blocos CATCH serão avaliado ou executados. Um bloco CATCH pode tratar a exceção ou dispara-la novamente ou disparar um outro tipo de exceção.Try/Catch O bloco TRY pode ser seguido de um ou mais CATCH Se nenhuma exceção ocorrer. .

Exemplo .

} catch (BrokenPipeException e) { logProblem(e). } finally { stopFaucet(). } . waterLawn().Cláusula finally try { startFaucet().

printStackTrace e getmessage

Utilize o metodo printStarckTrace para imprimir a pilha de chamada de métodos (Útil na depuração do erro); O método getMessage retorna a String descritiva armazenada em uma exceção.

Throw

O comando ³throw´ é utilizado para lançar uma exceção. Exemplo: throw new Exception(); try { .........} catch (Exception a) { throw a;}

Mecanismo de Pilha

Se uma exceção não é tratada no bloco try-catch atual, ela é propagada para o método chamador Se uma exceção volta até o método main e não é tratada l , o programa é terminado de forma anormal

Categorias de Exceções .

Exceções Comuns ArithmeticException NullPointerException NegativeArraySizeException ArrayIndexOutOfBoundsException SecurityException .

Não faca micro gerenciamento de instruções.Regra de Tratamento ou Declaração O tratamento de exceção não deve substituir testes simples. . passe para frente. Não silencie as exceções. Quando não souber tratar a exceção.

divisão por zero. O programa deverá tratar os erros que podem ocorrer e mostrar a mensagem adequada para o usuário. Em seguida o programa deve perguntar ao usuário qual o indice do array que ele deseja consultar. .Exercícios Exercício 1: Tratando Exceções Escreva um programa que recebe do usuário dois número inteiros e mostra como resultado a divisão de um número pelo outro. Exemplo de erros possíveis: número informado pelo usuário não é válido. O programa mostra o conteúdo da posição do array informada pelo usuário. Exercício 2 Escreva um programa que sorteia um numero aleatório entre 1 e 1 . O programa deve tratar as exceções que podem ocorrer. O numero sorteado é utilizado para chamar um método que cria um array do tamanho recebido por parâmetro e popular o array com números aleatórios.

Referência Java Como Programar Capítulo 14 ± Tratamento de exceções Até o 14.10 .

Java Básico Poliedro Informática Módulo 7 Métodos .

Os métodos que não são estáticos devem ser chamados através de um objeto (instancia de uma classe) .Métodos Estáticos Os métodos estáticos podem ser utilizados diretamente através da classe.

random() . No entanto é aconselhável o emprego da palavra this para explicitar invocação: this.metodo() Ex: Math.metodo() em caso de execução de método do próprio objeto não há necessidade.metodo() Métodos de classe (ou estáticos) empregar nome da classe antes do nome do metodo: Classe.Invocação de Métodos Métodos de instância empregar o nome do objeto antes do nome do método: objeto.

String a = ³Teste de sistema´.length() . //errado .parseInt(³1000). Um método que retorna o tamanho de uma string não é estático. String. Integer.Exemplo O método parseInt definido na classe Integer é um método estático. a.length().

Retorno de Métodos

Tipos de retorno
primitivo referência void

Não há necessidade de recuperar o retorno de um método (valor não será armazenado)
Ex:
double d=Math.random(); Math.random();

Passagem de Parâmetros

JAVA: sempre efetuada por cópia Alteração no valor do argumento não causa alteração no valor do parâmetro passado Argumentos referência
Alteração no estado do objeto causa alteração no parâmetro passado

Exemplo
public class Main { private static void inverte(int a[],int b[]) {int temp[]; temp = a; a = b; b = temp System.out.println("O valor de a[0] antes é:"+a[0]); a[0] = 2000; System.out.println("O valor de a[0] agora é:"+a[0]); System.out.println("O valor de b[0] é:"+b[0]); } public static void main(String[] args) { int x[] = {1,2,3,4,5}; int y[] = {6,7,8,9,10}; inverte(x,y); System.out.println("O valor de x[0] agora é:"+x[0]); System.out.println("O valor de y[0] agora é:"+y[0]); }

Exemplo (Resultado) O valor de a[0] antes é:6 O valor de a[0] agora é:2000 O valor de b[0] é:1 O valor de x[0] agora é:1 O valor de y[0] agora é:2000 .

cria(p).getNome().getNome(). p. p.Passagem de Parâmetros Parâmetro referência Sempre que se desejar obter a referência para um objeto criado em um método invocado. p = cria(). o objeto deverá ser retornado pelo método de criação Ex: Pessoa p. //OK .// erro: ponteiro nulo Pessoa p.

Exercício Escreva um programa que que possua um metodo estático que recebe por parâmetro um numero inteiro que indica o tamanho de um array a ser criado. . No programa principal declare um variável que recebe o resultado deste método e em seguida imprima o conteúdo do array. Este método devera retornar como resultado o array criado. Este método cria o array e solicita vários números do usuário e vai armazenado no array ate que o array esteja completo.

Java Básico Poliedro Informática Módulo 8 API Basica .

A classe Math Grupo de funções estáticas: truncagem: ceil. toDegrees e toRadians logaritmos: log e exp outros: sqrt. floor e round variações: max. acos. asin. min e abs trigonometria: sin. tan. pow e random constantes: PI e E . atan. cos.

toUpperCase e trim operações de busca: endsWith. substring.A classe String objetos String são sequências imutáveis de caracteres Unicode novas Strings: concat. equalsIgnoreCase e compareTo Outros: charAt e length . indexOf e lastIndexOf Comparações: equals. startsWith. toLowerCase. replace.

setCharAt e setLength. indexOf. replace . reverse.A classe StringBuffer objetos StringBuffer são sequências mutáveis de caracteres Unicode Construtores: StringBuffer() ± buffer vazio StringBuffer(int capacity) ± buffer vazio com capacidade inicial especificada StringBuffer(String initialString) ± buffer com a String especificada operações de modificação: append. insert.

out.insert(7. texto.append(" novo texto"). System. Resultado: O texto é:Inicio Inserindo novo texto O tamanho é: 27 A capacidade é: 46 .Exemplo StringBuffer texto = new StringBuffer("Inicio"). texto."Inserindo ").println("O texto é:"+texto).

Classes Wrapper Uso de tipos primitivos no contexto de objetos Conversão entre tipos byte .java.Double .Character float .lang.java.Long boolean .java. Integer long .lang.lang.Boolean char .Byte short .java.lang.java.java.lang. Short int .lang.lang.java.java.Float double .lang.

.Exemplo String a = ³1000´. int num = Integer. float f = Float. String b = ³1000.12´.parseFloat(b).parseInt(a).

Arrays Oferece metodos estaticos para manipular arrays.9. Exemplo: int a[] = {7.sort(a).1. Arrays.util.A Classe java.20}. //ordena o array .3.

YEAR Calendar.AUGUST .GregorianCalendar Utilizada para armazenar data e hora É uma subclasse de ³Calendar´ (Abstrata) Definição de data para o sistema A classe µCalendar´ possui métodos e constantes utilizadas.Classe java.DAY_OF_MONTH Calendar. Calendar.util.

println("O ano é "+dataHoje.YEAR)). System.println("O mes é "+data.DAY_OF_MONTH)). System. System.get(Calendar.OCTOBER.MONTH)).MONTH)).Exemplo GregorianCalendar data = new GregorianCalendar(2001.DAY_OF_MONTH)).println("O mes é "+dataHoje. System. .get(Calendar.out.println("O ano é "+data. System.get(Calendar.Calendar.out.YEAR)).get(Calendar.get(Calendar. GregorianCalendar dataHoje = new GregorianCalendar(). System.out.out.get(Calendar.5).out.out.println("O dia é "+dataHoje.println("O dia é "+data.

i++) System.length.Parâmetros de linha de comando pode ser usado por qualquer aplicativo Java parâmetros são colocados na linha de comando na chamada ao interpretador Java cada parâmetro é inserido no vetor de String passado no método main public static void main(String[] args) { for(int i=0. .println("O parametro "+i+" é "+args[i]).out.i<args.

O programa devera localizar no texto a palavra p1 e substituir pela palavra p2. em seguida solicita que seja fornecida uma palavra de busca (p1) e outra de substituição (p2). meses e dias.Exercício Escreva um programa em Java que recebe pede a data de nascimento de uma pessoa e como resultado mostra a idade em anos. Escreva um programa que recebe um texto do usuário. . Depois imprima o texto final.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->