Introdução a linguagem Java
Prof: Leo Cabral - Larback
E-mail: [email protected]
Esta apresentação foi elaborada pelo professor Thiago Moreira - [email protected]
A História de Java
Muitas pessoas acreditam que os microprocessadores terão um grande impacto nos dispositivos eletrônicos destinados ao consumidor final.
Reconhecendo isso a Sun Microsystems financiou uma pesquisa corporativa interna com o codinome Green em 1991.
A História de Java
O Projeto resultou no desenvolvimento de um linguagem baseada em C e C++
Seu criador James Goling, chamou de Oak (carvalho) – Homenagem a uma árvore que dava para a janela do seu escritório da Sun.
Na época já existia uma linguagem de programação chamada Oak. Até que uma equipe da Sun visitou uma cafeteria local, o nome Java (cidade de origem de um tipo de café importado) foi sugerido e pegou.
A História de Java
O projeto Green atravessava grandes dificuldades.
Na época o mercado para dispositivos eletrônicos inteligentes não vingava.
Pior ainda, um contrato importante pela qual a Sun competia fora concedido a outra empresa.
O projeto corria sério risco de cancelamento.
A História de Java
A World Wide Web explodiu em popularidade em 1993.
Possibilidade para a Sun explorar o potencial de utilizar Java para criar páginas da web com o chamado conteúdo dinâmico.
Em maio 1995, a Sun anunciou Java formalmente em uma conferência importante.
Java gerou um interesse imediato na comunidade comercial por
causa do fenomenal interesse pela World Wide Web.
A História de Java
Devido ao sucesso da linguagem java hoje em dia ela é utilizada para:
Criar páginas da Web com conteúdo dinâmico e interativo.
Desenvolvimento de aplicativo corporativos de grande porte
Aprimoramento de funcionalidades de servidores da World Wide Web.
Fornecer aplicativos para dispositivos destinados ao consumidor (como telefones celulares, pagers e assistentes pessoais digitais) e para muitas outras finalidades.
A História de Java
1991Grupo de pesquisa “Green”, na Sun Microsystems
1994 Grande crescimento da Internet, oportunidade de lançar o Java
1995 Apresentada a Comunidade no SunWorld 95
1996Lançamento do Netscape Navigator 2.0com suporte ao Java
1997 Surge o JDK 1.02 totalmente gratuíto
1998 Surge o Java 2 totalmente reformulado, novas Classes
Aceitação de Java no mercadoLinguagens de programação utilizadas no desenvolvimento
Interno das empresas em 2005.
Fonte:
Aceitação de Java no mercado Aplicações embarcadas no mercado automotivo. Jogos eletrônicos para celulares. Aplicações em equipamentos para deficientes físicos. Internet Aplicações Desktop (Ganharam força) Diversos tipos de dispositivos móveis
Aceitação de Java no mercado Percebendo o potencial do Java as gigantes IBM , ORACLE e
obviamente a Sun investem pesado em Java. A IBM investiu 40 milhões no desenvolvimento do projeto
Eclipse, ferramenta opensource para desenvolvimento JAVA. Da mesma maneira, a IBM investe na utilização do Linux.
A Sun também criou sua ferramenta de desenvolvimento Java opensource. O NetBeans.
A Oracle possibilita que stored procedures sejam totalmente escritas em Java. Criou a IDE de desenvolvimento JDeveloper para desenvolvimento em Java.
Microsoft x Sun
A Microsoft cria o J++, e o anuncia como a ferramenta Java da Microsoft. Segundo a Microsoft, o J++ reúne o poder da plataforma Windows à produtividade do Java.
O J++ porém, utilizava a API do Windows para e feria a característica multiplataforma do Java.
Os programas feitos para J++ não “rodariam” em outras plataformas, afinal era necessário a API do Win32.
Microsoft x Sun
A Sun processa a Microsoft por uso indevido da linguagem e ganha a causa. A Microsoft não pode mais utilizar o selo de compatibilidade do J++ com o Java.
Microsoft x Sun
A Microsoft, como sempre, sabe reconhecer uma boa idéia e resolve lançar sua própria plataforma de desenvolvimento. A plataforma .Net
Baseada na sintaxe Java, a Microsoft cria uma nova linguagem, o chamado C#. A idéia é garantir uma migração de programadores Java para seu ambiente.
Microsoft x Sun
Os conceitos do .Net e Java são bastante diferentes e ambos bastante interessantes.
Enquanto a plataforma Java prega: Uma linguagem para vários ambientes.
A plataforma .Net prega várias linguagens em um único ambiente.
A Microsoft está fazendo um grande esforço para que seus usuários migrem para a nova plataforma.
E o Futuro ?
A utilização de Java nas aplicações desktops e não apenas servidores está em franca expansão, fato que deixou James Gosling muito feliz no último JavaOne.
Celulares e PDA´s utilizando Java estão concretizando a idéia da Sun de 14 anos atrás, isto é, a utilização em dispositivos eletrônicos.
E o Futuro ?
A Sun mudou sutilmente a estratégia da plataforma de modo que esta se torne conhecida também do homem comum, e não apenas dos desenvolvedores.
E o Futuro ?
A versão 1.5. do Java privilegia a facilidade de codificação para o programador, as novas características tornarão o desenvolvedor mais feliz.
A impressão é que o consórcio que desenvolve o Java sabe que sua força vem principalmente do programador. Se souber respeitá-lo acredita-se que a meta de 15 milhões de desenvolvedores será
alcançada.
Plataforma Java
J2SE - Java 2 Standard Edition Focado em aplicações para Desktop, conectividade com Banco
de dados, interface gráfica etc...
J2EE - Java 2 Enterprise Edition Focado em aplicações Corporativas, Aplicações Web
distribuídas, Servlets, JSP, web-services etc...
J2ME - Java 2 Micro Edition Focado em aplicações embarcadas(embutidas), PDA´s,
celulares, além Java Card etc...
Plataforma Java
Certificações Java
Fonte: http://www.sun.com/training/certification/java/java_progj2se.html
Ferramentas de Desenvolvimento em Java Os desenvolvedores na tecnologia Java contam com diversas boas
opções de software para ambiente de desenvolvimento integrado (IDE - integrated development environment), que vão do simples ao
sofisticado, do gratuito ao caríssimo.
NetBeans, Sun Java Studio, Borland JBuilder, IntelliJ IDEA, Oracle JDeveloper, Eclipse, etc...
Recursos necessários para o desenvolvimento em Java Java Developer’s Kit;
Compilador (Javac) Máquina Virtual Java (JVM) Visualizador de applets (appletviewer) Bibliotecas de desenvolvimento, API Javadoc - Gerador de documentação da API
Editor de textos Onde encontrar http://java.sun.com/j2se/index.jsp
Java Virtual Machine
Java Virtual MachineA CLDC (Connected Limited Device Configuration) é utilizada em aparelhos com capacidade de processamento e armazenamento reduzidos, como PDAs, pager´s e telefones celulares. Possui, geralmente, restrições quanto o consumo de energia, conexão à rede e telas detamanho reduzido.
A CDC (Connected Device Configuration) é voltada para aparelhos que possuem uma maior capacidade de processamento e armazenamento, como set-top boxes e sistemas automotivos.
KVM (K Virtual Machine) => máquina virtual para CLDC
Java HotSpot => ganhos de performance
Bibliotecas de classes Java
Os programas em Java consistem em partes chamadas classes.
As classes são compostas de métodos que realizam tarefas e retornam ou não informações ao completarem suas tarefas.
Permite programar cada pedaço que talvez seja necessário para
criar um programa em Java.
Classe: unidade de compilação
Arquivo fonte : Nome1.java
public class Nome1 {
class Nome2 {...
bytecodes
bytecodes
Nome1.class
Nome2.class
Arquivos executáveis: class
Um primeiro programa em Java: Imprimindo uma linha de texto1. // Um primeiro programa Java.2. 3. 4. public class BemVindo { 5. 6. // O método main inicia a execução do aplicativo Java7. public static void main( String [ ] args )8. {9. System.out.println( “Bem vindo a Programação em Java!" );10. 11. } // fim do método main12. 13. } // fim da classe
O que eu fiz?
O programa feito anteriormente foi feito para exibir uma linha de texto.
Java utiliza notações estranhas para os não programadores.
A linha 9 faz o trabalho real do programa9. System.out.println( “Bem vindo a Programação em Java!" );
Revisando meu primeiro programa
1. // Um primeiro programa Java.
// Indica que o restante da linha é um comentário
/*Esse é um comentário de múltiplas linhas ele pode ser dividido em várias linhas*/
Revisando meu primeiro programa
4. public class BemVindo {
Inicia uma definição de classe para a classe Bem Vindo.
Cada programa Java consiste em pelo menos uma definição de classe que é definida por você – programador.
A chave a esquerda {, inicia o corpo da definição da classe. A chave direita (na linha 13 desse programa), }, termina a definição da classe.
Revisando meu primeiro programa7. public static void main( String [ ] args )
A linha 7 faz parte de todo o aplicativo Java.
Os aplicativos Java começam a execução por main.
Os parênteses depois de main indicam que main é um bloco de construção de programa denominado método.
A chave a esquerda na linha 8 {, inicia o corpo da definição do método. A chave direita (na linha 11 desse programa), }, termina a definição do método.
Revisando meu primeiro programa9. System.out.println( “Bem vindo a Programação em Java!" );
A linha 9 instrui o computador a realizar uma ação, a saber, imprimir o String de caracteres contido entre aspas duplas.
System.out é conhecido como objeto de saída padrão.
O método System.out.println exibe (ou imprime) uma linha de texto na janela de comando.
11. } // fim do método main
12. 13. } // fim da classe
Compilando e executando seu primeiro aplicativo Java
Compilando javac BemVindo.java
Executando java BemVindo
Saída esperada:
Bem vindo a Programação em Java!"
Estrutura de um programa em Java Composto por uma ou mais classes
Cada classe é escrita em um arquivo fonte separado
O arquivo fonte deve ter o mesmo nome da classe, com o sufixo .java
Ex.: a classe BemVindo deve ser armazenada no arquivo BemVindo.java
Em geral na plataforma J2SE, todas as classes que compõem um programa deverão estar no mesmo diretório
Convenção para nomes
Java, como C/C++ distingue entre letras maiúsculas e minúsculas Exemplo: bemvindo difere de Bemvindo (case sensitive)
Nomes de classes iniciam com maiúscula Exemplo: class Bemvindo
Nomes de variáveis iniciam com minúsculas Exemplo: int peso;
Nomes de métodos são verbos que iniciam com minúscula e após usam maiúsculas Exemplo: alteraPeso
Representação: Unicode (16 bits - 65.536 caracteres)
Membros de classes
Uma classe possui como membros os campos de dados e os métodos.
Uma classe pode conter apenas dados.
Uma classe pode conter apenas métodos.
Se uma classe possui um método main com a assinatura padrão, ela é considerada um programa.
Nomeando Variáveis
Os nomes de variáveis não podem começar com um número; Não se pode fazer: int 8position; O que se pode fazer: int position8;
Exemplos de declaração de variáveis int ano = 1998; boolean sair; int idade, altura, largura; String nome = “Pedro”;
Tipos Primitivos
Tipo bits Valores boolean 8 true ou false char 16 ‘\u0000’ a ‘\uFFFF’ byte 8 -128 a +127 short 16 -32768 a +32767 int 32 -2.147.483.648 a +2.147.483.647 long 64 -9.223.372.036.854.775.808 +9.223.372.036.854.775.807 float 32 0.2329, -654.213, 78.9 double 64 35423.4589, 9999999
Operadores Aritméticos
Operador significado exemplo+ Adição a + b- Subtração a - b* Multiplicação a * b/ Divisão a / b% Resto da divisão inteira a % - Sinal negativo -a+ Sinal positivo +a++ Incremento unitário a++-- Decremento unitário a --
Operadores Relacionais
Operador significado exemplo== Igual a == b!= Diferente a != b> Maior que a > b>= Maior ou igual a a >= b< Menor que a < b<= Menor ou igual a a <= b
Operadores Lógicos
Operador significado exemplo
&& E lógico (and) a && b
|| OU lógico (or) a || b
! Negação (not) !a
Operadores de Atribuição
Suponha que c = 10.
Expressão de Exemplo Explicação Atribui
c += 7 c = c + 7 17 a c
c -= 4 c = c - 4 6 a c
e *= 2 c = c * 2 20 a c
c /= 5 c = c / 5 2 a c
g %= 3 c = c % 3 1 a c
Operadores de Incremento e Decremento
Operador Chamado de Expressão de exemplo
++ pré-incremento ++a
++ pós-incremento a++
-- pré-decremento --b
-- pós-decremento b--
Operadores de Incremento e Decremento Suponha que c = 5.
System.out.println(c); //imprime 5System.out.println(c++); //imprime 5 depois pós-
incrementaSystem.out.println(c); //imprime 6System.out.println(++c); //imprime 7 depois pré-
incrementaSystem.out.println(c); //imprime 7
Estrutura de seleção if /else
if (condição){instruções
}
if (x < y){ System.out.println(“ x é menor que y”);}else{ System.out.println(“ x não é menor que y”);}if (x == y ){ System.out.println(“x é igual a y”);}
Estrutura de controle switch
switch (teste){ case ‘A’:
resultUm; break; case ‘B’: resultDois; break; default: defaultresult;}
Estrutura de repetição for
for (int i = 0; i < str.length(); i++){ System.out.println(“Satisfaz condição”);}
Estrutura de repetição while
while (condição){ corpo do Loop;}
int i = 0; boolean sair = false;while (!sair){ System.out.println(“Ficar...”); i++; if ( i >= 10 ){sair = true;}}
Estrutura de repetição do/while//Sem chavesdo
instruçãowhile (condição);//Com chavesdo {
instrução}while (condição);//Exemplodo{
System.out.println(“Ficar...”); i++; if ( i >= 10 ){sair = true;}
}while (!sair);
Instruções rotuladas break e continue//Exemplo de stopstop:{
for (condição){if (condiçao){
break stop; //pula para o fim do bloco stop}
}
}//Exemplo de continuefor (int contador = 1; contador <= 10; contador++){
if (contador == 5){continue; //pula o código restante do laço
}System.out.println(“O contador está em:” + contador);
}
Exercício 1.1
Escreva uma instrução Java para realizar cada uma das seguintes tarefas.
Declarar que as variáveis sum e x são de tipo int. Atribuir 1 à variável x. Atribuir 0 à variável sum. Adicionar a variável x à variável sum e atribua o resultado a variável
sum. Imprimir “A soma é:” e depois o valor da variável sum.
Respostas do exercício 1.1
Declarar que as variáveis sum e x são de tipo int. int sum, x;
Atribuir 1 à variável x. x = 1;
Atribuir 0 à variável sum. sum = 0;
Adicionar a variável x à variável sum e atribua o resultado a variável sum. sum += x ; ou sum = sum + x;
Imprimir “A soma é:” e depois o valor da variável sum. System.out.println(“A soma é:” + sum);
Exercício 1.2
Combine as instruções que você escreveu no exercício 1.1 em um aplicativo Java que calcula e imprime a soma dos inteiros de 1 a 10. Utilize a estrutura while para repetir as instruções de cálculo e incremento. O laço deve terminar quando o valor de x se tornar 11.
Respostas do exercício 1.2
//Calcula a soma dos inteiros de 1 a 10public class Calculadora {
public static void main( String [ ] args) {int sum, x;x = 1;sum = 0;while ( x < = 10){
sum += x;++x;
}System.out.println(“ A soma é:” + sum);
}}