ESJUG Aulão de Java Segundo Grupo de Estudos Ministrado por Paulo César M. Jeveaux Paulo César M. Jeveauux 05/03/2005 Palestrante • Paulo César M. Jeveaux – Consultor Java/J2EE da Consist Brasil – Mantenedor da maior comunidade Java do Brasil, o Portal Java – www.portaljava.com – Javanês desde 2001. Paulo César M. Jeveauux 05/03/2005 Sumário • Como aprender Java? • Java? - o que é, qual é o seu diferencial, instalando e executando seu primeiro programa. • Variáveis primitivas e controle de fluxo declarando, atribuindo e operando variáveis. • Orientação a objetos básica . • Exemplos de GUI Java. Paulo César M. Jeveauux 05/03/2005 Como Aprender Java? Muitos livros, ao passar os capítulos, mencionam todos os detalhes da linguagem juntamente com os princípios básicos dela. Isso acaba criando muita confusão, em especial pois o estudante não consegue distinguir exatamente o que é importante aprender e reter naquele momento daquilo que será necessário mais tempo e principalmente experiência para dominar. Paulo César M. Jeveauux 05/03/2005 O que é Java? Muitos associam Java com uma maneira de deixar suas páginas da web mais bonitas, com efeitos especiais, ou para fazer pequenos formulários na web. Paulo César M. Jeveauux 05/03/2005 O que é Java? • O que associa as empresas ao Java? Já iremos chegar neste ponto, mas antes vamos ver o motivo pelo qual as empresas fogem das outras linguagens Paulo César M. Jeveauux 05/03/2005 O que é Java? • ponteiros? • liberar memória? • organização? • falta de bibliotecas boas? • ter de reescrever parte do código ao mudar de sistema operacional? • custo de usar a tecnologia? Paulo César M. Jeveauux 05/03/2005 O que é Java? Java tenta amenizar esses problemas. Alguns desses objetivos foram atingidos muito tempo atrás, porque, antes do java 1.0 sair, a idéia é que a linguagem fosse usada em pequenos dispositivos, como tvs, aspiradores, liquidificadores e outros. Paulo César M. Jeveauux 05/03/2005 Máquina Virtual Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação, responsável por “traduzir” o que sua aplicação deseja fazer para a linguagem do sistema operacional no qual ela está rodando no momento Paulo César M. Jeveauux 05/03/2005 Instalando • Baixar a última versão do JDK em www.java.sun.com • Configuarar as variáveis de ambiente: – JAVA_HOME – Diretório Padrão do JDK – PATH - \bin do JDK – CLASSPATH - \lib do JDK Paulo César M. Jeveauux 05/03/2005 Colocando a Mão na massa 1. class MeuPrograma { 2. public static void main(String[] args) { 3. // miolo do programa começa aqui! 4. System.out.println(“Minha aplicacao Java!!”); 5. // fim do miolo do programa 6. } 7. } Paulo César M. Jeveauux 05/03/2005 O que aconteceu O arquivo .java deve ter o mesmo nome da classe pública (public class), procedemos assim: 1. Criar e Salvar a classe; 2. Compilar: javac meuPrograma.java 3. Rodar: java meuPrograma Paulo César M. Jeveauux 05/03/2005 Variáveis Dentro de um bloco, podemos declarar variáveis e usá-las. Em Java, toda variável tem um tipo que não pode ser mudado uma vez que declarado: • tipoDaVaríavel nomeDaVariável; Paulo César M. Jeveauux 05/03/2005 Variáveis • Declarando: – tipoDaVaríavel nomeDaVariável; • Inicializando: – tipoDaVaríavel nomeDaVariável = new tipo(); Paulo César M. Jeveauux 05/03/2005 Tipos Primitivos Tipo Primitivo Tamanho Valor Mínimo Valor Máximo Tipo que Encapsula boolean - - - Boolean char 16 bits Unicode 0 Unicode 216-1 Character byte 8 bits -128 +127 Byte short 16 bits -215 +215-1 Short int 32 bits -231 +231-1 Integer long 64 bits -263 +263-1 Long float 32 bits IEEE754 IEEE754 Float double 64 bits IEEE754 IEEE754 Double Paulo César M. Jeveauux 05/03/2005 Controle de Fluxo • Desviando o Fluxo: if (condição) { { else { } Paulo César M. Jeveauux 05/03/2005 Controle de Fluxo • Repetição for(int i = 0, I < NUM; i++) { } while(condição) { } Paulo César M. Jeveauux 05/03/2005 Operadores Operador Significado + adição - subtração * multiplicação / divisão % resto da divisão (módulo) Paulo César M. Jeveauux 05/03/2005 Operadores Operador Exemplo Expressão equivalente += x += y x=x+y -= x -= y x=x-y *= x *= y x=x*y /= x /= y x=x/y %= x %= y x=x%y Paulo César M. Jeveauux 05/03/2005 Operadores Operador Significado adicionar 1 à variável e depois calcular a expressão na qual a reside ++ calcular a expressão na qual a reside e depois adicionar 1 à variável subtrair 1 da variável e depois calcular a expressão na qual a reside -calcular a expressão na qual a reside e depois subtrair 1 da variável Paulo César M. Jeveauux 05/03/2005 Operadores Operador Significado == igual a != diferente de < menor que > maior que <= menor ou igual a >= maior ou igual a Paulo César M. Jeveauux 05/03/2005 Operadores Operador Significado && E ("logical AND") & E ("boolean logical AND") || OU ("logical OR") | OU ("boolean logical inclusive OR") ^ OU EXCLUSIVO ("boolean logical exclusive OR") ! NÃO ("logical NOT") Paulo César M. Jeveauux 05/03/2005 Programação Orientada a Objetos Considere um programa para uma fábrica de carros, é bem fácil perceber que uma entidade extremamente importante para o nosso sistema é carro. Paulo César M. Jeveauux 05/03/2005 Programação Orientada a Objetos O que todo carro tem e faz é importante para nós? • – cor • – modelo • – velocidade atual • – velocidade máxima • – liga • – desliga • – devolve a marcha em qual o carro se encontra engatado • – acelera até x • – breca até x Paulo César M. Jeveauux 05/03/2005 Exemplificando class Carro { String cor; String modelo; double velocidadeAtual; double velocidadeMaxima; // .. } Paulo César M. Jeveauux 05/03/2005 Atributos Por enquanto declaramos o que todo carro deve ter. Estes são os atributos que todo carro, quando criado, vai ter o seu. Paulo César M. Jeveauux 05/03/2005 Herança Existe uma maneira, em Java, de relacionarmos uma classe de tal maneira que uma delas herda tudo que a outra tem. Isto é uma relação de classe mãe e classe filha. No nosso caso, gostaríamos de fazer com que um Vectra tivesse tudo que um Carro tem, gostaríamos que ele fosse uma extensão de Carro. Fazemos isto através da palavra chave extends. Paulo César M. Jeveauux 05/03/2005 Métodos Dentro da classe, também iremos declarar o que cada carro faz, e como isto é feito. Os comportamentos que cada classe tem, isto é, o que ela faz, é chamado de método. Paulo César M. Jeveauux 05/03/2005 Exemplificando class Carro { String cor; String modelo; double velocidadeAtual; double velocidadeMaxima; void liga() { System.out.println("O carro está ligado"); } void desliga() { System.out.println("O carro está desligado"); } public static void main(String[] args){ // Corpo do Programa } } Paulo César M. Jeveauux 05/03/2005 Polimorfismo Polimorfismo é a capacidade de um objeto poder ser referenciado de várias formas. Paulo César M. Jeveauux 05/03/2005 GUI com Java Paulo César M. Jeveauux 05/03/2005 Exemplo import javax.swing.*; public class Janela extends JFrame { public Janela() { super(“Titulo”); setSize(200,200); setLocation(100,100); } public static void main(String[] args) { new Janela().show; } } Paulo César M. Jeveauux 05/03/2005 O que usar para fazer GUI? Esta é uma grande incógnita, existe em Java ferramentas para GUI tão poderosas quanto o Delphi? Sim. • Visual Editor, Plugin para Eclipse • JFormDesigner – não é free • FormsDesigner • JBeaver, Abeille, etc Paulo César M. Jeveauux 05/03/2005 ESJUG Aulão de Java Segundo Grupo de Estudos Ministrado por Paulo César M. Jeveaux Paulo César M. Jeveauux 05/03/2005