Post on 07-Apr-2016
Linguagem JAVA
Ariane Machado Lima
Noções gerais Histórico (Oak) Características:
– simples e familiar (C, C++)– orientada a objetos (tipos primitivos e objetos)– distribuída (redes dinâmicas e objetos remotos)– interpretada (bytecode, JVM, compile-run)– robusta (sem pointers, GC, fortemente tipada)– segura (GC, sem pointers, bytecode protegido)– portabilidade (diferentes plataformas e browsers)– alta performance (desenvolvimento e bom bytecode) – multitarefa e dinâmica (threads, sincronização,
redes)
Java não tem... typedef, define, preprocessor struct, union enum goto pointers sobrecarga de operadores templates herança múltipla
Sintaxe básica
Tipos básicos:– long : inteiro de 64 bits (+ ou - 18 dígitos)– int: inteiro de 32 bits [-2.147.483.648; + 2.147.483.647]– short: inteiro de 16 bits [-32.768; + 32.767]– byte: inteiro de 8 bits [-128; +127]– double: real de precisão dupla, 64 bits [1,7E-308; 1,7E+308]– float: real de 32 bits [3,4E-38; 3,4E+38]– char: caracter de 16 bits (sem sinal)– boolean: tipo lógico true ou false (1 bit)
Sintaxe básica (cont.) Comentários:// até o fim da linha/* até encontrar uma
barra / Operadores relacionais:
== igual!= diferente> maior>= maior ou igual< menor<= menor ou igual
Sintaxe básica (cont.) Operadores aritméticos
x = 4*(2+5) / (3-1) // x == 14y = x % 3 // y == 2x++ // x == 15y-- // y == 1
y += x // y == 16-= *= /= %=
Alguns operadores lógicos&& e|| ou
Comando condicional
if (expressão booleana)bloco1;
else bloco2;
if (x >= 0)x = 1;
else x = -1;
Comando de seleção
switch (expressão){ case valor1: bloco1;
break;case valor2: bloco2;break;...case valorN: blocoN;break;default: bloco N+1;
}
Comandos de Repetição
while (x>=0) { System.out.println(“Valor de x: ” + x);
x--;}
do{ x--;
System.out.println(“Valor de x: ” + x);} while (x>0)
Comandos de Repetição (cont.)
for (x= -20; x<= 0; x++){
msg = “Valor de x” + x;System.out.println(msg);
}
Equivalências
super this ~ self static: método ou variável de classe Envio de mensagens:
(classe/objeto).mensagem([param*]) Exemplo:
Final
Classe: – não pode ser mais extendida
Método: – não pode mais ser sobrecarregado
Variável:– não pode mais mudar de valor
(constante)
Classes e métodos abstratos Classes abstratas:
– reúne características comuns das subclasses– não podem ser instanciadas (não possuem
construtor) Métodos abstratos:
– não possui código– devem ser implementados nas subclasses– não pode ser static ou final – devem pertencer a uma classe abstrata
Interface
Define tipo (~classe abstrata) Apenas métodos públicos Não possui código Não possui atributos de instância
– atributos final e static são permitidos Não possui construtor Podem herdar de outras interfaces
Classes abstratas X interfaces
Fatoração de implementação: – funcionalidades iguais de um conjunto de classes
podem ser implementadas apenas uma vez na classe abstrata
Generalidade de uso:– uma interface pode ser implementada por classes
não relacionadas
Classes abstratas X interfaces (cont.)
Expansibilidade:– inserção de novos métodos em uma interface
implica modificação de todas as classes que a implementam
Herança múltipla:– cada classe pode herdar de apenas uma classe
(abstrata ou não), mas pode implementar várias interfaces
Pacotes Coleções de classes java, javax, org.omg subpacotes nome completo de classes inclui pacote:
– String ~ java.lang.String Definindo pacotes:
package meu_pacote; Usando pacotes:
import java.util.*;
Alguns pacotes java.lang java.util java.io java.awt java.math java.net java.beans
Estrutura de um arquivo .java
[package][import]public class NomeArquivo
Arrays
Declaração:
Point [] listaDePontos;Point listaDePontos[];
listaDePontos.length
Arrays (cont) Criação e inicialização:listaDeInteiros = new int[10]; //valores defaultlistaDeInteiros = new int {1,2,3,4,5}; //tipo implícito
(uso de array anônimo)listaDeInteiros = {1,2,3,4,5}; //tipo e tamanho
implícitosPoint[] pontos {circulo1.getCenterPoint(),
circulo2. getCenterPoint()}//inicialização em tempo de execução