Escolar Documentos
Profissional Documentos
Cultura Documentos
O que JAVA? Java uma poderosa linguagem de Programao Orientada a Objectos criada pela SUN. A linguagem Java foi criada de forma a poder ser executada nas diversas plataformas de trabalho diferentes disponveis, simples e portvel a todas as plataformas e sistemas operacionais, tanto o cdigo fonte como os binrios. Java como Plataforma de Desenvolvimento de Aplicaes O termo plataforma normalmente definido como a combinao de sistema operacional mais hardware, sendo que a plataforma Java definida apenas em software, por isso o conceito de mquina virtual. A plataforma Java possui dois componentes: 1. Mquina Virtual Java (JVM) 2. Interface para Desenvolvimento de Aplicaes (API Java)
A Mquina Virtual Java A Especificao da Mquina Virtual Java define a JVM (Mquina Virtual Java) como: Uma mquina imaginria que implementada atravs da emulao em um software executado em uma mquina real. A Especificao da Mquina Virtual Java fornece as especificaes da plataforma de hardware para a qual todo o cdigo Java est compilado. Essa especificao permite que os programas Java sejam independentes de plataforma j que a compilao feita para uma mquina imaginria. Cabe ao Interpretador Java de cada plataforma de hardware assegurar a execuo do cdigo compilado para a JVM. A especificao da JVM fornece definies concretas para a implementao dos seguintes itens: Conjunto de Instrues (equivalente ao conjunto de instrues de uma CPU) Conjunto de registradores Formato do arquivo de classe Pilha Heap (coletado como lixo) rea da memria
Estrutura de um Programa Java Todo programa Java uma classe e mesmo possuindo trs possveis modalidades para programas Java (Applications, Applets e Servlets) a estrutura bsica sempre a mesma : "uma classe". Um Programa Java organizado em arquivos texto com a extenso .java e cada arquivo contem apenas uma classe pblica. O nome do arquivo da classe Java deve possuir exatamente o mesmo nome da classe pblica, pois a mquina virtual procura o arquivo da classe atravs do nome da classe. O comando package informar a qual pacote (diretrio) a classe pertence.
Criando uma APLICAO Para comear, criaremos uma simples aplicao em Java: a clssica Hello World!, o exemplo que todos os livros de linguagens usam.
Aplicaes Java - Application Como demonstrado anteriormente, a linguagem de programao Java possui trs tipos de programas. Dessa forma iremos nos aprofundar um pouco mais no tipo Application, pois os recursos bsicos da linguagem Java sero demonstrados atravs de Application. Um application Java nada mais que uma classe Java possuindo um mtodo especfico que o caracteriza como uma aplicao para a Mquina Virtual Java. Dessa forma, todo programa/classe Java que possuir o mtodo com o seguinte assinatura public static void main (String[] argumentos) { } ser um application. E o corpo desse mtodo ser executado automaticamente quando o programa for submetido a JVM. Um detalhe importante que o array String[] argumentos contm os parmetros de linha de comando passados ao programa.
Variveis e tipos de dados Variveis so alocaes de memria nas quais podemos guardar dados. Elas tm um nome, tipo e valor. Toda vez que necessite usar de uma varivel voc precisa declar-la e s ento poder atribuir valores a mesma. Tipos Numricos Inteiros Tipo byte short int long Tamanho em bits 8 16 32 64 -128 at +127 -32,768 at +32,767 -2,147,483,648 at+2,147,483,647 -9,223,372,036,854,775,808 at +9,223,372,036,854,775,807 Faixa
Tipos Numricos Reais Tipo float double Tamanho em bits 32 64 Faixa -3.40292347E+38 at +3.40292347E+38 -1.79769313486231570E+308 at +1.79769313486231570E+308
Observao: Um caracter delimitado por apstrofos caracter. O que causa confuso, pois as Strings so delimitadas por aspas String. Operadores de comparao Operador == != < > <= >= Igual Diferente ( No igual) Menor que Maior que Menor ou igual Maior ou igual Significado Exemplo x==3 x != 3 x<3 x>3 x <= 3 x >= 3
Operadores lgicos e Binrios Operador && || ! & | ^ << >> >>> x <<= y x >>= y x >>>= y x &= y x |= y x ^= y Operao lgica E (AND) Operao lgica OU (OR) Negao lgica Comparao bit-a-bit E (AND) Comparao bit-a-bit OU (OR) Comparao bit-a-bit OU-Exclusivo (XOR) Deslocamento a esquerda Deslocamento a direita Deslocamento a direita com preenchimento de zeros Complemento bit-a-bit Atribuio com deslocamento a esquerda ( x = x << y ) Atribuio com deslocamento a direita atribuio AND ( x = x & y ) atribuio OR ( x = x | y ) atribuio XOR ( x = x ^ y ) ( x = x >> y ) Atribuio com deslocamento a direita e com preenchimento de zeros ( x = x >>> y ) Significado
expresso_logica?val1:val2 Caso a expresso lgica seja verdade o val1 ser retornado, caso contrrio ser retornado val2
Operadores Aritmticos Operador + * / % Incremento Operador ++ -Uso var++ ++var var---var Descrio usa a varivel e depois incrementa incrementa a varivel e depois usa usa a varivel e pois decrementa decrementa a varivel e depois usa Uso op1 + op2 op1 - op2 op1 * op2 op1 / op2 op1 % op2 Descrio Adiciona op1 e op2 Subtrai op2 de op1 Multiplica op1 por op2 Divide op1 por op2 Resto de op1 / op2
Palavras Reservadas abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while
abstract final class NomeDaClasse extends SuperClasse implements Interfaces { Corpo da Classe } Identificador public private protected package
No pode ser instanciada Indicao que nenhuma outra classe pode herd-la Nome da Classe Classe a ser estendida (Herana) Interfaces a serem implementadas Atributos e mtodos
Visibilidade Qualquer classe de qualquer pacote. Apenas na prpria classe. Na prpria classe, sub-classes e classes no mesmo pacote. Classes do mesmo pacote.
Caracteres especiais Caracter \n \t \b \r \f \\ \ \ \ddd \xdd Significado Nova Linha Tab Backspace Retorno do Carro Formfeed (avana pgina na impressora) Barra invertida Apstrofe Aspas Octal Hexadecimal
Tipos de Dados Abstratos Representam a parte central da metodologia orientada a objectos. Um tipo de dado abstrato um modelo formado por propriedades (atributos) e operaes (mtodos), onde estas definem o comportamento bsico do mesmo. Tipo de dado abstrato permite a modelagem de entidades do mundo real de uma forma mais natural, pois estamos acostumados a lidar com "objectos" os quais possuem caractersticas "atributos" e funcionalidades "mtodos". Classe Representa a implementao de um tipo de dado abstrato, onde a mesma possuir a declarao dos atributos e implementao dos mtodos. Uma classe representa o "molde" atravs do qual os objectos sero criados, assim a definio de uma classe possui todas as propriedades e funes que caracterizam o comportamento de qualquer objecto da classe. /* Definio da classe */ public class Aluno { /* Corpo da classe (Atributos da classe, Mtodos da classe)*/ /* Atributos */ private int matrcula; //Matrcula do aluno private String nome; //Nome do aluno /* Mtodos */ public Aluno () { /* Construtor */ super(); } public Aluno (int matrcula, String nome) { /* Construtor */ setMatrcula(matrcula); setNome(nome); } public String getNome () { /* Mtodos para leitura dos atributos */ return nome; }
Mtodos Cada mtodo possui uma assinatura e corpo, onde a assinatura definida por: Visibilidade, Tipo de Retorno, Nome e Lista de Parmetros. E o Corpo representa a implementao do mtodo. No corpo de um mtodo o identificador this pode ser utilizado para fazer referncia a uma varivel da classe, pois comum que parmetros possuam nomes iguais a variveis de classe, dessa forma o identificador this serve para resolver conflitos de nomes entre parmetros e variveis da classe. A declarao de um mtodo feita de acordo com a sintaxe abaixo. public String getNome () { return Ana Virgilia; } Membros Estticos Atributos e mtodos podem ser de classe ou de objecto (instncia). A diferena entre ambos est no facto de que os membros de instncia so propriedades de cada objecto e os membros de classe so compartilhados por todos os objectos. Assim quando houver a necessidade de compartilhar o contedo de um atributo com todos os objectos de uma classe, esse atributo dever ser esttico. J os mtodos estticos possuem a caractersticas de poder serem chamados directamente atravs da classe, sem a necessidade de instanciar um objecto. Os mtodos estticos somente podem utilizar atributos estticos. Para definir um membro como esttico basta colocar o identificador static na sua declarao. public class MembrosEstaticos { public class Aluno { private static int contObjectos = 0; /* Atributo esttico */ public void metodoNormal () { /* Mtodo normal*/ } //Corpo
Encapsulamento Mecanismo utilizado com o objetivo de esconder detalhes de implementao das classes, permitindo assim, maior domnio da complexidade, pois uma classe deve ofertar apenas o que ela pode fazer e no como ela faz. Uma classe deve impedir o acesso aos seus atributos e mtodos internos e disponibilizar mtodos pblicos, os quais representam a "real" funcionalidade da classe. Dessa forma possvel utilizar uma classe como um objecto real, pois assistimos televiso, ouvimos rdio, ..., sem ter a menor idia de como os mesmos funcionam internamente, basta apenas saber como interagir (ligar, desligar, mudar de canal, ...) com os mesmos. Identificador Visibilidade public private protected package Qualquer classe de qualquer pacote. Apenas na prpria classe. Na prpria classe, sub-classes e classes no mesmo pacote. Classes do mesmo pacote.
private String nome = Suzana da caridade; Mensagem a forma como um objecto interage com outro objecto, corresponde a chamada (execuo) de um mtodo do objecto, o que pode exigir a passagem de parmetro(s). Aluno aluno = new Aluno (4, "Maria Eduarda");
Herana a capacidade de herdar atributos e mtodos de uma classe j definida (superclasse), possibilitando estender o comportamento de uma classe adicionando novos atributos e mtodos (subclasse). A grande vantagem da herana permitir o reaproveitamento de cdigo, pois a subclasse recebe os atributos e mtodos da superclasse e permite a implementao de novas funcionalidades. public class Pessoa{ //Corpo de Super Classe } public class Aluno extends Pessoa{ // Corpo do SubClasse }
Classes e Mtodos Abstratos Numa hierarquia de classes, quanto mais alta for uma classe, mais abstrata sua definio. Uma classe no topo (raiz) de uma hierarquia de classes define o comportamento e atributos comuns a todas as subclasses, e quando mais as classes estiveram prximas das folhas (abaixo) na hierarquia de classes, mas especializadas elas sero. Assim possvel definir classes em Java que sirvam apenas como base para uma hierarquia de classe, sendo que classes abstratas no podem ser instanciadas. A sua utilidade apenas servir como superclasse, onde as subclasses iro acrescentar e redefinir seus mtodos a medida da necessidade. Para definir uma classe como abstrata basta colocar o identificador abstract na definio da mesma. public abstract class Pessoa { // corpo da classe } Classes, Mtodos e Variveis Final possvel definir uma classe, mtodo ou varivel como final, significando que : Classes final no podem ser herdadas Mtodos final no podem ser redefinidos Variveis final no podem ter seu contedo alterado. Para definir uma classe, mtodo ou varivel como final, basta acrescentar o identificador final na definio dos mesmos.
Construtores Bsicos
Os construtores parecem muito com os mtodos normais, com duas diferenas bsicas: Construtores sempre tm o mesmo nome da classe Construtores no podem ter tipo de retorno Exemplo: Interfaces Representam a definio de comportamentos esperados na definio de classes, contendo apenas definies de mtodos abstratos e constantes, ou seja, no possuem variveis de instncia ou implementao de mtodos. A definio de uma interface feita semelhante a uma classe, sendo que no lugar do identificador class usado interface. Uma interface no pode ser instanciada, seu objetivo definir um public interface SituacaoAcademica { public static final float MEDIA = 5.0f; public static final int FALTAS = 18; public abstract String situacaoFinal (); public abstract float media (); }
Tratamento de Excees Uma exceo em Java um sinal que alguma condio excepcional aconteceu. Por exemplo, solicitao de abertura de um arquivo no encontrado, ndice de um array fora de faixa ou uma conexo de rede perdida. Verificaes com recursos convencionais de programao por essas situaes indesejadas, normalmente levam a programas de difcil compreenso e manuteno, pois comum haver mais cdigo tratando tais situaes, que cdigo desempenhando realmente o objetivo do programa. Java prover um mecanismo para tratar de forma sistemtica essas situaes indesejadas denominado tratamento de excees. Excees em Java so objectos e a hierarquia de classe possui diversas classes representando excees. O uso da API Java, em muitos casos, exige o tratamento dessas excees para verificar as potenciais situaes de erros na execuo dos programas. try { /* Comandos do Try */ } catch ( TipoDaExceo1 ObjectoDaExceo1 ) { /* Tratamento da Exceo1*/ } ... { } catch ( TipoDaExceo2 ObjectoDaExceo2 ) { /* Tratamento da Exceo2*/ } finally { /* Comandos do Finally*/ } 1 Os Comandos do Try sero executados 2 Caso ocorram excees, o Tratamento da Exceo ocorrida ser executado 3 Os Comandos do Finally sero executados Observaes Podem existir diversos catchs. Apenas uma clusula Finally pode ser usada por try. Assim que um tratamento de exceo for executado os demais sero ignorados. Os Comandos do Finally sempre sero executados. Assim como qualquer classe uma exceo deve ser importada para ser usada.
Pacotes As classes Java so organizadas em pacotes, os quais so estruturas de diretrios com a finalidade de melhor agrupar e organizar as classes. Outras vantagens obtidas com a utilizao de pacotes so evitar conflito de nomes e proteger o acesso s classes. A criao de um pacote consiste na criao de uma estrutura de diretrio, colocao das classes nesses diretrios e definio do pacote nas classes atravs do identificador package seguido do nome do pacote. Para utilizar classes
API Java A API Java bastante extensa. O JavaDoc da API Java a melhor referncia para o programador Java. Os principais pacotes so : Pacote java.applet java.awt java.beans java.io
Arrays Multidimensionais
Java no suporta arrays multidimensionais. No entanto, voc pode declarar e criar um array de arrays e acess-los como voc faria no estilo-C.
int matriz [] [] = new int [2] [2]; matriz[0][0] = 10; matriz[0][1] = 20; matriz[1][0] = 40; matriz[1][1] = 50;
Condicionais
O condicional contm a palavra chave if, seguido por um teste booleano. Um opcional else como palavra chave pode ser executado na caso do teste ser falso, Exemplo: if (expresso) { // expresso cujo retorno um valor do tipo boolean { Declaraes ou blocos } } Else{ // caso a condio anterior no seja satisfeita { Declaraes ou blocos }
}
O switch
Um comum mecanismo para substituio de ifs que pode ser usado para um grupo de testes e aes junto a um simples agrupamento, chama-se switch. switch (expresso) // Esta expresso deve ser do tipo int ou char { case cond01: declaraes; break; // usado para sair do case. case cond02: declaraes; break; default: declaraes; break; }
Loop For
O loop em Java tem esta sintaxe: for (expr_inicial; condio_boolean; incremento) { Declaraes ou blocos; }
Loop Do
A principal diferena entre o while e o do que o teste condicional no caso do while feita antes de se executar o cdigo interno ao loop. Desta forma, o que pode acontecer no while que o loop pode no ser executado se a condio for false. J no loop do o corpo do loop executado pelo menos uma vez, pois o teste de permanncia executado no fim do loop. do { Declaraes ou blocos; }while(condio_boolean); O que uma Exception ? Em Java, a classe de Exceo define condies de erro moderados que seus programas podem encontrar. Em vez de voc deixar o programa terminar, voc pode escrever um cdigo para tratar as excees e continuar a execuo do programa. A linguagem Java implementa C++ nomeando excees para poder construir um cdigo elstico. Quando um erro acontece em seu programa, o cdigo que acha o erro pode disparar uma exceo. Dispara uma exceo o processo de sinalizar o processo corrente atual de que um erro aconteceu. Voc enlata a captura da exceo e quando possvel recupera a conduo das prximas rotinas.
Manipulao de Exceptions Declaraes try e catch Uma maneira de manipular possveis erros, usando as declaraes try e catch. A declarao try indica a parte do cdigo aonde poder ocorrer uma exception, sendo que para isso voc dever delimitar esta parte do cdigo com o uso de chaves. Na declarao catch voc coloca o cdigo a ser executado caso venha a ocorre uma exception.