ESTRUTURA DE UMA CLASSE Uma classe em Java é composta por uma classe principal ou classe externa que envolve todos os seus métodos. Seu nome deve sempre iniciar com a 1ª letra maiúscula. Também são aceitos os caracteres underline ( _ ) eo cifrão( $ ). A classe deve ser salva em um arquivo que tenha o mesmo nome da classe,ea extensão “.java”. A palavra “públic” define que a classe é pública, ou seja, pode ser acessada inclusive por classes de outros pacotes. A palavra public Não é necessária. A palavra “class” é utilizada na declaração de novas classes. Dentro da classe estão os métodos, que são sub-rotinas executadas pelos objetos através de mensagens conhecidas como “chamada de métodos”. Toda classe executável em java deve possuir o método principal main(). Há classes que não possuem esse método e seus métodos podem ser acionados por objetos de outras classes. “public” -é um qualificador do método (pode ser usado em qualquer método, não apenas no main) que indica que ele é acessível externamente a essa classe (outras classes podem eventualmente utilizar esse método). Isso é útil quando uma classe necessita utilizar alguma funcionalidade de outra classe, característica muito comum na linguagem Java. “static” – qualificador que indica que o método deve ser compartilhado por todos os objetos que são criados a partir dessa classe. Mais à frente veremos isso com mais detalhes. “void” – é o valor de retorno do método. Quando não há nenhum valor, ele retorna void, uma espécie de valor vazio que deve ser especificado. Quando um método retorna um resultado, ele não possui o qualificador void. “main” – é o nome do método que indica ao compilador o início do programa. É o método principal, em que todas as variáveis, argumentos e instruções são interpretados e processados para a execução do programa. Em um aplicativo Java você pode utilizar o vetor de strings criado pelo método principal “main(String args[ ])” para entrar com dados em um aplicativo. Isto pode ser feito através da linha de comando de execução da classe. Ex.: public class PrimeiroPrograma { public static void main(String args[ ]) { System.out.println(“Bem vindo “ + args[0] ); } } Quando for executar o comando é só colocar o argumento após o nome do arquivo .class. Ex. java PrimeiroPrograma [seu nome] Obs.: O sinal de adição é usado para concatenar as mensagens na saída dos dados. Outra forma de entrada e saída de dados, e muito mais agradável ao usuário, é através de uma caixa de diálogo(InputDialog). Esse modo gráfico está disponível na classe JOptionPane do pacote javax.swing. O exemplo abaixo mostra como implantar esta caixa de diálogo. import javax.swing.*; public class Grafico { public static void main(String args[ ]) { String nome = JOptionPane.showInputDialog(null,”Digite o seu nome”); JOptionPane.showMessageDialog(null,“Boa noite “ + nome ); } } Diretiva “import” A declaração import é utilizada para importar de outros pacotes as classes que seu aplicativo pode utilizar em sua execução, como no exemplo anterior. Veja que na primeira linha existe o comando “import javax.swing.*;”. Este comando está importando todas as classes do pacote “javax.swing”, onde se localiza a classe “JOptionPane”. Poderíamos importar apenas a classe em destaque acrescentando o nome no lugar do asterisco (*) “import javax.swing.JOptionPane;”, mas isso não afeta a execução da classe então importamos o pacote inteiro. Diretiva “package” Uma forma de o desenvolvedor organizar os seus projetos é utilizar a declaração “package”. Vamos supor que você esteja trabalhando em um projeto de uma grande empresa, e esse projeto tivesse muitas classes. Não seria nada prático que todas as classes estivessem gravadas no mesmo diretório, que em Java é chamado de pacote. Seria muito difícil encontrar um determinado aplicativo no meio de tantos outros. Você pode agrupar apenas as classes relacionadas em um determinado pacote, bastando apenas acrescentar a diretiva package no início das classes referentes àquele pacote. Uma convenção é utilizar a URL da empresa, de forma invertida. Ex.: casasilva.com.br ficaria br.com.casasilva. Primeiro precisamos criar o caminho de diretórios no disco rígido. Crie no C: o diretório “projetos”. Dentro dele crie um diretório “br”. Entre no diretório br e crie o diretório “com”e dentro dele o diretório com o nome da empresa, que no nosso exemplo é “casasilva”. O caminho então fica desta forma “c:\projetos\br\com\casasilva”. Vamos criar uma classe para o nosso projeto: package br.com.casasilva; import javax.swing.*; public class CasaSilva { public static void main(String args[ ]) { JOptionPane.showMessageDialog(null,“Casa Silva”); } } Salve esta classe dentro do diretório casasilva. Agora vá para o prompt de comando e entre no diretório projetos. Para compilar a classe utilize o comando javac acrescido do caminho do “pacote”. C:/projetos>javac br\com\casasilva CasaSilva.java Perceba que você não precisa entrar no diretório onde está a classe para compilá-la. Para executar você substitui a barra invertida pelo ponto, da mesma forma que está dentro da classe. C:/projetos>Java br.com.casasilva CasaSilva Também não é necessário entrar no diretório para executar a classe. TIPOS DE DADOS Em Java, antes de utilizar as variáveis, é necessário definir o tipo de dados que a variável irá armazenar. Por exemplo: se for armazenar uma quantidade de um produto no estoque pode ser utilizada uma variável do tipo inteiro(int); se for armazenar o preço de um produto pode-se declarar uma variável do tipo Double. Os tipos de dados em Java são portáteis e para todas as plataformas onde esta linguagem é suportada. Em algumas linguagens os tipos de dados variam de tamanho de acordo com a plataforma. Em Java isto não ocorre e pode-se utilizar qualquer tipo sem precisar saber em que plataforma o código será executado. Tipos primitivos: Os tipos primitivos utilizam a estrutura de pilha para armazenamento das informações em memória (StackMemory). Existem somente oito tipos de primitivos em Java. Todo o resto é objeto. Estes tipos permaneceram na linguagem pela sua velocidade de interação e por isso não foram transformados em objetos. Como não são objetos, sua declaração já cria a variável em memória. byte -Tamanho de 8 bits com sinal. Valores de -128 a + 127. short -Tamanho de 16 bits com sinal. Valores de -32.768 a + 32.767. int -Tamanho de 32 bits com sinal. Valores de -2.147.483.648 a + 2.147.483.647. long -Tamanho de 64 bits com sinal. Valores de -9.223.372.036.854.775.808 a + float -Tamanho de 32 bits com sinal. Valores de -1.40239846E-45 a + 3.40282347E + 38 (com nove dígitos significativos de precisão). double -Tamanho de 64 bits com sinal. Valores de -4.94065645841246544E-324 a + 1.79769313486231570E + 308 (com 18 dígitos significativos de precisão). char -Caractere Unicode com tamanho 16 bits sem sinal. Valores possíveis 0 a 65535 boolean -Valor indicando true ou false. Tamanho de 8 bit. O tipo boolean pode representar dois valores(true ou false), e podem ser usados diretamente em expressões de retorno para teste como if, switch, while e for, porém não podem ser comparados com variáveis ou constantes numéricas como em C. Cada tipo char ocupa 16 bits na memória, o que permite expressar caracteres “Double Byte” como japonês, chinês, entre outros. Os tipos byte, short, int e long são utilizados para representar números inteiros, e float e double para representar números em ponto flutuante. Tipo de Referência Os tipos de referência ou instância(String, JFrame, etc) armazenam informações em um amontoado de memória (Heap Memory). Neste caso a classe define o tipo de dado. Uma instância é um objeto do tipo definido pela classe, ou seja, a variável irá referenciar, ou apontar, para um objeto em vez de guardar um valor simples como no caso de um primitivo. PALAVRAS RESERVADAS Java possui 50 palavras chave, na versão 1.6. Todas elas são escritas em minúsculas: As palavras reservadas em Java referem-se a nomes de instruções utilizadas na linguagem que não podem ser usadas como nomes de identificadores(variáveis, objetos, etc). byte -short -int -long -char -boolean -double -float -public -private -protected static -abstract -final -strictfp -transient -synchronized -native -void -class interface -implements -extends -if -else -do -default -switch -case -break continue -assert -const -goto -throws -throw -new -catch -try -finally -return this -package -import -instaceof -while -for -volatile -super – enum. EXERCÍCIOS PARA FIXAÇÃO 1) Complete as lacunas: a) A empresa criadora da linguagem java foi a __________________. b) O comando ____________ possibilita realizar a execução de uma aplicação em java. c) O comando javac possibilita realizar a _______________ de classes escritas em java. d) Em uma aplicação java todas as classes _____________ necessitam do método main. e) Depois de realizado o processo de compilação, é gerado um arquivo de _______ __________ com a extensão _____________. 2) A instrução em Java utilizada para definer o nome da classe é: a) public b) void c) main d) class 3) Um do principais motives que contribuíram para o desenvolvimento da linguagem java foi: a) O nome da linguagem. b) O desenvolvimento da internet. c) A linguagem ser relativamente simples. d) O desempenho da linguagem em termos de velocidade. 4) Por que a utilização de java em multiplataforma é muito importante para os programadores? 5) Qual das características seguintes não diz respeito à linguagem java. a) Pode ser executada em qualquer computador, independente de existir uma máquina virtual java instalada. b) É uma linguagem compilada e interpretada. c) O desempenho dos aplicativos escritos em java, com relação à velocidade de execução, é inferior à maioria das linguagens de programação. d) É uma linguagem com um bom nível de segurança. 6) A sequência de desenvolvimento de um programa em java é: a) Compilação, digitação e execução. b) Digitação, execução e compilação. c) Digitação, compilação e execução. d) Digitação, execução e testes de funcionamento. 7) Qual a característica principal que distingue a plataforma java das demais existentes? 8) Faça um programa em java que entre com o seu nome através da linha de comando de execução e mostre na tela por uma caixa de diálogo. Ele deve ser salvo no pacote projeto1.