Capítulo 1 Conceitos Básicos do Java INTRODUÇÃO O objectivo deste tutorial é ensinar as regras básicas de programação em Java e facilitar a aprendizagem dos capítulos que se seguem. Qualquer dúvida sobre uma palavra referida nos capítulos deve ser esclarecida no glossário, caso não se encontre aí, agradeço que me informe para que a lacuna possa ser corrigida. Os capítulos seguintes irão referir aspectos mais práticos da linguagem, sendo a componente do Java denominada SWING o objectivo. O acesso a base de dados ou JDBC, bem como a ferramenta JavaDoc também serão abordados. INICIAÇÃO Para melhor compreender o funcionamento do Java e ser mais rápida a aprendizagem convém conhecer conceitos básicos de C e C++ e entender a seu funcionamento. No Java não existem apontadores, no entanto a lógica de apontador existe através da herança simples e multipla (VER GLOSSÁRIO). CARACTERÍSTICAS DO JAVA Portável Semelhança com C/C++ Não possui apontadores Multitarefa Excepções Recuperação de memória Funciona no sistema operativo em que existir uma JVM(Java Virtual Machine) compatível Usa operadores semelhantes, é "Case Sensitive", é Orientada a Objectos Em vez disso faz uso de referências, herança simples e múltipla Em Java todo o programa é uma Thread, e podem haver várias threads a correr ao mesmo tempo, uma thread é semelhante a um processo do Sistema Operativo Uma excepção consiste num erro que é identificado pela JVM que pode ser posteriormente corrigido No Java a recuperação de memória é feita automáticamente por um sistema denominado de "Garbage Collector" que periódicamente liberta a memória que já não é utilizada(ver GLOSSÁRIO) 1
COMENTÁRIOS Comentário é algo que permite ao programador "dizer o que pensa" sobre algo sobre o código que acabou de compôr. O comentário é escrito juntamente com o código, mas não é interpretado pelo compilador(ver Glossário). //Apenas uma linha fica comentada /*Apenas uma linha fica comentada*/ /*linha 1 2 3 comentada */ VANTAGEM: Um código comentado percebe-se mais facilmente. DESVANTAGEM: Não levar a frase anterior de "dizer o que pensa" à letra, já houve pessoas despedidas por causa de insultos aos patrões presentes no comentário. TIPOS BÁSICOS/PRIMITIVOS Tipos de variáveis mais simples, estruturas básicas de informação que servem de base a estruturas mais complexas, objectos por exemplo. TIPO CONTEÚDO DIMENSÃO DEFEITO INTERVALO boolean true,false 1 bit False byte inteiro com sinal 8 bit 0-128 a 127 short inteiro com sinal 8 bit 0-32768 a 32767 int inteiro com sinal 32 bit 0-2147483648 a 2147483647 long inteiro com sinal 64 bit 0-1E+20 a 1E+20 float vírgula flutuante 32 bit 0.0-3.4E+38 a 1.4E+48 double vírgula flutuante 64 bit 0.0-1.8E+308 a 5E+324 char unicode 16 bit \u0000 \u0000 a \uffff 2
OPERADORES NO JAVA Símbolos que realizam operações sobre as variáveis PRECEDÊNCIA OPERADOR TIPO OPERADOR ASSOCIAÇÃO OPERAÇÃO 1 = variável direita atribuição *=,/=,%= variável direita +=, -= variável direita <<=, >>= variável direita >>>=, &= variável direita ^=, = variável direita 2?: boolean,exe,exe direita condição, se sim, se não 3 boolean esquerda OU condicional 4 && boolean esquerda E condicional 5 int / boolean esquerda OU de bits / OU lógico 6 ^ int / boolean esquerda OU exclusivo de bits/lógico 7 & int / boolean esquerda E de bits / E lógico 8 == primitivos/ Comparação de igual esquerda objecto valor!= primitivos/ Comparação de esquerda objecto diferente 9 >, >= variável esquerda Comparação de maior <, <= variável esquerda Comparação de menor 10 >>, << inteiro esquerda Desloc. dir./esq. de bits 11 +, - número esquerda Soma / subtracção + String esquerda Concatenação 12 *, /, % número esquerda Multiplic., div, resto 13 new Class, tabela direita Alocação de espaço (tipo) tipo da Conversão direita var/objecto para("casting") 14! boolean direita Negação ~ inteiro direita Complemento de bits ++, -- número direita soma / subtracção 15 ++, -- variável esquerda pré incremento/decremento (argumentos) código esquerda pós incremento/decremento [] array, int esquerda invocação de um método. objecto, membro esquerda Acesso a elemento 3
dois=1+1; vinteequatro!=2+4; ++incremento; //Associação à esquerda //Associação à direita DECLARAÇÃO E MANIPULAÇÃO Para declarar uma variável a estrutura é a seguinte: Tipo nomevariável=valor; //Declaração e atribuição ou variáveldeclarada=valor; //Atribuição boolean semaforo=true; byte b=0x50 int num=1; int num2=num+1; int num2=num++; long distance= 2E+7; float valor=2+3; double pi=3.14; pi+=2; pi/=2; pi*=2; 4
DECLARAÇÃO DE OBJECTOS E ALOCAÇÃO DE MEMÓRIA Para criar algo que não seja do tipo básico, ou seja um objecto, é necessário alocar memória para o objecto em causa, para isso existe a expressão "new". Temos então a seguinte estrutura: ObjectoTipo nomevariável=new ConstrutorObjectoTipo(); //Declaração e atribuição Ou /* Declaração em que não foi alocada memória para o Objecto. É possível em casos em que a variável é posteriormente ligada a um zona de memória já alocada, através do operador = */ ObjectoTipo nomevariável int array[] =new array[2]; //Array com espaço máximo para 2 inteiros int matriz[]=new array[3][3]; //Matriz 3 por 3 para jogar o Jogo do Galo Vector vector=new Vector(); //atribuição sem path completo (usando import) //atribuição com path completo (não usando import) java.util.vector=new java.util.vector(); Para melhorias ou dúvidas contactar FAILPROOF. 5