Manual - Java linguagem de programação

  • View
    310

  • Download
    8

Embed Size (px)

DESCRIPTION

Java

Transcript

  • 1. 3M d u l oINSTITUTO DE SOFTWARE DO CEAR INSOFTXI Semana da Tecnologia da Informao: na onda das friasbsico e intermedirio

2. XI SEMANA DA TECNOLOGIA DA INFORMAO Java bsico e intermedirio60.150-160 Av Santos Dumont, 1180 Fortaleza - CETel.: (85) 488.5200 Fax: (85) 488.5210Instrutor:Felipe Gachogaucho@atlantico.com.br todos os direitos reservados 3. ndice analticoA tecnologia Java 4O que Java ? 4O que mquina virtual ? 5O que garbage collection ? 6A estrutura de um cdigo em Java. 6Exerccios 7Implementando o primeiro programa 8O ambiente de desenvolvimento 8O cdigo fonte 9Compilando e executando o programa 10Erros mais comuns 11Exerccios 12Sintaxe da linguagem Java 14Delimitadores em Java 14Comentrios 14Identificadores e palavras reservadas 15Declarando variveis em Java 16Tipos primitivos da linguagem Java 17Tipos lgicos: boolean 17Tipos textuais: char e String 17Tipos numricos inteiros: byte, short, int e long18Tipos numricos de ponto flutuante: float edouble 19Convenes de codificao 19Exerccios 19Expresses 21Operadores lgicos e aritmticos 21Concatenao de Strings com o operador + 22Promoo e Casting 23Operadores de deslocamento (>>, >) 24Circuitos lgicos 25Exerccios 26Fluxo de controle 27Ramificao if, else 27Ramificao switch 28Repetio for 29Repetio while 30Comandos especiais de controle de fluxo: break,continue e label 31Lendo valores do teclado 32Exerccios 33Agrupamento de dados (Arrays) 34Declarando e criando Arrays 34Inicializando os valores de um Array 35Array multi-dimensional 36Array esparso 36Exerccios 37Introduo Orientao a Objetos 38Motivao ao uso de um novo paradigma,orientado a objetos. 38Tipos agregados de dados 39Criando objetos 41Alocao de memria durante a criao deobjetos 42Atribuio de referncias a uma varivel 42Termos bsicos em Orientao a Objetos 43 4. J A V A B S I C O E I N T E R M E D I R I OAbstrao de dados 44Tipos abstratos de dados 44Definio de mtodos 45A referncia this 48Gerando a documentao de um programa -javadoc 49Documentao da API Java 50Exerccios 50Encapsulamento e sobrecarga de mtodos 52Acessibilidade dos membros de uma classe 52O modificador final 53O modificador private 54Encapsulamento 55Sobrecarga de mtodos 55Exerccios 56Construtores 57Processo de instanciao de objetos 57Inicializao explcita de membros variveis 57Construtores 59Exerccios 60Herana e polimorfismo 61O conceito de classificao 61A palavra reservada extends 62Herana em Java 63A superclasse Object 64Polimorfismo 64Argumentos e colees heterogneas 65O operador instaceof 66Exerccios 67Classes abstratas e interfaces 68Classes abstratas e concretas 68O modificador abstract 69Restrio de herana pelo modificador final 70As referncias this e super 70Exerccios 71Tratamento de excees 73O que so excees ? 73Diferena entre excees e erros 73Tratamento de excees 74Tratamento de excees em Java 75A hierarquia das excees 76Tratamento pendente de excees 77Excees implementadas pelo programador 77Sinalizando uma exceo (throw) 78Throwable.printStackTrace() eThrowable.getMessage() 78Excees mais comuns 79Exerccios 80Interface grfica com o usurio 81Componentes grficos o pacote AWT 81Cdigo do exemplo de componentes AWT 83Gerenciadores de Layout 86Containers 86Flow layout 87CardLayout 88BorderLayout 91GridLayout 93GridBagLayout 94Applets 97O que um Applet ? (java.awt.Applet) 97Restries de segurana em applets 97O primeiro applet 98Ciclo de vida de um applet 100Contexto grfico AWT 101Aprendendo a usar o appletviewer 103O cdigo HTML de carga do applet 103Lendo parmetros do Html com um applet 105Manipulando imagens 106Exerccios 107Interfaces grficas baseadas em behaviorismo Opacote Swing 108O que Swing ? 108Containers Swing 108 5. J A V A B S I C O E I N T E R M E D I R I OIntroduo a padres de projeto (designpatterns) 109Programao behaviorista - o paradigmamodelo-viso-controle (MVC) 110Implementando um modelo em Java(Observable) 113Implementando vises para um modelo 114Criando o primeiro aplicativo MVC 114Acesso a dispositivos de entrada e sada - I/O 116O que so I/O Streams ? 116Leitura de dados (java.io.InputStream) 117Escrita de dados (java.io.OutputStream) 118As classes de manipulao de Streams em Java(o pacote java.io) 118Leitores e Escritores de dados em Streams combuffer 120Converso entre bytes e caracteres 121O que UNICODE? 121Manipulao de arquivos seqenciais 122Manipulao de arquivos randmicos 123Serializao de objetos 124O que so Grafos de Objetos? 124Lendo objetos serializados de um arquivo 125Exerccios 126 6. A tecnologia JavaEsta seo contextualiza a tecnologia Java no mercado de informtica e enumera suasprincipais caractersticas e termos.O que Java ?Java :? ? Uma linguagem de programao? ? Um ambiente de desenvolvimento? ? Um ambiente de aplicao1Java uma linguagem de programao desenvolvida pela SUN com o objetivo de manter o podercomputacional de C++, agregando caractersticas de segurana, robusteza e portabilidade.Os objetivos primrios da SUN ao desenvolver a linguagem Java foram:? ? Criar uma linguagem orientada a objetos? ? Prover um ambiente de desenvolvimento com duas caractersticas bsicas:o Velocidade de desenvolvimento, eliminando o ciclo compilar-ligar-carregar-testartradicional em outras linguagens como C++, Pascal, etc.o Portabilidade prover um ambiente meta interpretado, permitindo que o mesmo cdigorode em diversos sistemas operacionais sem a necessidade de adaptao ou uso debibliotecas especficas.? ? Eliminar exigncias de programao que tradicionalmente afetam a robusteza de um cdigo decomputador:o Aritmtica de ponteiros (comum em ANSI C/C++)o Controle de alocao/liberao de memria (comum em Pascal, C, C++, Basic, ...)? ? Permitir a programao multitarefa, mesmo em sistemas operacionais que no dem suportenativo a Threads.? ? Permitir que um programa seja dinamicamente modificado atravs da carga de componentes viaredes de computadores, como a Internet.? ? Prover um modo de checar a integridade de um programa quanto sua origem, garantindo asegurana do sistema operacional e de dados durante a sua execuo.A arquitetura Java formada pelas seguintes caractersticas:? ? A mquina virtual Java (JVM Java Virtual Machine, atualmente na verso 1.4)? ? Gerenciador de alocao/liberao de memria (Garbage Collection)? ? Sand box mdulo de garantia de segurana de cdigo ( impossvel criar um vrus em Java) 7. A T E C N O L O G I A J A V AO que mquina virtual ?De acordo com a especificao da SUN, a mquina virtual do Java pode ser vista como:Uma mquina imaginria que implementada via software ou hardware. Um cdigo aser executado por essa mquina deve ser gravado em um arquivo com extenso.class. e possuir um cdigo compatvel com as instrues Java.Para um programa Java ser executado, ele precisa passar pelo processo ilustrado na figura abaixo:O cdigo compilado, gerando um conjunto de instrues chamado de byte-code. Esse byte-code aplicado Mquina Virtual Java (JVM) que se encarrega de interpretar os comandos para o sistemaoperacional onde o programa est rodando. Ou seja, a mquina virtual traduz as instrues do cdigoJava para instrues vlidas no sistema operacional em que est rodando. Se essa portabilidade fosserequerida em C, o cdigo deveria ser compilado vrias vezes uma para cada sistema operacionaldesejado. No caso do Java, o cdigo compilado apenas uma vez, gerando o byte-code. Esse byte-codepoder ento ser interpretado por qualquer mquina virtual Java, rodando em Linux, Windows, Palm OS,Solaris ou qualquer outro sistema operacional que possua uma mquina virtual Java implementada.(Compile once, run anywhere).Uma JVM possui definies concretas para a implementao dos seguintes itens:? ? Conjunto de instrues (equivalentes s instrues da CPU)? ? Conjunto de registradores? ? Formato padro de classes? ? Pilha de memria? ? Pilha de objetos coletados pelo garbage-collector? ? rea de memriaIMPORTANTE: a JVM no permite que um programa Java acesse recursos de hardware diretamente,protegendo o computador de operaes perigosas, como acesso regies protegidas da memria ouformatao fsica do disco rgido.Um programa Java s executado caso o seu byte-code passe pela verificao de segurana da JVM,que consiste em dizer que:? ? O programa foi escrito utilizando-se a sintaxe e semntica da linguagem Java? ? No existem violaes de reas restritas de memria no cdigo? ? O cdigo no gera Stack Overflow5 8. A T E C N O L O G I A J A V A? ? Os tipos de parmetros dos mtodos so corretos? ? No existe nenhuma converso ilegal entre dados do programa, como a tentativa de converso6de inteiros em ponteiros? ? O acesso a objetos est corretamente declaradoCaso alguma das condies acima no seja satisfeita, a mquina virtual Java causar um erro deexecuo (runtime error).O que garbage collection ?Durante a execuo de um programa de computador, ocorre a alocao e liberao dinmica dememria RAM. Dados so escritos e lidos da memria do computador satisfazendo os requisitos de cadaprograma. Em linguagens tradicionais como Pascal, Basic e C/C++, o programador responsvel porcontrolar essa alocao, impedindo o estouro de memria (stack overflow) e outros problemas, como oacesso indevido a reas reservadas de memria. Para facilitar a vida dos programadores, e evitar oserros comuns associados alocao de memria, a linguagem Java introduziu um novo conceito: ogarbage-collection.Garbage-collection um mecanismo de controle automtico de alocao e liberao de memria.Quando uma varivel declarada em um cdigo de computador, a JVM cria um ponteiro para uma reade memria equivalente ao tamanho do tipo de dado utilizado por essa varivel. Quando essa varivel associada a outra regio de memria, a JVM coloca o espao alocado anteriormente em uma pilha deobjetos em desuso. Caso o computador fique com pouca memria disponvel, a JVM remove objetosdessa pilha, permitindo que esse espao de memria seja re-alocado.O processo de garbage-collection ocorre automaticamente durante a execuo de um programa Java. Oprogramador no precisa se preocupar com aritmtica de ponteiros (grande dificuldade em linguag