Java - Aprenda rápido
-
Upload
andre-j-a-ramos -
Category
Technology
-
view
383 -
download
3
Transcript of Java - Aprenda rápido
ANDRÉ J. A. RAMOS, DESENVOLVEDOR [email protected]
PROGRAMAÇÃO EM JAVA
HISTORIA DO JAVA A linguagem Java surgiu a partir de
uma pesquisa financiada pela Sun Microsystems em 1991, iniciada sob o codinome de projeto Green.
Com o intuito de se tornar uma linguagem para dispositivos inteligentes destinados ao usuário final e com a premissa de ser uma linguagem próxima as linguagens C e C++ e que pudesse ser executado em diversos hardwares.
Protótipo Star 7 do Projeto Green A princípio, o projeto não teve bons
resultados devido à lentidão do crescimento da área de dispositivos eletrônicos inteligentes, porém com a grande revolução da World Wide Web em 1993, logo se notou o potencial da linguagem para geração de conteúdo interativo e dinâmico, o que deu nova força ao projeto.
Inicialmente o Java foi chamado de Oak por seu criador (James Gosling) em homenagem a uma árvore que dava para a janela do seu escritório na Sun. Descobriu-se mais tarde que já havia uma linguagem de computador chamada Oak. Quando uma equipe da Sun visitou uma cafeteria local, o nome Java (cidade de origem de um tipo de café importado) foi sugerido e pegou.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
PROGRAMAÇÃO EM JAVA Em março de 1995 foi anunciado no
evento SunWorld a tecnologia Java 1.0, inicialmente o foco principal da tecnologia utilizado para divulgação foram os Applets, pequenas aplicações que poderiam ser executadas via web através de um browser.
Em 1998 foi lançado a versão 1.2 (codinome “Playground”) da linguagem Java, está nova versão trouxe uma quantidade muito grande de novas funcionalidades, essa alteração foi tão grande que a pessoa do marketing começou a chamar de Java 2.
As versões 1.3 (codinome “Kestrel”) lançada em 2000 e 1.4 (codinome “Merlin”) lançada em 2002 continuaram sendo chamado de Java 2, pois houveram alterações e melhorias na linguagem mas não tão grandes como na versão 1.2.
Na versão 1.5 lançada em 2004 o pessoal resolveu mudar novamente chamando de Java 5 (codinome “Tiger”), a partir desta versão foi padronizado as novas atualizações.
Em 2006 o Java 6 (codinome “Mustang”) e atualmente o Java está na versão 6 update 26 e a versão 7 tem o codinome “Dolphin”.
Java também é uma linguagem Open Source e não possui um único dono, todas novas atualizações da linguagem são feitas através da JCP (Java Community Process), formada por um conjunto de empresas
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Atualidades
Em 2009 a ORACLE anunciou a aquisição da Sun Microsystems no valor de US$ 7,4 bilhões.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Características-chave
• Simples: A sintaxe do Java é, de fato, uma versão limpa do C++. Não há necessidade
de arquivos de cabeçalho, aritmética de ponteiro (ou mesmo uma sintaxe de ponteiros).
• Orientado a objetos: Os recursos orientados a objetos do java são comparáveis aos do C++. A
principal diferença entre eles está na herança múltipla, que o java substituiu pelo conceito de interface (explicaremos mais a frente).
• Portabilidade: Independe de plataforma. • Interpretado: Os bytecodes gerados pelo compilador são convertidos em códigos de
máquina pela JVM. • Java e a internet: Os programas Java que funcionam em páginas web são chamados Applets.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Processo de escrita compilação
e execução do código
Compilador (JDK)
CÓDIGO - FONTE BYTECODES
JVM
GUI Console
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Versão Ano Novos recurso da linguagem Nº de classes e interfaces
1.0 1996 A própria linguagem 211
1.1 1997 Classes internas 477
1.2 1998 Nenhum 1.524
1.3 2000 Nenhum 1.840
1.4 2002 Assertivas 2.723
5.0 2004 Classes genéricas, loop “for each”, varargs, autoboxing, metadados, enumerações, importações estáticas.
3.279
6 2006 Nenhum 3.777
Evolução da linguagem Java
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Nome Sigla Explicação
Java Development Kit JDK Software para programadores que querem escrever programas em Java.
Java Runtime Environment JRE Software para consumidores que querem executar programas Java.
Standard Edition SE Plataforma Java para uso em desktop e aplicativos simples de servidor.
Enterprise Edition EE Plataforma Java para aplicativos complexos de servidor.
Micro Edition ME Plataforma Java para uso em celulares e outros pequenos dispositivos.
Java 2 J2 Termo antiquado que descrevia as versões do Java entre 1998 e 2006.
Software Development Kit SDK Termo antiquado que descrevia o JDK entre 1998 e 2006.
NetBeans ---- Ambiente de desenvolvimento integrado da Sun.
Eclipse ---- Ambiente de desenvolvimento integrado mais utilizado.
Jargão Java
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Depois do JDK ser instalado é necessário configurar algumas coisas.
Instalando o JDK e configurando a variável de ambiente Path no windows
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Compilando & executando em linhas de comando
No diretório onde o arquivo .java estiver, digite: javac NomeDoArquivo.java Esse comando compila, e cria um arquivo .class. Em seguida, digite: Java NomeDoArquivo Esse comando executa o aplicativo.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Fazendo um projeto no eclipse
Na barra de menu click em File > New > Java Project
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Após o projeto ser criado estenda a pasta e clique na pasta
src com o botão direito do mouse.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Dê um nome a sua classe (com a inicial maiúscula) e
clique em Finish
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Um programa Java simples
• A linha 1 inicia uma declaração de classe nomeada de MinhaClasse; • A linha 2 abre a classe que é fechada na linha 8; • Na linha 3 é declarado o método principal chamado de main (Principal). O programa é iniciado por ele;
Este programa apenas exibe a mensagem na Janela de comandos:
Bem-vindo ao Java!! ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Comentários
Comentários em uma linha:
// comentário em uma linha
Comentários em mais de uma linha:
/* comentário em
mais de
uma linha
*/
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Variáveis
Declaração:
<Modificador de acesso> <Tipo> <nome da variável> = <valor inicial>;
Private int idade; //apenas declarando
Private int idadeInicial = 18; //declarando e atribuindo um valor
Regras: O nome das variáveis não pode ser o mesmo de palavras reservadas, ter espaços
em branco nem começar com números.
Recomendações:
Por convenção recomenda-se que o nome das variáveis (Atributos) comecem com letra minúscula e, a partir da segunda palavra a primeira letra esteja maiúscula, isto ajuda o programador a diferenciá – la de nome de classes e constantes.
Ex: nomeDaVariavel
Nota: Modificadores de acesso são palavras que decidem se uma classe, um atributo, uma constante ou um método poderão ser acessados por outras classes.
são eles: private, public, protect e abstract.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Palavras Reservadas
As Palavras Reservadas, quer dizer que nenhuma das palavras da lista abaixo podem ser usadas como identificadores, pois, todas elas foram reservadas para a Linguagem Java.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Constantes
Declaração:
<Modificador de acesso> final <Tipo> <nome da variável> = <valor
inicial>;
Private final double PI; //apenas declarando
Private final double PI = 3,14159265; //declarando e atribuindo um valor
Regras:
O nome das constantes não pode ser o mesmo de palavras
reservadas, ter espaços em branco nem começar com números.
Recomendações:
Por convenção recomenda-se que o nome das constantes esteja com
todas as letras maiúsculas, isto ajuda o programador a diferenciá–la de nomes
de classes e variáveis.
Ex: NOME_DA_CONSTANTE ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Operadores
Aritméticos: ++ incremento
+ Somar -- Decremento
- Subtrair Lógicos
* Multiplicar && AND
/ Dividir || OR
% Resto da divisão ! NOT
Relacionais
== IGUAL
!= DIFERENTE
> MAIOR QUE
< MENOR QUE
<= MENOR OU IGUAL
>= MAIOR OU IGUAL
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Strings Conceitualmente, Strings são seqüência de caracteres Unicode. Por exemplo a string “Bem-vindo ao Java” contém 15 caracteres.
Declarando strings e atribuindo valores:
Private String rot = “Meu nome é: ”;
Private String nome = “Fulano ”;
Concatenando Strings:
O Java, como a maioria das linguagens de programação, permite utilizar + para agrupar (concatenar) strings.
Private String declaracao = rot + nome;
Se imprimir-mos a variável declaracao o programa irá exibir:
Meu nome é: Fulano
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Testando igualdade de strings: Para testar se duas string são iguais, use o método equals(). A expressão
s.equals(t) retorna true se s e t forem iguais e false caso contrário.
Ex.::
String pai = “João”;
String filho = “José”;
if ( pai.equals(filho)) //maneira correta de comparar strings
System.out.println(“é igual”);
Para ignorar maiusculas e minúsculas utilize o método equalsIgnoreCase().
Ex.::
if (pai.equalsIgnoreCase(filho));
System.out.println(“é igual”);
Não utilize o operador == para testar igualdade de duas strings! Ele
determina se as strings são armazenadas na mesma localização, pois pode
acontecer que esteja.
Ex.::
if ( pai == filho) //maneira INCORRETA de comparar strings
System.out.println(“é igual”);
Strings
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Comandos E/S
Imprimindo em console: O comando System.out.print(); imprimi mensagens no console.
Para impressão temos também:
println( ) – imprime e põem o cursor na próxima linha (usamos o operador
+ para concatenar strings e /ou variáveis);
printf( ) – impressão formatada (usamos tags marcadoras de posição de
variáveis).
Veja algumas tags e sua utilização:
Tag Utilização Exemplo Resultado
%d Marca posição de números inteiros.
int x = 2; Printf(“o dobro de 2 = %d ”, x * 2);
o dobro de 2 = 4
%f Marca posição de números reais.
float y = 5; Printf(“a metade de 5 = %d ”, y / 2);
a metade de 5 = 2,5
%s Marca posição de Strings String nome = “Fulano”; Printf(“Meu nome é: %s ”, nome);
Meu nome é: Fulano
%c Marca posição de caracter char car = ‘A’; Printf(“O nome começa com a letra %c”, car);
O nome começa com a letra A
%b Marca posição de boolean boolean logic = true; Printf(“%b ”, logic);
true
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Usando a classe Scanner
para ler
Para ler dados do usuário digitados no teclado, utilizamos o método next() da classe Scanner.
Para fazer isto, antes precisamos criar um objeto Scanner:
Scanner leitura = new Scanner(System.in);
O método next() retorna o que foi digitado, por isso devemos logo atribui-lo a uma variável, assim:
String nome = leitura.next();
Utilizamos métodos diferentes de acordo com o tipo de dado a ser lido
next( ) – ler apenas uma palavra;
nextLine( ) – ler uma linha inteira;
nextInt( ) – ler um número inteiro;
nextFloat( ) – ler um número real;
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
import O compilador utiliza as instruções import para localizar classes necessárias
para compilar um programa Java.
Ex.:: import java.util.Scanner;
Para cada nova classe da Java API que usamos, devemos indicamos o pacote
no qual você pode encontrar aquela classe. Esta informação sobre os pacotes
é importante.
Java importa automaticamente classes do pacote java.lang, como a classe
System. Portanto, não são necessárias instruções import para as classes que
estão no pacote java.lang.
Obs.:: Todas as instruções import devem aparecer antes da definição de
classe. Colocar uma instrução import dentro do corpo de definição de uma
classe ou depois de uma definição de classe é um erro de sintaxe.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Imprimindo e lendo através de caixas de Diálogo
A classe JOptionPane contém alguns métodos static que são usados para ler dados e exibir mensagens por meio de caixas de diálogo. Conheça alguns:
JOptionPane.showMessageDialog(null,”Hello world!!”); - exibe mensagem para o usuário;
JOptionPane.showInputDialog(”Qual o seu nome?”); - exibe mensagem para o usuário e ao mesmo tempo retorna a string digitada por ele em um campo de texto, por isso deve ser atribuído a uma variável do tipo String;
String nome = JOptionPane.showInputDialog(”Qual o seu nome?”);
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Fluxo de controle
Loops determinantes (for):
Obs.:: O contador também pode ser declarado fora da estrutura.
Contador com valor inicial incremento Condição do laço
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Arrays (vetores e matrizes)
Declaração de vetores:
Tipo[] nomeDoVetor = new Tipo[TamanhoDoVetor];
Ex.::
int[] id = new int[15];
String[] nomes = new String[4];
Inicialização de vetores : String[] nomes = {“fulano”, “josé”, “joão”, “maria”,};
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Arrays (vetores e matrizes)
Declaração de matrizes: Tipo[][] nomeDaMatriz = new Tipo[nº de linhas] [nº de colunas];
Ex.:: int[][] id = new int[3][2];
String[][] nomes = new String[3][2];
Inicialização de matrizes : String[][] nomes = { {“fulano”, “josé”}, { “joão”, “maria”,}, { “james”, “Bond”} };
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Introdução a Programação Orientada a Objetos
Você já sabe que Java é uma linguagem de programação orientada a objetos. Vamos entender o que isto significa.
Classe: Uma classe pode ser definida como um modelo que descreve um conjunto de elementos que compartilham os mesmos atributos, operações e relacionamentos. – Ex.::
Veículo pode ser considerado uma classe, pois possui um conjunto de elementos que compartilham os mesmos atributos (cor, portas, pneus, volante, para-brisas, etc) e ações (acelerar, frear, estacionar, etc).
Objeto: É um elemento representante de uma classe, é uma instância da classe.
Ex.:: Um carro é um objeto pertencente a classe Veículo.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Classes em Java
Veiculo Cor numPortas
acelerar() frear() estacionar()
DIAGRAMA UML
CÓDIGO EM JAVA Para programar orientado a objetos você precisa abstrair os atributos e comportamentos dos objetos do mundo real, em seguida escrever o código utilizando os recursos da linguagem Java.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Objetos e variáveis-objeto
Construímos um objeto com a palavra new seguida da chamada ao construtor da classe. Ex.:: new Veiculo(); Podemos criar uma variável para armazenar esse objeto (por isso são chamadas de variável-objeto). Essa variável precisa ser do tipo da classe a que se refere. Ex.:: Veiculo carro = new Veiculo(); Agora podemos usar essa variável-objeto. Para chamar um método de um objeto é necessário enviar uma mensagem para ele. Ex.:: carro.acelerar();
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Métodos
Métodos são os comportamentos de um objeto. A declaração é feita da seguinte forma:
modificador tipoDeRetorno nomeDoMetodo(Parâmetros)
{
instruções;
}
Ex.::
Uma vez desenvolvido esse método dentro de uma classe, para imprimir o dobro de um número basta escrevermos:
O resultado será:
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Herança A herança é o mecanismo de derivação através do qual uma classe
pode ser construída como extensão de outra. Neste processo, todos os
atributos e operações da classe base (superclasse) passam a valer, também,
para a classe derivada (subclasse), podendo esta última definir novos atributos
e operações que atendam suas especificidades.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Herança
Em Java utilizamos a palavra extends para uma subclasse Herdar os atributos e métodos de uma superclasse. Ex.::
O conceito de herança evita que um mesmo código seja digitado várias vezes para classes que tenham os mesmos atributos e possuam o mesmo comportamento.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Polimorfismo
• Polimorfismo é a característica que garante que um determinado método possa produzir resultados diferentes quando aplicado a objetos pertencentes a classes diferentes, dentro de uma hierarquia de classes.
• Através do polimorfismo um mesmo nome de operação pode ser compartilhado ao longo de uma hierarquia de classes, com implementações distintas para cada uma das classes.
• Ex.:: Empregado
calcularSalario()
Mensalista
calcularSalario()
Tarefeiro
calcularSalario()
Horista
calcularSalario()
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Polimorfismo e Interfaces
Interface é um modo de descrever o que as classes devem fazer, sem especificar como devem fazer.
Na linguagem de programação Java, uma interface não é uma classe, mas um conjunto de requisitos para classes que precisam adequar-se a ela.
Observe que o método da interface acima não está desenvolvido, pois isso somente é feito na classe que a implementa. (implements)
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Encapsulamento
As classes normalmente ocultam os detalhes de sua implementação dos clientes das classes. Isso se chama encapsulamento ou ocultamento de informações.
Observação de engenharia de software.::
Os projetistas de classe utilizam dados private métodos public para garantir a noção do ocultamento de informações e o princípio do menor privilégio. Se o cliente de uma classe precisa acessar dados na classe, forneça acesso por métodos public da classe. Fazendo isso, o programador da classe controla como os dados da classe são manipulados (por exemplo, a verificação da validade dos dados pode impedir que os dados inválidos sejam armazenados em um objeto). Este é o princípio do encapsulamento de dados.
ANDRÉ J. A. RAMOS, DESENVOLVEDOR
Bibliografia
• Horstmann, Cay S.; Cornell, Gary. Core Java 2,
volume I – fundamentos. São Paulo: Pearson Prentice
Hall, 2010.
• DEITEL, Harvey M.; DEITEL, Paul J. Java como
Programar. 8º ed. São Paulo: Pearson Prentice Hall,
2010.