Você está na página 1de 16

Conceitos de Linguagem Java

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.

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


O que uma APLICAO? Aplicao um programa mais geral escrito na linguagem Java. No requer um browser para sua execuo. De facto, Java pode ser usada para criar todo tipo de aplicaes que usualmente voc implementa com outras linguagens mais convencionais.

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

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


Tipo caracter Tipo char Tamanho em bits 16 Faixa UNICODE - 65536 caracteres possveis

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

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


Operador ?: Uso Descrio

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

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java

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

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


public class CursoJava { public static void main(String args[]) { System.out.println("Vamos Aprender Java."); } } public - Significa que o mtodo pode ser visto por qualquer classe. static - O mtodo existe independentemente da existncia de um objecto na classe. void - Este mtodo no retorna valor algum. main() - responsvel pela criao da instncia de objectos e pela inicializao do mtodo go(). String[] args - um argumento que formado por um Array do tipo String.

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; }

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


public void setMatrcula (String nome){/*Mtodos para escrita dos atributos*/ this. nome = nome; } } Atributos So as variveis da classe podendo ser de tipos primitivos ou outras classes. Onde as mesmas so definidas de acordo com a sintaxe abaixo. private int matrcula; // tipo primitivo Matrcula do aluno private Aluno aluno; // tipo classe

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

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


public static void metodoEstatico () { /* Mtodo esttico */ //corpo } } public class Principal { public static void main (String[] args) { /* chamada ao mtodo esttico */ Aluno al = new Aluno(); al. metodoNormal (); /* chamada ao mtodo esttico */ Aluno. metodoEstatico (); } } Objecto a instncia de uma classe possuindo valores prprios para os atributos definidos na classe. Aluno aluno = new Aluno();

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");

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java

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.

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


Classes Internas So classes definidas dentro de outras classes. Normalmente so utilizadas para simular a estrutura de dados conhecida como registro. public class ListaDeAluno { private Aluno[] alunos; //corpo class Aluno { int matricula; } } Mtodos Construtores Um mtodo construtor um tipo especial de mtodo que determina como um objeto inicializado quando ele criado. Diferente dos mtodos normais um mtodo construtor no pode ser chamado diretamente; ao invs disto os mtodos construtores so chamados automaticamente pelo Java. No momento em que o objeto instanciado, ou seja quando se usa new o Java faz trs coisas: Aloca memria para o objeto Inicializa as variveis daquela instncia do objeto Chama o mtodo construtor da classe

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 (); }

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java

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

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


necessrio import-las atravs do identificador import seguido de nomeDoPacote.NomeDaClasse ou nomeDoPacote.* quando for necessrio importar todas as classes do pacote (diretrio). Sobrecarga de Mtodos Em Java possvel que uma classe possua mtodos com o mesmo nome, desde que, as listas de parmetros sejam diferentes em quantidade, tipo ou em ordem. Esse tipo de polimorfismo chamado de sobrecarga de mtodos. Observao: O tipo de retorno no diferencia mtodos, ou seja, no possvel definir mtodos com nome iguais e lista de parmetros iguais, mesmo que possuam tipos de retorno diferentes. public class SobreCarga { public static float media (int a, int b) { return ( a + b ) / 2; } public static float media (float a, float b) { return ( a + b ) / 2; } public static float media (int a, int b, int c) { return ( a + b + c ) / 3; } } Polimorfismo Em Java todo objecto de uma subclasse pode ser tratado como um objecto da superclasse, e isso permite que objectos sejam tratados de forma genrica dentro de uma hierarquia de classe. possvel tambm realizar uma converso explicita de um objecto de uma classe para outra, essa operao conhecida como typecast e para isso necessrio colocar o tipo da classe, entre parntesis antes do objecto a ser convertido: (Classe) Objecto. Sendo que as classes origem e destino da converso devem ter relao de herana. Obaservao : O typecast de uma subclasse para uma superclasse automtico e garantido, mas o inverso no garantido e necessrio o typecast explcito. possvel verificar se um objecto de uma determinada classe atravs do operador instanceof.

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

Descrio Applets Interface com usurio JavaBeans Entrada e Sada de Dados

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


java.lang java.math java.net java.rmi java.security java.sql java.text java.util javax.accessibility javax.naming javax.rmi javax.sound javax.swing Classes fundamentais programao Java Operaes matemticas Implementao de aplicaes de rede Chamada Remota de Mtodos Segurana Acesso a Banco de Dados Formatao de texto, datas e nmeros Classes utilitrias. As principais representam estrutura de dados. Acessibilidade Servio de Acesso de Nomes RMI-IIOP Som - MIDI (Musical Instrument Digital Interface) Interface Grfica com o usurio

Criando Objetos Arrays:


Erro! Indicador no definido. Vetores so objetos, eles possuem papel importante no estilo de programao desta linguagem que exclui ponteiros. Por serem objetos, vetores so obrigatoriamente alocados de maneira dinmica. O exemplo a seguir aloca um vetor de inteiros com trs posies, seguindo uma sintaxe semelhante a de alocao de objetos: Erro! Indicador no definido. Um dos caminhos usar o operador new para criar uma nova instncia de um array, por exemplo:
String [ ] SobreNome = new String [ 3 ]; SobreNome [ 0 ] = "Maria"; SobreNome [ 1 ] = "Madalena"; SobreNome [ 2 ] = "Paciencia"; String[] provincia = { Luanda, Zaire, Cunene , Malange, Uige};

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;

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java

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; }

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java Loop While


O while usado para repetir um comando, ou um conjunto de comando enquanto a condio verdadeira. while Loops while(condio_boolean) { 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.

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Conceitos de Linguagem Java


try { // cdigo que pode ocasionar uma exception } catch{ // tratamento do erro } Declarao finally A declarao finally utilizada para definir o bloco que ir ser executado tendo ou no uma exception, isto aps o uso da declarao de try e catch. finally { // cdigo }

Prof. Eduardo Mauricio Nsimba

_______ edmans1@gmail.com _______

Você também pode gostar