Apostila Java Final

Embed Size (px)

Citation preview

JAVA

SumrioCaptulo 1: LGICA DE PROGRAMAO7Introduo Lgica de Programao7SEQUNCIA LGICA7INSTRUES7ALGORITMO8PROGRAMAS8Captulo 2: DESENVOLVENDO ALGORITMOS10PSEUDOCDIGO10FASES10Algoritmo12TESTE DE MESA12Captulo 3: DIAGRAMA DE BLOCO14O QUE UM DIAGRAMA DE BLOCO?14SIMBOLOGIA14Constantes, Variveis e Tipos de Dados.16Operadores Relacionais19Operadores Lgicos21Operaes Lgicas22Estrutura de Deciso e Repetio23CASO SELECIONE / SELECT ... CASE26COMANDOS DE REPETIO29Captulo 4: ESTRUTURAS DE CONTROLE DE FLUXO33switch case33Array35CAPTULO 5: INTRODUO38Aspectos tcnicos38Aspectos conceituais38Java o mesmo que JavaScript ?41Programao para a Internet ?42Integrao Java-HTML42A difuso de Java43Origem da Linguagem44Caractersticas da Linguagem45CAPTULO 6: JAVA MACHINE46Java Virtual Machine46Java Virtual Machine46Compiladores e Interpretadores46Arquitetura Java47Turbinando o interpretador47Vantagens48Desvantagens48Arquitetura Java Machine49A arquitetura da Mquina Java49Java e suas edies49CAPTULO 7: AMBIENTE DE DESENVOLVIMENTO51Java Development Kit51Eclipse52Instalao52Execuo do Eclipse52Criando um projeto52Perpectivas53Acrescentando uma classe53Executando um programa53Depurando um programa53Depurando um programa54Mudando a verso do JDK54CAPTULO 8: ESTRUTURA DE UM PROGRAMA JAVA55Requisitos Bsicos55Requisitos Bsicos exemplo55Tipos Bsicos56Classes Bsicas57Variveis58Declarao e inicializao59Variveis locais59Converso de tipos59Operadores e expresses60Operadores aritmticos60Operadores conjugados com atribuio de valores60Operadores de incremento e decremento61Operadores de comparao61Operadores lgicos61Operadores bit a bit61Comandos bsicos62Comentrios62Condicionais62Laos63Importar para o arquivo fonte as classes ou pacotes indicados63Definir o pacote ao qual pertence a classe sendo definida64Interrompe a execuo de um bloco indicado64Forar a prxima iterao do lao indicado64Parmetros de entrada64Pacotes64CAPTULO 9: CLASSES E OBJETOS66Programao orientada a objetos66O que ?66Classes e Objetos66Conceito de classe67Atributos, mtodos e interfaces68Regras gerais68Mtodos Especiais69Construtor69Mtodo Abstrato69Destrutor69Definio de uma classe e alocao70Construtores e instanciao70Referncias a objetos71Declarao de mtodos71Notao UML72Sobrecarga de Mtodos73Sobrecarga de construtores74Classes e mtodos abstratos75Atributos e mtodos estticos75API Java76CAPTULO 10: ARRAYS E STRING77Alocao de arrays78Arrays multidimensionais79String80CAPTULO 11: HERANA E INTERFACES81Herana81Anatomia da herana81Herana e hierarquia de classes82Definio de subclasses83Chamada de mtodos na herana84Sobrescrita de mtodos84Herana e construtores86Interface86Declarao de interfaces87Exemplo do uso de interfaces88Definio das classes bases88Exemplo - Definio das classes derivadas89Exemplo - Definio da interface89Exemplo - Redefinio das classes bases90Exemplo - Redefinio da classes90Modificador final91CAPTULO 12: ENCAPSULAMENTO92Modificadores de acesso92Modificadores de acesso93Exemplo94Manipulando datas em Java95Date(java.util.Date)95Calendar(java.util.Calendar)95DateFormat(java.text.DateFormat)96CAPTULO 13: POLIMORFISMO100Exemplo conceitual100Polimorfismo e Herana101CAPTULO 14: ENTRADA E SADA104Entrada104InputStream - exemplo105Classes herdadas de InputStream106Sada - OutputStreams107Readers e Writers108A classe File109CAPTULO 15: THREADS110Diagrama111Implementao111Sincronizao de threads113CAPTULO 16: EXCEES E ERROS114Maneira comum de tratar excees/erros114Tratamento em Java115Modificador throws116Tratamento117Passando o tratamento adiante118Tratamento mltiplo119A clusula finally119Definindo excees120CAPTULO 17: TPICOS AVANADOS121Colees121Networking123Generics124

Captulo 1: LGICA DE PROGRAMAO

Introduo Lgica de ProgramaoA lgica de programao necessria para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a sequncia lgica para o desenvolvimento.Ento o que lgica? Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo.

SEQUNCIA LGICAEstes pensamentos podem ser descritos como uma sequncia de instrues, que devem ser seguidas para se cumprir uma determinada tarefa.Sequncia Lgica so passos executados at atingir um objetivo ou soluo de um problema.

INSTRUESNa linguagem comum, entende-se por instrues um conjunto de regras ou normas definidas para a realizao ou emprego de algo.Em informtica, porm, instruo a informao que indica a um computador uma ao elementar a executar. Convm ressaltar que uma ordem isolada no permite realizar o processo completo, para isso necessrio um conjunto de instrues colocadas em ordem sequencial lgica. Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prtica uma srie de instrues: descascar as batatas, bater os ovos, fritar as batatas, etc... evidente que essas instrues tm que ser executadas em uma ordem adequada no se podem descascar as batatas depois de frit-las. Dessa maneira, uma instruo tomada em separado no tem muito sentido; para obtermos o resultado, precisamos colocar em prtica o conjunto de todas as instrues, na ordem correta.Instrues um conjunto de regras ou normas definidas para a realizao ou emprego de algo. Em informtica, o que indica a um computador uma ao elementar a executar.

ALGORITMOUm algoritmo formalmente uma sequncia finita de passos que levam a execuo de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequncia de instrues que do cabo de uma meta especfica. Estas tarefas no podem ser redundantes nem subjetivas na sua definio, devem ser claras e precisas.Como exemplos de algoritmos podem citar os algoritmos das operaes bsicas (adio, multiplicao, diviso e subtrao) de nmeros reais decimais. Outros exemplos seriam os manuais de aparelhos eletrnicos, como um videocassete, que explicam passo-a-passo como, por exemplo, gravar um evento. At mesmo as coisas mais simples, podem ser descritas por sequncias lgicas. Por exemplo:

Chupar uma bala.Pegar a balaRetirar o papelChupar a balaJogar o papel no lixo

Somar dois nmeros quaisquer.Escreva o primeiro nmero no retngulo AEscreva o segundo nmero no retngulo BSome o nmero do retngulo A com nmero do retngulo B e coloque o resultado no retngulo C

PROGRAMASOs programas de computadores nada mais so do que algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que so interpretados e executados por uma mquina, no caso um computador. Notem que dada esta interpretao rigorosa, um programa por natureza muito especfica e rgida em relao aos algoritmos da vida real.

EXERCCIOS1. Crie uma sequncia lgica para tomar banho:2. Faa um algoritmo para somar dois nmeros e multiplicar o resultado pelo primeiro nmero3. Descreva com detalhes a sequncia lgica para Trocar um pneu de um carro.4. Faa um algoritmo para trocar uma lmpada. Descreva com detalhes:

Captulo 2: DESENVOLVENDO ALGORITMOS

PSEUDOCDIGOOs algoritmos so descritos em uma linguagem chamada pseudocdigo. Este nome uma aluso posterior implementao em uma linguagem de programao, ou seja, quando formos programar em uma linguagem, por exemplo, Visual Basic, estar gerando cdigo em Visual Basic. Por isso os algoritmos so independentes das linguagens de programao. Ao contrrio de uma linguagem de programao no existe um formalismo rgido de como deve ser escrito o algoritmo.O algoritmo deve ser fcil de interpretar e fcil de codificar. Ou seja, ele deve ser o intermedirio entre a linguagem falada e a linguagem de programao.

REGRAS PARA CONSTRUO DO ALGORITMO1. Para escrever um algoritmo precisamos descrever a sequncia de instrues, de maneira simples e objetiva. Para isso utilizaremos algumas tcnicas:2. Usar somente um verbo por frase;3. Imaginar que voc est desenvolvendo um algoritmo para pessoas que no trabalham com informtica;4. Usar frases curtas e simples;5. Ser objetivo;6. Procurar usar palavras que no tenham sentido dbio. FASESNo captulo anterior vimos que ALGORITMO uma sequncia lgica de instrues que podem ser executadas. importante ressaltar que qualquer tarefa que siga determinado padro pode ser descrita por um algoritmo, como por exemplo:COMO FAZER ARROZ DOCE ou entoCALCULAR O SALDO FINANCEIRO DE UM ESTOQUE. Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases fundamentais.

Onde temos:ENTRADA: So os dados de entrada do algoritmoPROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado finalSADA: So os dados j processados

Analogia com o homem

Exemplo de AlgoritmoImagine o seguinte problema: Calcular a mdia final dos alunos da 3 Srie. Os alunos realizaro quatro provas: P1, P2, P3 e P4.Onde:Mdia Final = P1 + P2 + P3 + P4 4Para montar o algoritmo proposto, faremos trs perguntas:a) Quais so os dados de entrada?R: Os dados de entrada so P1, P2, P3 e P4b) Qual ser o processamento a ser utilizado?R: O procedimento ser somar todos os dados de entrada e dividi-los por 4 (quatro)P1 + P2 + P3 + P4 4c) Quais sero os dados de sada?R: O dado de sada ser a mdia final

AlgoritmoReceba a nota da prova1Receba a nota de prova2Receba a nota de prova3Receba a nota da prova4Some todas as notas e divida o resultado por 4Mostre o resultado da diviso

TESTE DE MESAAps desenvolver um algoritmo ele dever sempre ser testado. Este teste chamado de TESTE DE MESA, que significa, seguir as instrues do algoritmo de maneira precisa para verificar se o procedimento utilizado est correto ou no.

Veja o exemplo:Nota da Prova 1Nota da Prova 2Nota da Prova 3Nota da Prova 4

Utilize a tabela abaixo:P1P2P3P4MDIA

EXERCCIOS1) Identifique os dados de entrada, processamento e sada no algoritmo abaixo Receba cdigo da pea Receba valor da pea Receba Quantidade de peas Calcule o valor total da pea (Quantidade * Valor da pea) Mostre o cdigo da pea e seu valor total

2) Faa um algoritmo para Calcular o estoque mdio de uma pea, sendo queESTOQUEMDIO = (QUANTIDADE MNIMA + QUANTIDADE MXIMA) /2

3) Teste o algoritmo anterior com dados definidos por voc.

Captulo 3: DIAGRAMA DE BLOCOO QUE UM DIAGRAMA DE BLOCO?O diagrama de blocos uma forma padronizada e eficaz para representar os passos lgicos de um determinado processamento. Com o diagrama podemos definir uma sequncia de smbolos, com significado bem definido, portanto, sua principal funo a de facilitar a visualizao dos passos de um processamento.

SIMBOLOGIAExistem diversos smbolos em um diagrama de bloco. No decorrer do curso apresentaremos os mais utilizados. Veja no quadro abaixo alguns dos smbolos que iremos utilizar:

Dentro do smbolo sempre ter algo escrito, pois somente os smbolos no nos dizem nada. Veja no exemplo a seguir:

Exemplos de Diagrama de BlocoCHUPAR UMA BALA

CALCULAR A MDIA DE 4 NOTAS

Veja que no exemplo da bala seguimos uma sequncia lgica somente com informaes diretas, j no segundo exemplo da mdia utilizamos clculo e exibimos o resultado do mesmo.EXERCCIOS1. Construa um diagrama de blocos que :Leia a cotao do dlarLeia um valor em dlaresConverta esse valor para RealMostre o resultado2. Desenvolva um diagrama que:Leia 4 (quatro) nmerosCalcule o quadrado para cada umSomem todos eMostre o resultado3. Construa um algoritmo para pagamento de comisso de vendedores de peas, levando-se em considerao que sua comisso ser de 5% do total da venda e que voc tem os seguintes dados:Identificao do vendedorCdigo da peaPreo unitrio da peaQuantidade vendidaE depois construa o diagrama de blocos do algoritmo desenvolvido, e por fim faa um teste de mesa.

Constantes, Variveis e Tipos de Dados.Variveis e constantes so os elementos bsicos que um programa manipula. Uma varivel um espao reservado na memria do computador para armazenar um tipo de dado determinado.Variveis devem receber nomes para poderem ser referenciadas e modificadas quando necessrio. Um programa deve conter declaraes que especificam de que tipo so as variveis que ele utilizar e s vezes um valor inicial. Tipos podem ser, por exemplo: inteiros, reais, caracteres, etc. As expresses combinam variveis e constantes para calcular novos valores.

ConstantesConstante um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um programa. Conforme o seu tipo, a constante classificada como sendo numrica lgica e literal.Exemplos de constante

VariveisVarivel a representao simblica dos elementos de certo conjunto. Cada varivel corresponde a uma posio de memria, cujo contedo pode se alterado ao longo do tempo durante a execuo de um programa. Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante. Exemplos de variveis.

Tipos de VariveisAs variveis e as constantes podem ser basicamente de quatro tipos: Numricas, caracteres, Alfanumricas ou lgicas.Numricas Especficas para armazenamento de nmeros, que posteriormente podero ser utilizados para clculos. Podem ser ainda classificadas como Inteiras ou Reais. As variveis do tipo inteiro so para armazenamento de nmeros inteiros e as Reais so para o armazenamento de nmeros que possuam casas decimais.Caracteres Especficos para armazenamento de conjunto de caracteres que no contenham nmeros (literais). Ex: nomes.Alfanumricas Especficas para dados que contenham letras e/ou nmeros. Pode em determinados momentos conter somente dados numricos ou somente literais. Se usado somente para armazenamento de nmeros, no poder ser utilizada para operaes matemticas.Lgicas Armazenam somente dados lgicos que podem ser Verdadeiro ou Falso.

Declarao de VariveisAs variveis s podem armazenar valores de um mesmo tipo, de maneira que tambm so classificadas como sendo numricas lgicas e literais.

EXERCCIOS1. O que uma constante? D dois exemplos.2. O que uma varivel? D dois exemplos.3. Faa um teste de mesa no diagrama de bloco abaixo e preencha a tabela ao lado com os dados do teste:

4. Sabendo-se que Jos tem direito a 15% de reajuste de salrio, complete o diagrama abaixo:

OperadoresOs operadores so meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos trs tipos de operadores:Operadores AritmticosOperadores RelacionaisOperadores Lgicos

Operadores AritmticosOs operadores aritmticos so os utilizados para obter resultados numricos. Alm da adio, subtrao, multiplicao e diviso, podem utilizar tambm o operador para exponenciao. Os smbolos para os operadores aritmticos so:

Hierarquia das Operaes Aritmticas1 ( ) Parnteses2 Exponenciao3 Multiplicao, diviso (o que aparecer primeiro)4 + ou (o que aparecer primeiro)

Exemplo

Operadores RelacionaisOs operadores relacionais so utilizados para comparar String de caracteres e nmeros. Os valores a serem comparados podem ser caracteres ou variveis. Estes operadores sempre retornam valores lgicos (verdadeiro ou falso/ True ou False) Para estabelecer prioridades no que diz respeito a qual operao executar primeiro, utilize os parnteses.

Os operadores relacionais so:

Exemplo:Tendo duas variveis A = 5 e B = 3Os resultados das expresses seriam:

Smbolo Utilizado para comparao entre expresses

Operadores LgicosOs operadores lgicos servem para combinar resultados de expresses, retornando se o resultado final verdadeiro ou falso.Os operadores lgicos so:EAND

OUOR

NONOT

E / AND Uma expresso AND (E) verdadeira se todas as condies forem Verdadeiras OR/OU Uma expresso OR (OU) verdadeira se pelo menos uma condio for verdadeira NOT Um expresso NOT (NO) inverte o valor da expresso ou condio, se verdadeira inverte para falsa e vice-versa.A tabela abaixo mostra todos os valores possveis criados pelos trs operadores lgicos (AND, OR e NOT).

Exemplos:Suponha que temos trs variveis A = 5, B = 8 e C =1Os resultados das expresses seriam:

Operaes LgicasOperaes Lgicas so utilizadas quando se torna necessrio tomar decises em um diagrama de bloco.Num diagrama de bloco, toda deciso ter sempre como resposta o resultado VERDADEIRO ou FALSO. Como no exemplo do algoritmo CHUPAR UMA BALA. Imaginemos que algumas pessoas no gostem de chupar bala de Morango, neste caso teremos que modificar o algoritmo para:

Chupar uma bala.Pegar a balaA bala de morango?Se sim, no chupe a balaSe no, continue com o algoritmoRetirar o papelChupar a balaJogar o papel no lixo

Exemplo: Algoritmo Chupar Bala utilizando diagrama de Blocos

EXERCCIOS1. Elabore um diagrama de blocos que leia um nmero. Se positivo armazene-o em A, se for negativo, em B. No final mostrar o resultado.2. Ler um nmero e verificar se ele par ou mpar. Quando for par armazenar esse valor em P quando for mpar armazen-lo em I. Exibir P e I no final do processamento.3. Construa um diagrama de blocos para ler uma varivel numrica N e imprimi-la somente se a mesma for maior que 100, caso contrrio imprimi-la com o valor zero.

Estrutura de Deciso e RepetioComo vimos no captulo anterior em Operaes Lgicas, verificamos que na maioria das vezes necessitamos tomar decises no andamento do algoritmo. Essas decises interferem diretamente no andamento do programa. Trabalharemos com dois tipos de estrutura. A estrutura de Deciso e a estrutura de Repetio

Comandos de DecisoOs comandos de deciso ou desvio fazem parte das tcnicas de programao que conduzem a estruturas de programas que no so totalmente seqenciais. Com as instrues de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo com as decises lgicas tomadas em funo dos dados ou resultados anteriores. As principais estruturas de deciso so: Se Ento, Se ento Seno e Caso Selecione.

SE ENTO / IF ... THENA estrutura de deciso SE/IF normalmente vem acompanhada de um comando, ou seja, se determinada condio for satisfeita pelo comando SE/IF ento execute determinado comando.Imagine um algoritmo que determinado aluno somente estar aprovado se sua mdia for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria.

SE MEDIA >= 5.0 ENTO ALUNO APROVADOEm diagrama de blocos ficaria assim:

Em Visual BasicIF MEDIA >= 5 ThenText1 = APROVADOENDIF

SE ENTO SENO / IF ... THEN ... ELSEA estrutura de deciso SE/ENTO/SENO, funciona exatamente como a estrutura SE, com apenas uma diferena, em SE somente podemos executar comandos caso a condio seja verdadeira, diferente de SE/SENO pois sempre um comando ser executado independente da condio, ou seja, caso a condio seja verdadeira o comando da condio ser executado, caso contrrio o comando da condio falsa ser executadoEm algoritmo ficaria assim:

SE MDIA >= 5.0 ENTOALUNO APROVADOSENOALUNO REPROVADOEm diagrama

Em Visual BasicIF MEDIA >= 5 ThenText1 = APROVADOELSEText1 = REPROVADOENDIF

No exemplo acima est sendo executada uma condio que, se for verdadeira, executa o comando APROVADO, caso contrrio executa o segundo comando REPROVADO. Podemos tambm dentro de uma mesma condio testar outras condies.

Como no exemplo abaixo:

Em Visual BasicIF MEDIA >= 5 ThenIF MEDIA >= 7.0 thenText1 = Aluno APROVADOELSEText1 = Aluno Necessita fazer outra AvaliaoENDIFELSEText1 = Aluno REPROVADOENDIF

CASO SELECIONE / SELECT ... CASEA estrutura de deciso CASO/SELECIONE utilizada para testar, na condio, uma nica expresso, que produz um resultado, ou, ento, o valor de uma varivel, em que est armazenado um determinado contedo. Compara-se, ento, o resultado obtido no teste com os valores fornecidos em cada clusula Caso.No exemplo do diagrama de blocos abaixo, recebido uma varivel Op e testado seu contedo, caso uma das condies seja satisfeita, atribudo para a varivel Titulo a String Opo X, caso contrrio atribudo String Opo Errada.

Em Visual Basic utilizamos a seguinte sequncia de comandos para representar o diagrama anterior.TITULO = OP = INPUTBOX(DIGITE A OPO)SELECT CASE OPCASE 1TITULO = OPO 1CASE 2TITULO = OPO 2CASE 3TITULO = OPO 3CASE 4TITULO = OPO 4CASE 5TITULO = OPO 5CASE ELSETITULO = OPO ERRADAEND SELECTLABEL1.CAPTION = TITULO

EXERCCIOS1. Joo Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o rendimento dirio de seu trabalho. Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento de pesca do estado de So Paulo (50 quilos) deve pagar uma multa de R$ 4,00 por quilo excedente. Joo precisa que voc faa um diagrama de blocos que leia a varivel P (peso de peixes) e verifique se h excesso. Se houver, gravar na varivel E (Excesso) e na varivel M o valor da multa que Joo dever pagar. Caso contrrio mostrar tais variveis com o contedo ZERO.2. Elabore um diagrama de bloco que leia as variveis C e N, respectivamente cdigo e nmero de horas trabalhadas de um operrio. E calcule o salrio sabendo-se que ele ganha R$ 10,00 por hora. Quando o nmero de horas exceder a 50 calcule o excesso de pagamento armazenando-o na varivel E, caso contrrio zerar tal varivel. A hora excedente de trabalho vale R$ 20,00. No final do processamento imprimir o salrio total e o salrio excedente.

3. Desenvolva um diagrama que: Leia 4 (quatro) nmeros; Calcule o quadrado de cada um; Se o valor resultante do quadrado do terceiro for >= 1000, imprima-o e finalize; Caso contrrio, imprima os valores lidos e seus respectivos quadrados.4. Faa um diagrama de bloco que leia um nmero inteiro e mostre uma mensagem indicando se este nmero par ou mpar, e se positivo ou negativo.

5. A Secretaria de Meio Ambiente que controla o ndice de poluio mantm 3 grupos de indstrias que so altamente poluentes do meio ambiente. O ndice de poluio aceitvel varia de 0,05 at 0,25. Se o ndice sobe para 0,3 as indstrias do 1 grupo so intimadas a suspenderem suas atividades, se o ndice crescer para 0,4 as industrias do 1 e 2 grupo so intimadas a suspenderem suas atividades, se o ndice atingir 0,5 todos os grupos devem ser notificados a paralisarem suas atividades. Faa um diagrama de bloco que leia o ndice de poluio medido e emita a notificao adequada aos diferentes grupos de empresas.

6. Elabore um algoritmo que dada a idade de um nadador classifique-o em uma das seguintes categorias:Infantil A = 5 a 7 anosInfantil B = 8 a 11 anosJuvenil A = 12 a 13 anosJuvenil B = 14 a 17 anosAdultos = Maiores de 18 anos

7. Elabore um algoritmo que gera e escreve os nmeros mpares dos nmeros lidos entre 100 e 200.

COMANDOS DE REPETIO

Utilizamos os comandos de repetio quando desejamos que um determinado conjunto de instrues ou comandos sejam executados um nmero definido ou indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou at que seja alcanado.

Trabalharemos com modelos de comandos de repetio:Enquanto x, processar (Do While ...Loop);At que x, processar ... (Do Until ... Loop);Processar ..., Enquanto x (Do ... Loop While);Processar ..., At que x (Do ... Loop Until)Para ... At ... Seguinte (For ... To ... Next)

Enquanto x, Processar (Do While ... Loop)Neste caso, o bloco de operaes ser executado enquanto a condio x for verdadeira. O teste da condio ser sempre realizado antes de qualquer operao. Enquanto a condio for verdadeira o processo se repete. Podemos utilizar essa estrutura para trabalharmos com contadores.Em diagrama de bloco a estrutura a seguinte:Exemplo de Contador

Em Visual Basic:Nr = 0Do While Nr 15 && idade < 18){ Response.Write("Somente com os pais."); Response.Write("Menor de 18 anos.");}else{ Response.Write("No autorizado."); Response.Write("Menor de 15 anos.");}

Captulo 4: ESTRUTURAS DE CONTROLE DE FLUXO

switch case Estrutura de deciso que seleciona um comando com base no valor de uma varivel. A clusula default opcional. Estruturas de repetio for

Estrutura de repetio composta por trs expresses: Inicializao. Condio de parada. Atualizao.

for (int i = 0; i < 10; i++) { Response.Write(i); Response.Write("
");}

Estruturas de repetio while Estrutura de repetio que realiza as operaes indicadas enquanto a condio especificada for verdadeira.

Estruturas de repetio do ... while Estrutura de repetio semelhante anterior, porm as condies so verificadas ao final da execuo.As operaes especificadas so executadas pelo menos uma vez.Necessita do caractere ; ao final da estrutura.

Converso de tipos

ArrayArray um tipo que permite o armazenamento de uma coleo de valores de um mesmo tipo.Arrays so indexados a partir de zero (0).No podem ter seu tamanho alterado depois de instanciados.Para declarar um Array, basta adicionar um par de colchetes logo aps a declarao do tipo dos elementos individuais;

Instanciando arrays

Preenchendo um array

Arrays podem ser: Unidimensionais Bidimensionais JaggedUnidimensionais

Bidimensionais

Jagged

Estruturas de repetio foreachEsta estrutura de repetio uma variao do for. Especifica uma varivel auxiliar e a coleo ou array cujos elementos sero percorridos.

EnumeraesDefinindo tipos enumerados

NamespacesDeclarando um namespace

Namespaces em cadeia

Instruo Using

Comentrios e regiesCriando comentrios e regies:

CAPTULO 5: INTRODUO

Aspectos tcnicosJava j nasceu adulto, ou seja, no foi uma linguagem que passou pelo processo tradicional de avaliao, enriquecimento e agregao de recursos.Com isso no se percebe na linguagem estruturas acomodadas a posteriori, ou adaptaes, que para o programador representam verdadeiras armadilhas.Tecnicamente, Java bem homognea em termos de estrutura e sintaxe. Consegue ser verdadeiramente orientada a objetos, e ao mesmo tempo de fcil programao.Em termos de ambiente de desenvolvimento, Java apresenta caractersticas peculiares. Pode comportar o desenvolvimento de uma aplicao de grande porte, tal como C++, e oferece recursos para tal. No entanto pode ser eficientemente usada para aplicaes de poucas linhas, gerando executveis bem reduzidos e enxutos. Java otimiza a gerao de cdigo em funo do tamanho da aplicao.A segurana oferecida ao programador em tempo de compilao e execuo permite a gerao de aplicativos com menos bugs e com menos riscos de perda de controle da execuo, acelerando o processo de desenvolvimento. Java e seus vrios aspectos Aspectos conceituais introduzidos com Java Novo paradigma de computao e redes Novo mercado de servios

Aspectos conceituais

Java no representa apenas uma linguagem, representa tambm um novo modelo de computao e desenvolvimento sobre a Internet.Podemos dizer que, mesmo que Java no seja a linguagem do sculo XXI, por razes mercadolgicas, o conceito que Java carrega consigo j amplamente explorado pelas linguagens de programao para a Internet que esto surgindo.Este conceito nada mais do que tornar a Internet um meio de interao no apenas entre as pessoas, mas entre as aplicaes e objetos de programao, de forma que os recursos estaro compartilhados nesta grande rede e o seu uso ficar transparente ao usurio final.Este conceito de rede e computao gera uma srie de outros servios e faz com que as empresas de desenvolvimento norteiem seus esforos neste sentido.O que realmente Java ? Limitada ? Simplicidade ou incapacidade ? Ineficiente ? Interpretada X compilada ?

Java uma linguagem limitada?O fato de Java no apresentar alguns recursos disponveis em outras linguagens de alto nvel, tais como ponteiros, destrutores e herana mltipla no a qualifica como inferior nestes aspectos.Com Java possvel realizar praticamente as mesmas coisas que qualquer outra linguagem que utiliza esses recursos, com a vantagem de ter eliminado grande parte das fontes de erros e bugs que prejudicam e atrasam um desenvolvimento.Desta forma, esta simplificao do ponto de vista do programador representou uma enorme complicao para os idealizadores da linguagem, que tiveram que garantir que Java fosse igualmente eficiente com estes recursos a menos.

Java ineficiente?Java independente da plataforma. Para chegar a isto o cdigo binrio em Java na realidade um cdigo interpretado. Veremos mais a fundo esta questo posteriormente.Dessa forma, o desempenho de uma aplicao Java depende essencialmente do interpretador utilizado. Com isto, v-se aplicaes idnticas, em mquinas iguais rodando com diferenas de velocidade. Sob este ponto de vista, podemos afirmar que Java ser sempre menos eficiente ou pelo menos igual a uma mesma aplicao em C.A tendncia verificada nos interpretadores Java atingir nveis de performance iguais ao C, com o uso de tcnicas especficas e desenvolvidas especialmente para isto. No entanto o limite superior deve ser o limite imposto por C. Padro ? Cdigo aberto X proprietrio ? Portabilidade X eficincia ? Economicamente vivel ? Custo X benefcio

Java um novo padro ?Java no um padro aberto, mas sim uma linguagem definida e controlada pela Sun, no entanto, com ampla participao de comunidades de usurios e com processos de definio e evoluo muito parecidos com os procedimentos adotados pelos softwares de cdigo aberto.Existem solues alternativas a Java, em nveis diferentes. C# da Microsoft, por exemplo, muito simular conceitualmente e em termos de linguagem, sem no entanto compartilhar todas as caractersticas de Java.

Java portvel ?A caracterstica multiplataforma de Java torna desnecessria, em princpio, a preocupao com sua portabilidade. No entanto tem-se verificado que surgiram ferramentas que convertem Java para C, a fim de se ganhar em performance. Utiliza-se tambm, e Java suporta, a incluso de rotinas em C nos programas (cdigo nativo).Com isto surgem aplicaes desenvolvidas em Java, mas que so especificas para determinadas plataformas. Neste caso, as consideraes sobre portabilidade em Java passam as ser as mesmas que as aplicadas a C.

Java economicamente vivel ?Vrios fatores devem ser levados nesta considerao, entre eles, a real utilidade da linguagem, o esforo de seu aprendizagem e seu poder. O sucesso de uma ferramenta depende do que se pode fazer com ela e com que esforo.Java pretende oferecer o mesmo que C++ em termos de poder de cdigo e ao mesmo tempo oferece um ambiente de desenvolvimento mais bug free e conciso que C, almejando exigir menos esforo que programar em C. Esta ltima caracterstica muito importante porque possibilita o uso de ferramentas de desenvolvimento mais poderosas e automatizadas, semelhantes ao VB, por exemplo. JavaScript ? Programao para desktop ? Executveis linha de comando Programas grficos AWT Swing Games Programao para dispositivos ? Cartes, Celulares, Palms, etc

Java o mesmo que JavaScript ?JavaScript uma outra linguagem, orientada a modelos, e no a objetos, e que tem um nome similar simplesmente porque compartilha os modelos de dados e objetos de Java. Assim, muito pouco do que se aplica a Java pode ser aplicado a JavaScript, que uma linguagem puramente interpretada e portanto goza deste benefcio em sua estrutura de programao.JavaScript utilizado para acrescentar processamento local s pginas HTML, e interage diretamente com as diretivas da pgina. Pode ser considerado como uma espcie de HTML procedural.Convm ressaltar que JavaScript muito poderosa, e pode substituir Java em muitas aplicaes, o que geralmente no levado em conta quando se estuda Java.

Programao para desktops ?Java utilizada para o desenvolvimento de aplicaes para desktop, especialmente pelas empresas que desejam ter uma nica ferramenta para diferentes plataformas (Windows, Linux, Unix, Mac, etc.).Java possui todos os recursos para o desenvolvimento de aplicaes completas, inclusive jogos. No entanto, para a execuo de um programa Java num desktop necessrio que este possua uma Java Virtual Machine instalada, como veremos logo mais.A construo de programas grficos pode ser feita com bibliotecas grficas simples (AWT) ou mais ricas (Swing).

Programao para dispositivos ?Java amplamente utilizada para o desenvolvimento de aplicaes em dispositivos, especialmente os de pequeno porte, tais como cartes, telefones celulares, computadores de mo e at mesmo robs.A grande vantagem da utilizao de Java que um mesmo programa pode rodar em dispositivos diferentes devido a caracterstica multiplataforma dos programas. Para a programao de dispositivos utilizado um subconjunto das bibliotecas da linguagem, chamado JME (Java Micro Edition). Programao para a Internet ? Applets Servlets EJB StoredProcedures Web Services

Programao para a Internet ?Uma aplicao Web normalmente possui componentes que so executados num servidor Web (ou num servidor de aplicao). Alm desses componentes que rodam no servidor, uma aplicao Web pode depender de componentes que so executados no cliente (navegador) e mesmo componentes que so executados no banco de dados. A linguagem Java pode ser utilizada para a construo de todos esses tipos de componentes. Os componentes que so executados nos navegadores so chamados de Applets. Muitos banco de dados permitem a construo de Stored Procedures escritas em Java. Os componentes que rodam nos servidores podem ser do tipo Servlets ou do tipo Enterprise Java Beans (EJB). Existem ainda os componentes que rodam em servidores que implementam um ou mais WebServices.Independente do tipo de componente, a linguagem a mesma, diferindo apenas a forma como os programas so construdos e a forma como os diferentes servidores, banco de dados ou navegadores suportam a execuo desses componentes. Integrada ao HTML Applets so programas que rodam dentro de uma pgina Amplamente difundida tempo recorde de difuso busca dos principais fornecedores pela compatibilidade e suporte Java

Integrao Java-HTMLJava encontra-se totalmente integrado ao HTML nas aplicaes chamadas Applets. Applets so programas em Java que rodam em uma parte da pgina HTML delimitada por um diretiva especfica. No s o espao alocado na pgina definido por diretivas HTML, mas tambm a passagem de parmetros para o applet. Java portanto introduziu novas diretivas linguagem HTML.Outro aspecto a ser considerado a integrao Java-browser, que transcende a simples integrao com o HTML e no se baseia em nenhum padro formal. Java consegue manipular recursos da prpria janela de browser, como por exemple forar a abertura de uma nova instncia do browser. Este tipo de interao mais forte e torna Java mais do que um parceiro do HTML, mas um parceiro do browser.

A difuso de JavaNenhuma outra linguagem conseguiu se difundir em tempo to curto quanto Java. Todos os browsers buscam compatibilidade e grande parte dos servidores de aplicao e banco de dados suportam a linguagem. Existem certificaes de ferramentas que atestam a sua compatibilidade linguagem, garantindo que programas construdos para um servidor possa rodar em qualquer outro. Enorme potencialidade multimdia recursos de IU, I/O e rede Inmeras bibliotecas e ferramentas de terceiros ou em cdigo aberto Fcil aprendizado Constantemente aprimorada gerao de pacotes e bibliotecas papel de outras companhias Sun no deseja manter o controle

Java rico em recursosJava apresenta todos os recursos para programao de interfaces com usurio, fcil manipulao de I/O e capacidade de interao em ambientes de rede.Todo este conjunto de recursos d linguagem uma enorme potencialidade de aplicaes. Adicionalmente, crescente o nmero de usurios, grupos ou empresas que colaboram com o desenvolvimentos de ferramentas ou bibliotecas, grande parte delas de uso livre.

Java pode ser aprendida facilmenteEste ponto controverso. Mas podemos dividir a afirmao acima em trs que so mais amplamente aceitas: Java fcil de ser aprendida por quem no conhece nenhuma linguagem de programao; Java muito fcil de ser aprendido para quem j conhece uma linguagem de programao; Java mais fcil de ser aprendida por quem j conhece uma linguagem orientada a objetos.

Java constantemente aprimoradaAprimoramento de Java no significa suprir deficincias, mas acrescentar potencialidades cuja necessidade sentida quando se deseja programar para a Internet.A Sun desenvolveu um conjunto de bibliotecas para Java bem completo e que definiu como implementao bsica da linguagem. Outras companhias esto acrescentando novos recursos atravs do fornecimento de novas bibliotecas. A Sun estimula este tipo de atividade e sabe que dele depende o crescimento da linguagem.Alm da iniciativa de companhias, o esforo de grupos de usurios e de comunidades baseadas no cdigo aberto enriquecem o uso da linguagem constantemente.

Origem da Linguagem Concebida e desenvolvida pela SunSoft - brao da Sun Suporte e compatibilidade nos produtos da Netscape - importncia fundamental na difuso da linguagem Herana do C++ e Smalltalk - orientao a objetos Aplicaes Internet Applets e Applications Ambiente destino: Java MachineA linguagem Java foi concebida e desenvolvida inteiramente pela SunSoft, brao da companhia Sun na poca e responsvel pelo desenvolvimento do software bsico dos equipamentos Sun e que atuava tambm na rea de desenvolvimento de compiladores para outras linguagens.O suporte oferecido desde o incio pela Netscape em seus browsers foi decisivo para a divulgao e difuso de Java. O fascnio causado pelos primeiros applets foi fator de conquista de adeptos em toda a Internet. A SunSoft vinha trabalhando h muito tempo no desenvolvimento de ambientes Smalltalk.Dessa forma, Java herdou a fidelidade do Smalltalk aos conceitos de Programao Orientada a Objetos (OOP), e os recursos concisos, poderosos e prticos do C. Quem conhece C++ percebe que Java se encaixa mais corretamente nos conceitos de OOP e quem conhece Smalltalk percebe que Java permite um controle maior dos recursos do sistema, como C. Portanto um casamento feliz.O grande trunfo de Java permitir que se programem aplicaes que utilizam os recursos da Internet. Com a proliferao dos web servers e a popularizao da Internet, Java ocupou um espao que estava vazio.

Caractersticas da Linguagem Totalmente orientada a objetos Multithread (paralelizao de processos) Sintaticamente e morfologicamente quase idntica ao C++ (existem diferenas fundamentais) Ausncia de ponteiros reduo de bugs aumento da segurana Independente da plataforma Orientada aplicaes de rede (especialmente Web) Quatro Ss : small, simple, safe and secure

Orientada a objetosImplementa os principais conceitos da orientao a objetos. MultithreadA facilidade de programar multithreads habilita Java para o desenvolvimento de grandes aplicaes e de IU poderosas. A capacidade da linguagem de fazer um gerenciamento preemptivo deste recurso otimiza e torna geral o seu uso.

Formato semelhante ao C++O formato da linguagem semelhante ao C++ fator importante no reaproveitamento de profissionais de desenvolvimento. No entanto, as diferenas devem ser cuidadosamente estudadas pois so significativas.

Ausncia de ponteirosAumenta a produtividade dos profissionais de desenvolvimento, pois elimina grande fonte de erros. Pode gerar alguma dificuldade na criao de rotinas que utilizariam (em C) aritmtica de ponteiros.

Orientada a WebPreenche uma lacuna existente para criao de aplicaes Web, e disto decorre sua caracterstica multiplataforma.

CAPTULO 6: JAVA MACHINEJava Virtual MachineCdigo fonte compilado para cdigo binrio Java, que interpretado e executado em diferentes plataformas

Java Virtual MachineDenominao dada ao interpretador Java rodando sobre o sistema operacional de qualquer mquina. Esta combinao (interpretador+OS) tem um comportamento idntico para qualquer OS suportado por Java. Dessa forma, caracteriza-se como uma mquina virtual que executa seu cdigo binrio Java, chamados tambm de bytecodes. Compiladores e Interpretadores

Java Virtual Machine um conceito implementado hoje por um conjunto razovel de interpretadores para as plataformas mais comuns.Verifica-se que existe uma srie de compiladores Java para cada plataforma distinta, mas no entanto existe tambm um nico compilador Java, escrito em Java, utilizado em todas as plataformas.Assim, para se sustentar o conceito de Java Virtual Machine, exige-se apenas interpretadores distintos.O Java Runtime Environment (JRE) um interpretador Java que suporta a execuo de aplicaes Java em desktops. Interpretador Java segue modelo simples e estruturado permitindo grande desempenho. Compilao just-in-time Cache de execuo. Possibilidade de uso de cdigo nativo. Informao extra pode ser passada ao interpretador. Existem tradutores para C.

Arquitetura JavaOs bytecodes Java so destinados a uma mquina de estrutura simples e poderosa, isto resulta em um interpretador simples e reduzido, no tocante a parte que interage com o cdigo Java. A parte do interpretador que interage com o OS varia em simplicidade conforme o ambiente. Turbinando o interpretadorUma srie de artifcios so utilizados para melhorar a performance de um cdigo Java. Dentre estes podemos citar: Compilao just-in-time: cdigo compilado para cdigo nativo a medida que carregado por download- tcnica usada em aplicaes que trafegam pela rede. Cache: cdigo de maquina interpretado armazenado em cache , evitando a repetio da interpretao de partes repetitivas do cdigo. Acelera execuo de loops. Para programas bem estruturados o ganho de velocidade de execuo pode ser de 10 vezes. Uso de pedaos de cdigo nativo dentro do cdigo Java. Causa perda da caracterstica multiplataforma de uma aplicao que utiliza este recurso. Parmetros extras: informaes relativas mquina onde o cdigo esta sendo interpretado podem acelerar este processo, ou seja, os bytecodes ajudam o interpretador sob determinada plataforma.Vantagens Multiplataforma Compatibilidade Portabilidade Verificao da segurana do cdigo Toda mquina pode ser Java Virtual por softwareAlm das vantagens clssicas de utilizar um interpretador Java (compatibilidade, multiplataforma, portabilidade, etc.) um outro ponto deve ser considerado como positivo: a verificao, pelo interpretador, da confiabilidade do programa sendo executado.Isto significa que o interpretador realiza rigorosa verificao a fim de certificar-se que o programa Java confivel em termos de utilizao dos recursos da mquina. O interpretador capaz de verificar se um programa est mal intencionado alocando recursos excessivos ou indevidos e bloque-lo. Pode tambm limitar a ao de objetos no corretamente identificados e delimitados criados por programadores experientes - cuja atuao pode significar riscos para o usurio. O interpretador pode bloquear tambm o acesso ao disco local de programas carregados via Internet. Assim, esta caracterstica significa um nvel a mais de segurana oferecido ao usurio de aplicaes Java, cuja origem pode eventualmente ser ignorada.Desvantagens

Interpretao - queda de desempenho Duas ferramentas: compilador e interpretador Cdigo nativo - plataforma especfica

A interpretao dos bytecodes, por mais que se seja otimizada, tem um custo de performance. No entanto, o crescente desenvolvimento do hardware e os benefcios de segurana trazidos pela interpretao compensam esse custo adicional.O interpretador Java sempre precisa estar instalado na mquina, o que dificulta a execuo dos programas de desktop nos sistemas operacionais que no vm originariamente com o interpretador instalado.A utilizao de cdigo nativo em programas Java vincula a sua exceo s plataformas para as quais o cdigo nativo foi construdo.

Arquitetura Java Machine Conjunto de instrues Bytecodes em geral com 2 operandos e 32 bits Conjunto de registradores (apenas 5) Pilha ilimitada mas imune a overflow Garbage Collector roda em background compresso de memria

A arquitetura da Mquina JavaA mquina Java ao mesmo tempo simples e poderosa. Simples porque os bytecodes so de tamanho fixo (32 bits) e poderosa porque uma stack-machine, cuja performance tende a ser alta. O conjunto de registradores extras bem reduzido e o controle da pilha rigoroso. O Garbage Collector implementado em Java eficiente e seguro, e est se aprimorando a cada nova verso da linguagem.

Java e suas edies

Java 2 Standard Edition a edio de Java feita para rodar em desktops, dispositivos embarcados (robs, eletrodomsticos, etc.) e mquinas de controle em tempo real (robs de preciso, servodispositivos, etc). O JRE (Java Runtime Environment) a maquina virtual sem as ferramentas de compilao, que pode ser utilizada em qualquer computador que ir apenas executar os programas Java.

Java 2 Enterprise Edition a edio com todo o suporte para rodar aplicaes em servidores web e servidores de aplicao. Oferece um conjunto completo de bibliotecas que implementam as rigorosas necessidades de um ambiente de execuo seguro e crtico.

Java 2 Micro Edition a edio para rodar em dispositivos de pequeno porte, tais como celulares e palms. Est disponvel em uma srie de sub-edies, cada uma mais adequada a um determinado tipo de dispositivo.

CAPTULO 7: AMBIENTE DE DESENVOLVIMENTO A Sun lanou juntamente com a linguagem um kit de desenvolvimento, o Java Development Kit (JDK) Existe um grande conjunto de ferramentas de desenvolvimento disponveis no mercado Livres (Eclipse, NetBeans e Outros) Proprietrios (JBuilder da Borland, Studios da IBM, BEA e Sun, JDev da Oracle e Outros)A Sun lanou, juntamente com a linguagem, um kit de desenvolvimento que, embora bem poderoso, de difcil uso e no satisfaz as necessidades de um desenvolvedor de mdio porte ou maior, pois apresenta recursos pobres.Ao longo do tempo, outras empresas, ou grupos/comunidades de usurios desenvolveram outras ferramentas. Hoje existem dezenas de ferramentas de cdigo livre e uma outra dezena de boas ferramentas proprietrias.

Java Development Kit

O Java Development Kit a primeira ferramenta para desenvolvimento de Java. Distribuda livremente e desenvolvida pela Sun, dispe de um conjunto mnimo de recursos suficientes para gerar qualquer aplicao.

Eclipse Ferramenta de edio, compilao, depurao e execuo de programas Java Cdigo aberto Extensvel por plugins http://www.eclipse.orgO Eclipse uma ferramenta de desenvolvimento de aplicaes Java que pode ser utilizada livremente, sem pagamento de licenas. A grande vantagem do Eclipse a sua arquitetura de plugins, que permite que possa ter seus recursos expandidos indefinidamente.

InstalaoSe no estiver instalado na mquina, faa o download e instale a ltima verso do JDK no site http://java.sun.com (siga o link de downloads)Faa o download da ultima verso do binrio do Eclipse no site http://www.eclipse.orgNa mquina, basta apenas descomprimir o arquivo de download do Eclipse num diretrio qualquer (C:\soft, por exemplo)

Execuo do EclipsePara rodar o Eclipse basta apenas executar o arquivo C:\soft\eclipse-SDK-3.1.1-win32\eclipse\eclipse.exeSempre que o Eclipse for aberto, ele pede que seja indicado um diretrio de trabalho (workspace), onde ficaro os arquivos Java editados nele.

Criando um projeto Cada programa Java pode ser composto por vrias classes. Essas classes e as suas configuraes ficam agrupados num PROJETO. Menu File >> New >> Project...Criao de um projeto Selecionar Java Project Acrescentar o nome do projetoSelecionar Wizard java Project e completar com o nome do projeto

Perpectivas O Eclipse trabalha com perspectivas, que nada mais so do que vises de seu ambiente de trabalho. Abrir a Perspectiva Java para editar cdigoAbrir a perspectiva JavaAcrescentando uma classe Criar uma nova classe e adicionar ao projetoMenu File >> New... >> Class No Wizard definir o nome da classe e marcar para criar o mtodo public static void main(String[] args) Criar uma nova classe Atribuir um nome e solicitar a criao do mtodo main

Acrescentando uma classe Adicionar a seguinte linha de cdigo ao mtodo mainSystem.out.println(Hello Word);Adicionar cdigo ao mtodo main

Executando um programa Rodar o programa Selecionar o arquivo Java e com o boto direito do mouse escolher Run As >> Java Application(o Eclipse pedir para voc salvar o arquivo, selecione-o e salve-o)Selecionar o projeto e disparar a execuo como Java Application

Depurando um programa A depurao um recurso necessrio para dar produtividade a qualquer desenvolvimento. Selecionar classe Java e com o boto direito do mouse escolherDebug as >> Java Application...(o Eclipse pedir para voc mudar a perspectiva para Debug, mas no necessrio fazer isso neste exemplo) Executar linha a linha com a tecla F6Disparar o depuradorDepurando um programa Para observar o valor de uma varivel coloque o ponteiro do mouse sobre ela Ou mude a perspectiva para Debug (todas as variveis podem ser inspecionadas nessa perspectiva) Menu Window >> Open Perspective >> Debug Para voltar para o programa Java e a execuo do depurador linha a linha mudar a perspectiva pra Java Menu Window >> Open Perspective >> JavaMudando a perspectiva para Debug

Mudando a verso do JDK No Eclipse pode-se trabalhar com vrias verses do JDK ou JRE Menu Window >> Preferences No item Java/Compiler selecionar a compatibilidade do compilador com a verso do Java (compiler compliance level 1.3, 1.4 ou 5.0) No item Java/ Installed JREs selecionar a verso do JDK ou JRE. Se no estiver instalada a verso desejada clicar em Add... Browse... (e selecionar o folder onde est instalado o JDK ou JRE)

Abrir a configurao do EclipseSelecionar o nvel de compatibilidade do compilador (1.3, 1.4 ou 5.0)

CAPTULO 8: ESTRUTURA DE UM PROGRAMA JAVARequisitos Bsicos Um programa Java uma coleo de classes que interagem entre si de forma totalmente orientada a objetos. O mtodo main() de partida do execuo do programa deve pertencer classe principal do programa. O nome do arquivo principal do programa deve ter o mesmo nome que a classe principal (aquela que contm o mtodo main())O mtodo de partida de um programa Java chamado de main, que deve necessariamente pertencer a uma classe. Esta classe (a qual pertence main), a classe que d nome ao programa.

Requisitos Bsicos exemplo

A assinatura de main() deve ser como a mostrada acima O nome do arquivo deve ser HelloWorld.java que depois de compilado gera o arquivo HelloWorld.class

Exerccios1 Digitar, compilar, e depurar o programa HelloWord no EclipseTipos Bsicos Tipos primitivos Inteiro: byte 8 bits short16 bits int 32 bits long 64 bits Ponto-flutuante float 32 bits double 64 bits caracter (unicode) char16 bits boleano boolean true ou false So tipos primitivos No so objetos Independem da mquina em termos de preciso e tamanhoFaixa de valores dos tipos primitivosbyte -128 a 127short-32.768 a 32.767int-2.147.483.648 a 2.147.483.647long -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807float -3,4E-38 a 3,4E_38double-1.7E-308 a 1.7E+308

Classes Bsicas Classes especiais String - implementa um objeto String, de forma mais precisa e clara do que um array de caracteres System - realiza parte da interao do programa com o sistema operacional nativoAlgumas classes em Java assumem um papel especial ou apresentam um comportamento especial. Dentre estas, interessante citar duas: String No so arrays de caracteres. Dispe de mtodos que facilitam seu uso. Um objeto da classe String criado automaticamente quando declara e inicializa uma varivel. Ex. String curso=curso de Java; Implementam concatenao (embora Java no implemente sobrecarga de operadores). Ex.curso=Meu primeiro+curso; Uso do operador +=.curso+=Meu primeiro; System contm maioria dos mtodos que interagem com o sistema operacional Ex. System.out.println();

Variveis Declaradas antes de serem utilizadas, em qualquer parte do programa (declarao dar o tipo e o nome) Podem ser inicializadas na declarao Variveis locais devem ser inicializadas antes de serem utilizadas Podem ser utilizados sufixos para definir o tipo de um literalAs variveis em Java podem ser declaradas em praticamente qualquer parte do programa. Lembrar que no existem variveis globais. Uma vez que todo o programa est encapsulado dentro de classes, as variveis mais externas deste programa pertencem a esta classe.Existem portanto dois tipos de variveis: De classe ou de instncia Locais, a funes ou blocosAs restries aplicadas s variveis so: Nomes das variveis: No podem comear por nmero Cuidado com smbolos que representam operadores: *, +, etc Conjunto de caracteres Unicode (existem excees) Tipos: Primitivos Classe ou interface Array Sufixos L ou l para long D ou d para double F ou f para float

Declarao e inicializao

Os literais, quando digitados na notao hexadecimal devem vir precedidos de 0X ou 0x. Os literais, quando digitados na notao octal devem vir precedidos de 0.

Variveis locaisPodem ser utilizadas dentro do mtodo ou bloco onde foram declaradas Podem ser utilizadas dentro da classe ou objeto, ou at mesmo por outras classes e objetos, dependendo de sua acessibilidade.Converso de tipos Implcita: de tipos menores para tipos maiores (em nmeros de bits do tipo)

byte b = 5;int a = b; // 5 convertido para inteirofloat f = 123.756F;double d = f;

Explcita: de tipos maiores para tipos menores (em nmeros de bits do tipo). Deve ser feito casting.

long l = 12000000L;int i = (int)l;double d = 395E+45;float f = (float)d;

Converso implcita aquela onde o valor no corre o risco de sofrer alguma perda, porque a capacidade do tipo convertido maior que a capacidade do tipo original. Para fazer essa converso basta fazer a atribuio direta dos valores.Converso explcita aquela onde o valor do tipo original corre o risco de ser alterado, porque a capacidade do tipo convertido menor. Converses explcitas somente podem ser feitas com o uso do casting, que definir junto ao valor original, o tipo para o qual se quer a converso, entre parnteses.

Operadores e expresses Operadores aritmticos Bsicos + , - , *, / e % O sinal menos ( - ) pode ser usado como operador unrio Operadores conjugados com atribuio de valores a+=ba=a+ba-=ba=a-ba*=ba=a*ba/=ba=a/b Cuidado com a ordem de avaliao das expresso !

Operadores aritmticos Bsicos: + (adio), - (subtrao), * (multiplicao), / (diviso) e % (mdulo, ou seja, resto da diviso inteira) O sinal menos ( - ) pode ser usado como operador unrio Tipo do resultado: o mais preciso entre os tipos dos operandos. Portanto 26/7=3, uma vez que o resultado inteiroOperadores conjugados com atribuio de valores a+=ba=a+ba-=ba=a-ba*=ba=a*ba/=ba=a/bCuidado com a ordem de avaliao das expresso, pois uma mesma expresso lgica pode afetar de forma diferente o resultado esperado.

Operadores de incremento e decrementoa++ ou ++a a=a+1a-- ou --aa=a-1Cuidado, b=a++ no fornece o mesmo resultado que b=++a !!!O operador de incremento, quando colocado antes da varivel, faz com que ela seja incrementada antes de ser utilizada. O operador de incremento quando colocado depois, faz com que a o valor da varivel seja utilizado antes do incremento.int a = 5;int b = a++; // resulta em b com valor 5.a = 5;b = ++a; // resulta em b com valor 6.

Operadores de comparao== igual!=diferentemaior=maior ou igual

Operadores lgicos& ou &&AND| ou ||OR!NOTExistem diferenas entre & e &&; e entre | e || !!!Os operadores && e || somente podem ser aplicados a tipos booleanos. Os operadores & e | podem ser aplicados a qualquer tipo primitivo, sendo que nesse caso ele realiza a operao bit a bit entre os bits dos operandos.

Operadores bit a bit&AND|OR^XOR>deslocamento direita~ complemento>>>desl. direita, preenchimento com zero

Comandos bsicosComentrios Comentrios de uma linha// linha comentada Comentrios de mltiplas linhas/* Linhas comentadas linhas comentadas*/ Comentrios que aparecem na gerao automtica de cdigo (javadoc) /**Linhas comentadas linhas comentadas*/Condicionaisif (condio) {// bloco de cdigo} else {// bloco de cdigo} Comando if else A condio sempre deve ser um literal, varivel ou expresso booleana (incluem-se a tambm os retornos de mtodos). Quando o bloco de cdigo possuir apenas uma linha, no so necessrias as chaves. O uso do else opcional.switch(expressao) {case valor: // bloco de cdigobreak; // outros cases default: // bloco de cdigo} Comando switch A expresso deve ser uma varivel ou expresso que resulte num nmero inteiro ou num nmero que possa ser convertido para inteiro (byte, short e char). O valor deve ser sempre um literal inteiro. O break no obrigatrio. Nesse caso a execuo do programa prossegue para o prximo bloco de cdigo. O default no obrigatrio. No caso de nenhum case ser igual a expresso, nenhum cdigo executado.Laoswhile(condio) {// bloco de cdigo}

do { // bloco de cdigo} while (condio);

Comandos while e do while A condio sempre deve ser um literal, varivel ou expresso booleana (incluem-se ai tambm os retornos de mtodos). Quando o bloco de cdigo possuir apenas uma linha, no so necessrias as chaves.Exemplos:while(i