SlideShare uma empresa Scribd logo
1 de 159
Conteúdo Programático 
 Fundamentos e sintaxe da linguagem Java 
 Orientação a objetos 
 Collections 
 Exceções 
 Leitura e escrita de arquivos 
 SQL 
 Conexão com SGBD: JDBC 
 Interfaces gráficas: Swing e JavaFX 
 Geração de relatórios com Jasper Report 
 Controle de versões: SVN 
 Ant Build File 
Rosicléia Frasson - 2014
Fundamentos da linguagem Java 
 Distribuições do Java 
Rosicléia Frasson - 2014
Fundamentos da linguagem Java 
 Compilador e interpretador Java 
Rosicléia Frasson - 2014
Fundamentos da linguagem Java 
 Java SE 
Rosicléia Frasson - 2014
Fundamentos da linguagem Java 
 JDK X JRE 
 A JRE é o ambiente de execução 
Java para quem quer apenas 
executar programas escritos em 
Java. 
 É composta pela JVM e as APIs 
Java (coleção de componentes de 
software prontos, que incluem 
desde estruturas para 
manipulação de arquivos até a 
construção de aplicativos gráficos). 
 O JDK é o conjunto de 
ferramentas necessárias 
para o desenvolvimento 
de programas Java. 
 É composto pela JRE, 
javac (compilador), jar 
(empacotador) e o javadoc 
(documentação). 
Rosicléia Frasson - 2014
Fundamentos da linguagem Java 
 IDE - Eclipse 
Rosicléia Frasson - 2014
Fundamentos da linguagem Java 
 Gerenciamento de memória Java 
Rosicléia Frasson - 2014
Fundamentos da linguagem Java 
 Garbage Collector 
Rosicléia Frasson - 2014
Sintaxe da linguagem Java 
 Ponto e vírgula, blocos, espaços em branco e case-sensitive 
 Para uma melhor legibilidade do código, é interessante usar espaços, 
tabulações e novas linhas; 
 Um bloco é formado por uma ou mais instruções agrupadas entre chaves; 
 Os blocos podem ser organizados em estruturas aninhadas infinitamente; 
 Uma instrução é composta por uma ou mais linhas terminadas com um 
ponto-e-vírgula; 
 O Java é uma linguagem case-sensitive. 
Rosicléia Frasson - 2014 
public class Exemplo { 
public static void main(String[] args) { 
int idade = 15; 
if (idade < 18){ 
int qtTempo = 18 - idade; 
System.out.println("Você não pode doar sangue. Espere " + qtTempo + " anos." ); 
} 
} 
}
Sintaxe da linguagem Java 
 Palavras reservadas 
abstract assert boolean break byte case catch 
char class const continue default do double 
else enum extends false final finally float 
for goto if implements import instanceof int 
interface long native new null package private 
protected public return short static strictpf super 
switch synchronized this throw throws transient try 
Rosicléia Frasson - 2014 
void volatile while
Sintaxe da linguagem Java 
 Tipos primitivos 
Classificação Tipo Tamanho 
lógico boolean 1 bit 
Rosicléia Frasson - 2014 
inteiro 
byte 1 byte 
short 2 bytes 
int 4 bytes 
long 8 bytes 
ponto flutuante 
float 4 bytes 
double 8 bytes 
caracter char 2 bytes 
`
Sintaxe da linguagem Java 
 Conversão entre tipos 
Rosicléia Frasson - 2014 
` 
 Implicitamente: A JVM transforma em tempo de execução, quando acha 
conveniente, tipos restritos em tipos com maior amplitude. 
 Através de uma operação chamada casting ou conversão explícita 
DE: PARA: byte short char int long float double 
byte ----- implícito (char) implícito implícito implícito implícito 
short (byte) ----- (char) implícito implícito implícito implícito 
char (byte) (short) ----- implícito implícito implícito implícito 
int (byte) (short) (char) ----- implícito implícito implícito 
long (byte) (short) (char) (int) ----- implícito implícito 
float (byte) (short) (char) (int) (long) ----- implícito 
double (byte) (short) (char) (int) (long) (float) -----
Sintaxe da linguagem Java 
 Declaração de variáveis 
tipo nome Valor inicial 
Rosicléia Frasson - 2014 
double peso; 
int idade; 
char sexo; 
double salario = 1200.00; 
boolean ligado = true;
Sintaxe da linguagem Java 
 Declaração de variáveis 
Rosicléia Frasson - 2014 
Regras 
 Os nomes de variáveis em Java devem ser 
inicializados por uma letra, um cifrão ou por 
undescore; 
 Após o primeiro caracter, vale qualquer 
combinação de números, letras, underscore e 
cifrão; 
 Os identificadores não podem ter o nome 
igual ao de uma palavra reservada. 
int num;  
int $num; 
int _num; 
int num1; 
int 1num; 
int NUM; 
compila? 
 
 
 
X 
 
int -num; X 
int num-av; X
Sintaxe da linguagem Java 
 Declaração de variáveis 
Rosicléia Frasson - 2014 
Convenções 
 O nome de uma variável deve ser 
escrito em letras minúsculas. 
 Caso o nome da variável seja uma 
palavra composta, a primeira letra a 
partir da segunda palavra deve ser 
escrita com letra maiúscula; 
String nome;  
String NOME; 
String Nome; 
String nm_cliente; 
String nomeCliente; 
segue padrão? 
X 
X 
X 

Sintaxe da linguagem Java 
 Declaração de variáveis 
Date data; //data de devolução do produto X 
Rosicléia Frasson - 2014 
Convenções 
 O nome de uma variável deve ser significativo, indicando claramente o que a 
variável representa. 
 Se o nome de uma variável necessita de um comentário para explicar o porquê 
da sua existência, ele deve ser trocado. 
segue padrão? 
Date dataDevolucaoProduto;  
Date dt; X
Sintaxe da linguagem Java 
 Declaração de variáveis 
String cliente; X 
Rosicléia Frasson - 2014 
Convenções 
 É indicado utilizar nomes que refletem o domínio em que o software será 
utilizado. 
segue padrão? 
String contribuinte;  
String usuário; X
Sintaxe da linguagem Java 
 Declaração de variáveis 
 * É uma sigla conhecida 
Rosicléia Frasson - 2014 
Convenções 
 As abreviações e siglas devem ser usadas com cautela. Decifrar uma abreviação 
adiciona um tempo extra na execução de uma tarefa. 
 
int uv; 
segue padrão? 
String cpf; 
String unidadeVenda; 
X
Sintaxe da linguagem Java 
 Declaração de variáveis 
Rosicléia Frasson - 2014 
Convenções 
 Nomes semelhantes devem ser evitados, pois podem confundir o desenvolvedor. 
 Não utilizar como identificadores nomes confusos que podem levar quem lê o 
código a conclusões erradas. 
double valorMultaNosDiasTranscorridos; 
segue padrão? 
double valorMultaPorDiasTranscorridos; 
double listaValoresPadraoMulta; 
X 
* Nomes 
semelhantes podem 
causar confusão. 
X 
X 
* A variável não 
representa uma lista.
Sintaxe da linguagem Java 
 Declaração de variáveis 
Rosicléia Frasson - 2014 
Convenções 
 Identificadores de variáveis devem ser escritos no singular, exceto quando a 
variável representar uma coleção de dados. 
 É indicado utilizar nomes pronunciáveis para facilitar a leitura e comunicação. 
double descontos. 
segue padrão? 
double [] valoresMultasAplicadas ; 
String dtVlProVen; 
 
X 
X 
String dtValidadeProdutoVendido; 
Sintaxe da linguagem Java 
 Declaração de variáveis 
Rosicléia Frasson - 2014 
Convenções 
 É preferível declarar uma variável por linha, ao 
invés de várias na mesma linha. 
public class Funcionario { 
String nome, cpf, rg, orgaoEmissorRg, 
telefoneResidencial, celular, 
nrRegistroCNH, nomePai, nomeMae, 
nomeConjuge ; 
Date dataNascimento, dataAdmissao, 
dataRegistro, dataDemissao, 
dataVencimentoCNH, dataEmissaoRg; 
} 
public class Funcionario { 
String nome; 
Date dataNascimento; 
String cpf; 
String rg; 
String orgaoEmissorRg; 
Date dataEmissaoRg; 
String nomePai; 
String nomeMae; 
String nomeConjuge; 
String nrRegistroCNH; 
Date dataVencimentoCNH; 
String telefoneResidencial; 
String celular; 
Date dataAdmissao; 
Date dataRegistro; 
Date dataDemissao; 
} 
X 
Sintaxe da linguagem Java 
 Entrada e saída de dados 
Classe Scanner e objeto System.in 
import java.util.Scanner; 
public class EntradaSaidaDadosConsole { 
public static void main(String[] args) { 
Scanner entrada = new Scanner(System.in); 
Rosicléia Frasson - 2014 
entrada.close(); 
} 
}
Sintaxe da linguagem Java 
 Entrada e saída de dados 
Métodos Classe Scanner e objeto System.out 
System.out.println("Informe o seu nome: "); 
nome = entrada.nextLine(); 
System.out.println("Informe a sua idade: "); 
idade = entrada.nextInt(); 
System.out.println("Informe o seu peso: "); 
peso = entrada.nextDouble(); 
System.out.println(nome + ", você possui " + idade + " anos. "); 
System.out.print("Seu peso é "); 
System.out.printf("%.2f", peso); 
Rosicléia Frasson - 2014
Sintaxe da linguagem Java 
 Operadores básicos 
. Referência a método, função ou atributo de um objeto. 
, Separador de identificadores. 
; Finalizador de declarações e comandos. 
[ ] Declarador de vetores e delimitador de índices. 
{ } Separador de blocos. 
( ) Lista de parâmetros. 
= Operador de atribuição. 
Rosicléia Frasson - 2014
Sintaxe da linguagem Java 
 Operadores lógicos 
Rosicléia Frasson - 2014 
> Maior 
>= Maior ou igual 
< Menor 
<= Menor ou igual 
== Igual 
!= Diferente 
&& E 
|| OU
Sintaxe da linguagem Java 
 Operador condicional ternário 
condição ? caso verdadeiro : caso falso 
Scanner entrada = new Scanner(System.in); 
Rosicléia Frasson - 2014 
double nota; 
System.out.println("Informe a nota do aluno: "); 
nota = entrada.nextDouble(); 
System.out.println(nota >= 7 ? " Aluno aprovado " : " Aluno reprovado");
Sintaxe da linguagem Java 
 Operadores aritméticos 
Rosicléia Frasson - 2014 
+ Adição 
- Subtração 
* Multiplicação 
/ Divisão 
% Módulo (resto da divisão)
Sintaxe da linguagem Java 
 Operadores aritméticos 
 Divisão de números inteiros sempre resulta em um inteiro. 
int dividendo = 5; 
int divisor = 2; 
double quociente = dividendo / divisor; 
int dividendo = 5; 
int divisor = 2; 
double quociente = dividendo / (double) divisor; 
Rosicléia Frasson - 2014 
quociente = 2 
quociente = 2.5
Sintaxe da linguagem Java 
 Operadores de incremento e decremento 
Rosicléia Frasson - 2014 
Operador Exemplo Significado 
++ ++x 
Incrementa a variável e 
depois usa. 
++ x++ 
Usa a variável e depois 
incrementa. 
-- --x 
Decrementa a variável e 
depois usa. 
-- x-- 
Usa a variável e depois 
decrementa. 
int a = 5; 
int b = 3; 
int c = 4; 
int d = 7; 
System.out.println(a++); 
System.out.println(a); 
System.out.println(++b); 
System.out.println(b); 
System.out.println(c--); 
System.out.println(c); 
System.out.println(--d); 
System.out.println(d);
Sintaxe da linguagem Java 
 Operadores de atribuição 
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 
Rosicléia Frasson - 2014
Sintaxe da linguagem Java 
 Tipos primitivos e variáveis de referência 
Rosicléia Frasson - 2014
Sintaxe da linguagem Java 
 Pool de Strings 
Rosicléia Frasson - 2014
Sintaxe da linguagem Java 
 Classe String: métodos utilitários 
Rosicléia Frasson - 2014 
 equals 
 replace 
 trim 
 contains 
 lenght 
 toUpperCase 
 toLowerCase 
 charAt 
 substring 
 valueOf
Sintaxe da linguagem Java 
 Transformação de Strings em tipos numéricos 
Rosicléia Frasson - 2014 
int idade = 
Integer.parseInt(JOptionPane.showInputDialog("Informe sua idade: ")); 
double peso = 
Double.parseDouble(JOptionPane.showInputDialog("Informe o seu peso: ")); 
float altura = 
Float.parseFloat(JOptionPane.showInputDialog("Informe sua altura: ")); 
long matricula = 
Long.parseLong(JOptionPane.showInputDialog("Informe sua matrícula: "));
Sintaxe da linguagem Java 
 Estruturas condicionais 
Rosicléia Frasson - 2014 
 Uma estrutura de 
condição avalia uma 
expressão booleana 
e com base no 
resultado 
(VERDADEIRO ou 
FALSO), o fluxo do 
algoritmo segue 
para um bloco de 
instruções ou não.
Sintaxe da linguagem Java 
 Comando if ... else 
Rosicléia Frasson - 2014 
if (expressão){ 
bloco de comandos 
} else{ 
bloco de comandos 
}
Sintaxe da linguagem Java 
 Comando if ... else 
Rosicléia Frasson - 2014 
import java.util.Scanner; 
public class CondicaoIfElse { 
public static void main(String[] args) { 
Scanner entrada = new Scanner(System.in); 
System.out.println("Informe a média do aluno: "); 
double media = entrada.nextDouble(); 
if (media >= 7){ 
System.out.println("Aluno aprovado!"); 
}else if (media >= 4){ 
System.out.println("Aluno em recuperação!"); 
}else{ 
System.out.println("Aluno reprovado!"); 
} 
entrada.close(); 
} 
}
Sintaxe da linguagem Java 
 Comando switch 
Rosicléia Frasson - 2014 
switch (expressão){ 
case constante1: 
bloco de comandos; 
break; 
case constante2: 
bloco de comandos; 
break; 
••• 
default: 
bloco de comandos; 
}
Sintaxe da linguagem Java 
 Comando switch 
Rosicléia Frasson - 2014 
switch (diaDaSemana) { 
case 1: 
System.out.println("Domingo"); 
break; 
case 2: 
System.out.println("Segunda-feira"); 
break; 
case 3: 
System.out.println("Terça-feira"); 
break; 
. 
. 
. 
case 7: 
System.out.println("Sábado"); 
break; 
default: 
System.out.println("Este não é um dia válido!"); 
}
Sintaxe da linguagem Java 
 Estruturas de repetição 
 Uma estrutura de repetição permite que um programa execute 
um bloco de instruções repetidamente enquanto a condição do 
loop continue verdadeira. 
Rosicléia Frasson - 2014
Sintaxe da linguagem Java 
 Comando for 
for (inicialização; condição; incremento){ 
Rosicléia Frasson - 2014 
bloco de comandos; 
}
Sintaxe da linguagem Java 
 Comando for 
public class RepeticaoFor { 
public static void main(String[] args) { 
for (int num = 0; num <=10; num++){ 
System.out.println(num); 
Rosicléia Frasson - 2014 
} 
} 
}
Sintaxe da linguagem Java 
 Comando while 
Rosicléia Frasson - 2014 
while (condição){ 
bloco de comandos; 
}
Sintaxe da linguagem Java 
 Comando while 
public class RepeticaoWhile { 
public static void main(String[] args) { 
Rosicléia Frasson - 2014 
int num = 0; 
while (num <= 10 ){ 
System.out.println(num); 
num++; 
} 
} 
}
Sintaxe da linguagem Java 
 Comando do ... while 
Rosicléia Frasson - 2014 
do{ 
bloco de comandos; 
} while (condição);
Sintaxe da linguagem Java 
 Comando do ... while 
import java.util.Scanner; 
public class RepeticaoDoWhile { 
public static void main(String[] args) { 
Scanner entrada = new Scanner(System.in); 
Rosicléia Frasson - 2014 
int num; 
do{ 
System.out.println("Informe um número: "); 
num = entrada.nextInt(); 
}while(num > 0); 
entrada.close(); 
} 
}
Sintaxe da linguagem Java 
 Comando break 
 Ocasiona a saída imediata de uma instrução for, while, do ... while ou switch. 
public class ComandoBreak { 
public static void main (String args []){ 
for (int numero = 1; numero <= 1000; numero ++){ 
System.out.println("Número: "+ numero ); 
if (numero == 10) 
Rosicléia Frasson - 2014 
break; 
} 
} 
}
Sintaxe da linguagem Java 
 Comando continue 
 O comando continue ignora as instruções restantes no corpo do loop e prossegue 
para a próxima iteração do laço. 
 Pode ser utilizado nas estruturas de repetição for, while e do … while. 
public class ComandoContinue { 
public static void main(String[] args) { 
for (int num = 0; num <= 100; num ++){ 
if (num % 5 != 0){ 
Rosicléia Frasson - 2014 
continue; 
} 
System.out.println(num); 
} 
} 
}
Sintaxe da linguagem Java 
 Comentários 
 Comentário de uma linha: O uso de barra dupla marca o início do comentário que 
se estende até o fim da linha. 
 Comentário de várias linhas: Os delimitadores /* e */ indicam início e fim de um 
comentário e podem conter várias linhas. 
 Comentário javadoc: É utilizado para gerar a documentação javadoc e é delimitado 
pelas sequências de símbolos /** e */. Para gerar o javadoc é necessário que o 
comentário esteja localizado imediatamente antes da classe, atributo ou método 
documentado. 
Rosicléia Frasson - 2014
Sintaxe da linguagem Java 
 Arrays 
String[] nome = new String[10]; 
0 1 2 3 4 5 6 7 8 9 
Rosicléia Frasson - 2014 
nome[0] = "Maria"; 
0 1 2 3 4 5 6 7 8 9 
Maria
Sintaxe da linguagem Java 
 Arrays 
Rosicléia Frasson - 2014 
import java.util.Scanner; 
public class Vetor { 
public static void main(String[] args) { 
Scanner entrada = new Scanner(System.in); 
String[] nome = new String[6]; 
for (int i = 0; i < 6; i++){ 
System.out.println("Informe o aluno " + i + " :"); 
nome[i] = entrada.nextLine(); 
} 
System.out.println("nAlunos: "); 
for(int i = 0; i < nome.length; i++){ 
System.out.println(nome[i]); 
} 
entrada.close(); 
} 
}
Sintaxe da linguagem Java 
 Comando for each 
 Percorre uma coleção de dados sem a utilização de um contador explícito; 
for ( declaração: expressão){ 
bloco de comandos; 
Rosicléia Frasson - 2014 
} 
 Na declaração é necessário indicar o tipo de dado presente no array ou coleção e 
atribuir um identificador; 
 A expressão consiste no array ou coleção que deve ser percorrida; 
 A avaliação da expressão deve resultar em um objeto que implementa a interface 
Iterable - Collections - ou em uma instância de array.
Sintaxe da linguagem Java 
 Comando for each 
public class ComandoForAprimorado { 
public static void main(String[] args) { 
Rosicléia Frasson - 2014 
int somaNumeros = 0; 
int [] numeros = {87, 45, 65, 32, 44, 26, 7, 90}; 
for(int numero: numeros) 
somaNumeros += numero; 
System.out.println("Soma dos elementos do vetor: " + somaNumeros); 
} 
}
Programação Orientada a Objetos 
Organização POO 
Rosicléia Frasson - 2014 
Lógica de 
negócio 
encapsulada 
Simplicidade 
Alinhamento 
com o modelo 
de negócio 
Flexibilidade 
Redução da 
quantidade 
de código
Programação Orientada a Objetos 
 Princípios POO 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Objetos 
Rosicléia Frasson - 2014 
Funcionário 
Jessica Funcionário 
Márcio 
Cupom fiscal 
Augusto 
Cupom fiscal 
Fernando 
Gerente João 
Supermercado 
Cliente 
Augusto 
Cliente 
Fernando 
Produto 
despertador 
Produto 
queijo 
Produto 
torrada
Programação Orientada a Objetos 
 Classe 
Funcionários 
Rosicléia Frasson - 2014 
Matrícula: 1234 
Nome: João da Silva 
Sexo: M 
Matrícula: 2678 
Nome: Joana Monteiro 
Sexo: F 
Matrícula: 9876 
Nome: Marcio Oliveira 
Sexo: M 
- Recebe aumento 
- Troca turno 
Classe 
Atributos Métodos
Programação Orientada a Objetos 
 Classe 
Rosicléia Frasson - 2014 
 Representação UML
Programação Orientada a Objetos 
 Classe 
Rosicléia Frasson - 2014 
 Classe Java
Programação Orientada a Objetos 
 Atributos 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Métodos 
Assinatura do método = nome do método + lista de parâmetros 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Métodos 
Os métodos com parâmetros quando invocados, obrigam o 
invocador a fornecer um argumento do tipo apropriado para 
cada um dos parâmetros declarados pelo método. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Métodos 
Quando um método é invocado, o fluxo de execução passa para 
o método invocado e os comandos deste são executados em 
sequência. 
Um método retorna ao invocador em uma das três condições: 
 execução de um comando return; 
 o bloco de execução acaba nos casos dos métodos void; 
 uma exceção não capturada é lançada. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Métodos 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Sobrecarga de métodos 
 Também conhecida por overloading; 
 Permite a existência de dois ou mais métodos com o mesmo 
nome, porém com variação de quantidade, tipo ou ordem de 
parâmetros; 
 Na invocação do método, o compilador escolhe o método que 
deve ser executado comparando os argumentos enviados com os 
parâmetros do método. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Sobrecarga de métodos 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Instâncias de classes 
 O new aloca espaço para armazenar os campos do 
objeto e os inicializa. 
 Quando a inicialização está completa, o sistema de 
execução retorna uma referência ao novo objeto. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Instâncias de classes 
Rosicléia Frasson - 2014 
CÓDIGO JAVA 
Produto p1 = new Produto( ); 
Produto p2 = new Produto( ); 
Produto p3; 
STACK 
p1 @314955ec 
p2 @896674ae 
p3 null 
HEAP 
p1 
p2
Programação Orientada a Objetos 
 Métodos equals e toString 
 O método toString retorna uma String que textualmente 
representa o objeto. 
 O método equals faz a comparação entre dois objetos e 
retorna o valor true se ambos ocuparem o mesmo espaço de 
memória. 
Rosicléia Frasson - 2014 
(p1.equals(p)) 
p.toString(); 
(p1.equals(p)) 
p.toString();
Programação Orientada a Objetos 
 Construtor 
 A palavra chave new executa o construtor da classe. 
 Um construtor é um bloco declarado com o mesmo nome da 
classe, seguida por uma lista de parâmetros entre parênteses. 
 Um construtor não possui valor de retorno. 
 Em uma classe em que não existe um construtor declarado, a 
JVM cria implicitamente um construtor default. 
Rosicléia Frasson - 2014 
(p1.equals(p)) 
p.toString();
Programação Orientada a Objetos 
 Construtor 
Rosicléia Frasson - 2014 
(p1.equals(p)) 
p.toString();
Programação Orientada a Objetos 
 Construtor 
Rosicléia Frasson - 2014 
(p1.equals(p)) 
p.toString();
Programação Orientada a Objetos 
 Construtor 
Rosicléia Frasson - 2014 
(p1.equals(p)) 
p.toString();
Programação Orientada a Objetos 
 Métodos varargs 
public double calculaValorVenda (double ... precosProdutos){ 
double valorTotal = 0; 
for (double preco : precosProdutos) { 
valorTotal += preco; 
Rosicléia Frasson - 2014 
} 
return valorTotal; 
}
Programação Orientada a Objetos 
 Atributos estáticos 
Classe Produto 
p1 p2 p3 
Rosicléia Frasson - 2014 
codigo: 1 
nome: “arroz” 
preco: 2.30 
codigo: 2 
nome: “farinha ” 
preco: 1.97 
codigo: 3 
nome: “feijão” 
preco: 4.35 
Variáveis de 
instância 
totalProdutos = 3 
Variável 
estática
Programação Orientada a Objetos 
 Atributos estáticos 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Constantes 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Métodos estáticos 
 Métodos estáticos pertencem a uma classe e não a uma 
instância da mesma. 
 Métodos estáticos só podem operar sobre atributos estáticos. 
 Métodos que realizam procedimentos sem estarem vinculados 
a um objeto. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Métodos estáticos 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Classe Math 
 Disponibiliza uma série de operações e constantes 
matemáticas. 
Math.PI - Constante PI 
Math.pow(a, b) - Potência na forma ab 
Math.sqrt(a) - Raiz quadrada de a 
Math.cbrt(a) - Raiz cúbica de a 
Math.abs(a) - Retorna o valor absoluto de a 
Math.min(a, b) - Retorna o menor valor 
Math.max(a, b) - Retorna o maior valor 
Math.ceil(a) - Arredonda para cima 
Math.floor(a) - Arrenda para baixo 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Enum 
 É um tipo que corresponde a um conjunto fixo de constantes. 
 Os ENUMs tornam o código mais explícito, mais legível, e 
menos vulnerável a erros de programação. 
 Seguindo a convenção de constantes, o identificador é escrito 
com todas as letras em maiúsculas. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Enum 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Enum 
Rosicléia Frasson - 2014 
Os enums 
podem ser 
declarados 
internamente 
em uma 
classe.
Programação Orientada a Objetos 
 Composição 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Composição 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
Rosicléia Frasson - 2014 
 Pacotes 
 Possuem como objetivo agrupar classes de funcionalidades 
semelhantes ou relacionadas. 
 Um pacote é um diretório onde ficam armazenadas classes, 
interfaces, subpacotes e arquivos de recursos adicionais, como 
imagens, usados pelas classes do pacote. 
 Os pacotes são correspondentes as bibliotecas em outras 
linguagens de programação.
Programação Orientada a Objetos 
 Declaração de pacotes 
 Nomes de pacotes devem ser compostos exclusivamente por letras 
minúsculas, não importando a quantidade de palavras que o mesmo 
contenha; 
 Os nomes de pacotes devem ser 
relativos a empresa que desenvolveu os 
mesmos. 
 Geralmente é utilizada a nomeação 
reversa de domínios, onde o início do 
nome do pacote é dado pela ordem 
inversa do nome do domínio da 
instituição na internet. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Declaração de pacotes 
 As classes devem possuir como primeira instrução a indicação 
do pacote a que pertencem. 
 A instrução começa com a palavra chave package, seguida pelo 
caminho do pacote delimitado por pontos. 
package br.com.nomeempresa.sintaxeBasica; 
 Classes que não possuem a instrução package pertencem ao 
pacote default. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
javax.swing.JOptionPane.showMessageDialog(null, "Exemplo 
utilização de nome plenamente qualificado do tipo"); 
Rosicléia Frasson - 2014 
 Importação de classes 
 Nome plenamente qualificado 
 Importação de pacotes 
import javax.swing.JOptionPane; 
public class Pacote { 
public static void main(String[] args) { 
JOptionPane.showMessageDialog(null, "Exemplo 
utilização de importação de pacote"); 
} 
}
Programação Orientada a Objetos 
Rosicléia Frasson - 2014 
 Pacotes JSE 
Pacote Funcionalidade 
java.lang Fornece classes que são fundamentais para a concepção da 
linguagem Java. É importado automaticamente. 
java.util Pacote utilitário. Fornece classes para trabalhar com coleções, 
entrada de dados (Scanner) e componentes de data e hora. 
java.awt Fornece classes para definir interfaces gráficas com o usuário. 
javax.swing Extensão do pacote java.awt. 
java.io Fornece classes para realizar operações de entrada e saída de 
dados através do sistema de fluxo de dados (streams) e 
serialização de objetos . 
java.sql Classes para acesso a base de dados via JDBC.
Programação Orientada a Objetos 
 Encapsulamento 
 Consiste em ocultar detalhes da implementação de um objeto 
do meio externo. 
 Apenas as funcionalidades que são 
importantes para as classes externas 
devem ser visíveis. 
A POO recomenda que o estado de 
um objeto não deve ser acessado 
diretamente por classes externas. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Modificadores de acesso 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Modificadores de acesso 
Rosicléia Frasson - 2014 
 public 
 protected 
 default 
 private
Programação Orientada a Objetos 
 Modificadores de acesso 
Rosicléia Frasson - 2014 
public 
Membro acessível a qualquer objeto 
Use para: 
• Construtores e métodos que devem ser acessíveis 
para outras classes; 
• Métodos e constantes estáticas. 
Não use para: 
• Construtores e métodos de uso restrito; 
• Campos de dados de objetos.
Programação Orientada a Objetos 
 Modificadores de acesso 
Rosicléia Frasson - 2014 
protected 
Membro acessível a subclasses e classes do mesmo 
pacote. 
Use para: 
• Construtores que só devem ser chamados pelas 
subclasses; 
• Métodos que só devem ser usados se sobrepostos. 
Não use para: 
• Métodos com restrições a sobreposição 
• Campos de dados de objetos.
Programação Orientada a Objetos 
 Modificadores de acesso 
Rosicléia Frasson - 2014 
default 
Ausência de modificador. 
 Membro acessível a classes do mesmo pacote. 
Use para: 
• Construtores e métodos que só devem ser chamados 
pelas classes do mesmo pacote; 
• Constantes estáticas úteis apenas dentro do pacote. 
Não use para: 
• Métodos cujo uso externo seja indesejado; 
• Campos de dados de objetos.
Programação Orientada a Objetos 
 Modificadores de acesso 
Rosicléia Frasson - 2014 
private 
Membro acessível apenas dentro da própria classe. 
Use para: 
• Métodos que não devem ser acessados por 
membros externos; 
• Campos de dados de objetos;
Programação Orientada a Objetos 
 Gets e sets 
 Quando é usado o modificador de acesso private em um 
atributo, não é possível acessá-lo em outra classe. Para alterar 
ou recuperar o valor do mesmo, é necessário escrever dois 
métodos de acesso, um que retorna o valor e outro que muda o 
valor. 
 A convenção para estes métodos é colocar a palavra get ou 
set antes do nome do produto. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Gets e sets 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Gets e sets 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Herança 
 O mecanismo de herança permite uma hierarquia 
entre classes; 
 As subclasses herdam as características e 
comportamentos das superclasses; 
O relacionamento de herança é do tipo É UM. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Herança 
Pessoa 
Jurídica 
Fabricante Fornecedor 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Herança 
public class PessoaJuridica { 
} 
public class Fabricante extends PessoaJuridica{ 
} 
public class Fornecedor extends PessoaJuridica{ 
Rosicléia Frasson - 2014 
}
Programação Orientada a Objetos 
 Sobrescrita de métodos 
 A sobrescrita de métodos é o mecanismo que 
permite a alteração do comportamento de uma 
superclasse pelas suas subclasses, ou seja, a sobrescrita 
de um método é uma nova implementação para o 
mesmo. 
 A sobrescrita de um método ocorre somente se a 
assinatura do mesmo permanece intacta, isto é, o tipo 
de retorno e os parâmetros devem ser os mesmos. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Sobrescrita de métodos 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Sobrescrita de métodos 
 Métodos sobrepostos nunca podem ter menos acesso que os 
métodos originais; 
ƒ Se método original for public, novas versões têm que ser 
public; 
ƒ Se método original for protected, novas versões podem ser 
protected ou public; 
ƒ Se método original não tiver modificador , novas versões 
podem ser declaradas sem modificador de acesso, com 
modificador protected ou public; 
ƒ Se método original for private, ele não será visível da 
subclasse e portanto, jamais poderá ser estendido. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Modificador final 
 Impede que uma classe seja extendida; 
Impede que um método seja sobrescrito. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Polimorfismo 
 O polimorfismo permite que objetos de múltiplos 
tipos sejam referenciados como se fossem do tipo de 
sua superclasse. 
 Mecanismo que garante que quando um método é 
invocado por meio de uma referência a superclasse, em 
tempo de execução, a versão correta do método da 
subclasse é executada. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Classe abstrata 
 Uma classe abstrata não pode ser instanciada. 
 As classes abstratas possuem métodos concretos e métodos 
abstratos. 
Os métodos abstratos são compostos apenas pela assinatura, 
ou seja, não possuem implementação. 
 Quando uma subclasse concreta extende uma classe 
abstrata, todos os métodos abstratos obrigatoriamente devem 
ser implementados. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Classe abstrata 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Classe abstrata 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Interface 
 Possui como propósito forçar uma subclasse a reescrever todos os 
métodos abstratos, definindo um comportamento para o mesmo. 
As interfaces possuem apenas métodos abstratos. 
 Uma interface não possui atributos. Apenas variáveis estáticas e 
constantes. 
A implementação de uma interface por uma classe indica um 
relacionamento do tipo É UM com a interface. 
Uma classe pode implementar mais de uma interface. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Interface 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Interface 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Classes Wrappers 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Classes Wrappers 
 Fornecem um mecanismo para empacotar valores 
primitivos em um tipo objeto, para que estes sejam 
inclusos em atividades reservadas a objetos; 
Fornecem um conjunto de funções utilitárias para os 
tipos primitivos como as conversões de tipos primitivos 
em String e vice-versa. 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Classes Wrappers 
 As classes Wrappers , exceto a Character, possuem dois 
construtores: um que recebe o tipo primitivo correspondente 
como argumento e o outro que recebe uma String como 
argumento. 
Double d1 = new Double(1.0); 
Double d2 = new Double("1.0"); 
Integer i1 = new Integer(3); 
Integer i2 = new Integer("6"); 
Rosicléia Frasson - 2014
Programação Orientada a Objetos 
 Classes Wrappers 
 As classes Wrappers fornecem métodos para conversão de 
uma String em um tipo primitivo correspondente. 
int idade = Integer.parseInt(JOptionPane.showInputDialog 
("Informe a idade")); 
 Cada classe wrapper fornece um método que retorna o tipo 
primitivo por ela encapsulado. 
Rosicléia Frasson - 2014 
Integer a; 
int b = a.intValue();
Collections 
Rosicléia Frasson - 2014
Collections 
 Listas: java.util.List 
Uma lista é uma coleção que permite elementos duplicados e 
mantém uma ordenação específica entre os elementos. 
 Os elementos ficam dispostos na lista na ordem em que foram 
inseridos. 
 A lista resolve os problemas do array: tamanho infinito, 
inserção, remoção. 
Rosicléia Frasson - 2014
Collections 
 Listas: java.util.List 
ArrayList<String> arrayList = new ArrayList(); 
LinkedList<String> linkedList = new LinkedList(); 
Vector<String> vector = new Vector(); 
Rosicléia Frasson - 2014
Collections 
 Listas 
O método add adiciona um 
elemento no fim da lista. 
Rosicléia Frasson - 2014 
lista.add(p); 
System.out.println(lista.size()); 
O método size retorna a 
quantidade de elementos que a 
lista possui.
Collections 
 Listas: Array List 
Rosicléia Frasson - 2014 
lista.remove(p); 
lista.contains(p); 
O método remove retira um 
elemento da lista. 
O método contains verifica se um 
elemento está na lista.
Collections 
 Listas: Array List 
 O ArrayList possui acesso aleatório aos seus elementos. Sendo 
assim, a busca de um elemento é feita de forma imediata, sem 
que a lista inteira seja percorrida. 
Rosicléia Frasson - 2014
Collections 
 Método sort 
 O método sort recebe um List como argumento e ordena em 
ordem crescente. 
arrayList.add("Ana"); 
arrayList.add("Maria"); 
arrayList.add("Joana"); 
arrayList.add("Zenilda"); 
arrayList.add("Karla"); 
Collections.sort(arrayList); 
Para efetuar a ordenação um objeto precisa implementar a 
interface Comparable que define o método compareTo. 
Rosicléia Frasson - 2014
Collections 
 Métodos Collections 
 binarySearch(List, Object): Realiza uma busca binária por 
determinado elemento na lista ordenada e retorna sua posição ou 
um número negativo, caso não encontrado. 
arrayList.add("Ana"); 
arrayList.add("Maria"); 
arrayList.add("Joana"); 
arrayList.add("Zenilda"); 
arrayList.add("Karla"); 
int indice = Collections.binarySearch(arrayList, "Maria"); 
System.out.println(indice); 
Rosicléia Frasson - 2014
Collections 
 Métodos Collections 
 max(Collection): Retorna o maior elemento da coleção. 
ArrayList numeros = new ArrayList(); 
numeros.add(1); 
numeros.add(4); 
numeros.add(56); 
numeros.add(7); 
int maior = Collections.max(numeros); 
System.out.println("Maior: "+ maior); 
Rosicléia Frasson - 2014
Collections 
 Métodos Collections 
 min(Collection): Retorna o menor elemento da coleção. 
ArrayList numeros = new ArrayList(); 
numeros.add(-1); 
numeros.add(4); 
numeros.add(-56); 
numeros.add(-7); 
int menor = Collections.min(numeros); 
System.out.println("Menor: "+ menor); 
Rosicléia Frasson - 2014
Collections 
 Métodos Collections 
reverse(List): Inverte a lista. 
arrayList.add("Ana"); 
arrayList.add("Maria"); 
arrayList.add("Joana"); 
arrayList.add("Zenilda"); 
arrayList.add("Karla"); 
Collections.reverse(arrayList); 
Rosicléia Frasson - 2014
Collections 
 java.util.Set 
 Um conjunto Set não permite elementos duplicados. 
 Os elementos possuem uma forma especial de ordenação. 
Collection<Integer> numeros = new HashSet(); 
numeros.add(1); 
numeros.add(5); 
numeros.add(66); 
Rosicléia Frasson - 2014
Collections 
 Performance List X Set 
Collection<Integer> colecao = new HashSet<Integer>(); 
long tempoInicial = System.currentTimeMillis(); 
for (int i = 0; i < 100000; i++) { 
Rosicléia Frasson - 2014 
colecao.add(i); 
} 
for (int i = 0; i < 100000; i++) { 
colecao.contains(i); 
} 
long tempoFinal = System.currentTimeMillis(); 
System.out.printf("Tempo em milisegundos: ", (tempoFinal - 
tempoInicial));
Exceptions 
 Stacktrace 
Rosicléia Frasson - 2014 
terceiroMetodo 
segundoMetodo 
primeiroMetodo 
main 
Pilha de execução 
Método com 
erro
Exceptions 
Rosicléia Frasson - 2014
Exceptions 
 Tratamento de exceção 
 O Java possui dois tipos de 
exceções: 
unchecked: o compilador não 
checa se a exceção está sendo 
tratada. 
checked: o compilador checa 
se a exceção está devidamente 
tratada. 
Rosicléia Frasson - 2014
Exceptions 
 Tratamento de exceção 
Rosicléia Frasson - 2014
Exceptions 
 Tratamento de exceção 
Rosicléia Frasson - 2014
Exceptions 
 Criação de um tipo de exceção 
Rosicléia Frasson - 2014
Java.io 
 API Java.io 
 Consiste em uma hierarquia de classes responsáveis pelo 
controle de entrada e saída de dados. 
Rosicléia Frasson - 2014
Java.io 
 Classe File 
 A classe File lida diretamente com arquivos e 
sistema de arquivos. 
Rosicléia Frasson - 2014
Java.io 
 Classe File 
 A classe File também possibilita a criação de 
arquivos e diretórios, bem como a remoção dos 
mesmos. 
Rosicléia Frasson - 2014
IO 
 Fluxo de bytes 
Rosicléia Frasson - 2014 
 Saída de dados
IO 
 Fluxo de bytes 
Rosicléia Frasson - 2014 
 Entrada de dados
IO 
Rosicléia Frasson - 2014
IO 
 Fluxo de caracteres 
 O fluxo de caracteres foi adicionado no Java 5 e fornecem um 
meio para entrada e saída de caracteres. 
 As classes abstratas Reader e Writer representam as 
superclasses da hierarquia de classes responsáveis pelo fluxo 
de caracteres. 
 Reader é usada para leitura de dados e Writer para saída. 
 As classes da hierarquia trabalham com caracteres Unicode. 
Rosicléia Frasson - 2014
IO 
 Classe Reader 
Rosicléia Frasson - 2014
IO 
 Classe Reader 
Rosicléia Frasson - 2014
IO 
 Classe Writer 
Rosicléia Frasson - 2014
IO 
 Classe Writer 
Rosicléia Frasson - 2014
Banco de dados e JDBC 
Rosicléia Frasson - 2014 
 Modelo relacional
Banco de dados e JDBC 
Rosicléia Frasson - 2014 
 Modelo relacional 
 Entidades : São objetos do mundo real dentro do domínio da 
aplicação. 
 Atributos: São as propriedades que descrevem as entidades. 
 Chaves: São atributos ou conjuntos de atributos que permitem 
identificar sem ambiguidade cada instância de uma entidade, ou 
seja, garante a distinção entre as ocorrências das entidades. 
 Relacionamentos: São associações entre duas entidades ou 
entre uma entidade e ela mesma.
Banco de dados e JDBC 
Rosicléia Frasson - 2014 
 Relacionamentos 
 Um-para-um
Banco de dados e JDBC 
Rosicléia Frasson - 2014 
 Relacionamentos 
 Um-para-muitos
Banco de dados e JDBC 
Rosicléia Frasson - 2014 
 Relacionamentos 
 Muitos para muitos
Banco de dados e JDBC 
Rosicléia Frasson - 2014 
 SQL 
SQL 
Strutured Query 
Language 
DDL 
Data Definition 
Language 
DML 
Data Manipulation 
Language
Banco de dados e JDBC 
 SQL - DDL (Data Definition Language) 
Rosicléia Frasson - 2014
Banco de dados e JDBC 
 SQL - DML (Data Manipulation Language) 
Rosicléia Frasson - 2014
Banco de dados e JDBC 
Rosicléia Frasson - 2014
Banco de dados e JDBC 
Rosicléia Frasson - 2014
SVN 
Rosicléia Frasson - 2014

Mais conteúdo relacionado

Mais procurados

5 paradigma funcional usando haskell
5 paradigma funcional usando haskell5 paradigma funcional usando haskell
5 paradigma funcional usando haskellPéricles Miranda
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11Ismar Silveira
 
Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptRaphael Donaire Albino
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonguestac3de
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativoTony Alexander Hild
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Leandro Rezende
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 
Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantesDenis Sobrenome
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...Manuel Menezes de Sequeira
 
Poo1 aula 6 - conversão de tipos primitivos
Poo1   aula 6 - conversão de tipos primitivosPoo1   aula 6 - conversão de tipos primitivos
Poo1 aula 6 - conversão de tipos primitivosDenis Sobrenome
 

Mais procurados (20)

5 paradigma funcional usando haskell
5 paradigma funcional usando haskell5 paradigma funcional usando haskell
5 paradigma funcional usando haskell
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Módulo de php
Módulo de phpMódulo de php
Módulo de php
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11
 
Oficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScriptOficina de Web Design Lecom - PHP e JavaScript
Oficina de Web Design Lecom - PHP e JavaScript
 
05 automato finito com saida
05   automato finito com saida05   automato finito com saida
05 automato finito com saida
 
Linguagem c parte 1
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantes
 
es6
es6es6
es6
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
Poo1 aula 6 - conversão de tipos primitivos
Poo1   aula 6 - conversão de tipos primitivosPoo1   aula 6 - conversão de tipos primitivos
Poo1 aula 6 - conversão de tipos primitivos
 

Semelhante a Java Fundamentos Programático

Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência JavaMario Jorge Pereira
 
Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Elaine Cecília Gatto
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Webdiogoa21
 
Conceitos base de programação - parte 1
Conceitos base de programação - parte 1Conceitos base de programação - parte 1
Conceitos base de programação - parte 1João Piedade
 
Expressões Regulares - Final
Expressões Regulares - FinalExpressões Regulares - Final
Expressões Regulares - FinalJackson Veroneze
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformMilfont Consulting
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraDextra
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesOziel Moreira Neto
 
Groovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessGroovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessRafael Farias Silva
 

Semelhante a Java Fundamentos Programático (20)

Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
JavaCC
JavaCCJavaCC
JavaCC
 
1.introducao java
1.introducao java1.introducao java
1.introducao java
 
Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3
 
Java2
Java2Java2
Java2
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
JavaFX SestInfo 2010
JavaFX SestInfo 2010JavaFX SestInfo 2010
JavaFX SestInfo 2010
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Conceitos base de programação - parte 1
Conceitos base de programação - parte 1Conceitos base de programação - parte 1
Conceitos base de programação - parte 1
 
Expressões Regulares - Final
Expressões Regulares - FinalExpressões Regulares - Final
Expressões Regulares - Final
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Introducao logica3
Introducao logica3Introducao logica3
Introducao logica3
 
Minicurso php
Minicurso phpMinicurso php
Minicurso php
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java Platform
 
Javafx Introdução
Javafx IntroduçãoJavafx Introdução
Javafx Introdução
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails Dextra
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
Groovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessGroovy para javeiros - Migração Painless
Groovy para javeiros - Migração Painless
 
Curso Gratuito de Shell Script
Curso Gratuito de Shell ScriptCurso Gratuito de Shell Script
Curso Gratuito de Shell Script
 

Java Fundamentos Programático

  • 1. Conteúdo Programático  Fundamentos e sintaxe da linguagem Java  Orientação a objetos  Collections  Exceções  Leitura e escrita de arquivos  SQL  Conexão com SGBD: JDBC  Interfaces gráficas: Swing e JavaFX  Geração de relatórios com Jasper Report  Controle de versões: SVN  Ant Build File Rosicléia Frasson - 2014
  • 2. Fundamentos da linguagem Java  Distribuições do Java Rosicléia Frasson - 2014
  • 3. Fundamentos da linguagem Java  Compilador e interpretador Java Rosicléia Frasson - 2014
  • 4. Fundamentos da linguagem Java  Java SE Rosicléia Frasson - 2014
  • 5. Fundamentos da linguagem Java  JDK X JRE  A JRE é o ambiente de execução Java para quem quer apenas executar programas escritos em Java.  É composta pela JVM e as APIs Java (coleção de componentes de software prontos, que incluem desde estruturas para manipulação de arquivos até a construção de aplicativos gráficos).  O JDK é o conjunto de ferramentas necessárias para o desenvolvimento de programas Java.  É composto pela JRE, javac (compilador), jar (empacotador) e o javadoc (documentação). Rosicléia Frasson - 2014
  • 6. Fundamentos da linguagem Java  IDE - Eclipse Rosicléia Frasson - 2014
  • 7. Fundamentos da linguagem Java  Gerenciamento de memória Java Rosicléia Frasson - 2014
  • 8. Fundamentos da linguagem Java  Garbage Collector Rosicléia Frasson - 2014
  • 9. Sintaxe da linguagem Java  Ponto e vírgula, blocos, espaços em branco e case-sensitive  Para uma melhor legibilidade do código, é interessante usar espaços, tabulações e novas linhas;  Um bloco é formado por uma ou mais instruções agrupadas entre chaves;  Os blocos podem ser organizados em estruturas aninhadas infinitamente;  Uma instrução é composta por uma ou mais linhas terminadas com um ponto-e-vírgula;  O Java é uma linguagem case-sensitive. Rosicléia Frasson - 2014 public class Exemplo { public static void main(String[] args) { int idade = 15; if (idade < 18){ int qtTempo = 18 - idade; System.out.println("Você não pode doar sangue. Espere " + qtTempo + " anos." ); } } }
  • 10. Sintaxe da linguagem Java  Palavras reservadas abstract assert boolean break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictpf super switch synchronized this throw throws transient try Rosicléia Frasson - 2014 void volatile while
  • 11. Sintaxe da linguagem Java  Tipos primitivos Classificação Tipo Tamanho lógico boolean 1 bit Rosicléia Frasson - 2014 inteiro byte 1 byte short 2 bytes int 4 bytes long 8 bytes ponto flutuante float 4 bytes double 8 bytes caracter char 2 bytes `
  • 12. Sintaxe da linguagem Java  Conversão entre tipos Rosicléia Frasson - 2014 `  Implicitamente: A JVM transforma em tempo de execução, quando acha conveniente, tipos restritos em tipos com maior amplitude.  Através de uma operação chamada casting ou conversão explícita DE: PARA: byte short char int long float double byte ----- implícito (char) implícito implícito implícito implícito short (byte) ----- (char) implícito implícito implícito implícito char (byte) (short) ----- implícito implícito implícito implícito int (byte) (short) (char) ----- implícito implícito implícito long (byte) (short) (char) (int) ----- implícito implícito float (byte) (short) (char) (int) (long) ----- implícito double (byte) (short) (char) (int) (long) (float) -----
  • 13. Sintaxe da linguagem Java  Declaração de variáveis tipo nome Valor inicial Rosicléia Frasson - 2014 double peso; int idade; char sexo; double salario = 1200.00; boolean ligado = true;
  • 14. Sintaxe da linguagem Java  Declaração de variáveis Rosicléia Frasson - 2014 Regras  Os nomes de variáveis em Java devem ser inicializados por uma letra, um cifrão ou por undescore;  Após o primeiro caracter, vale qualquer combinação de números, letras, underscore e cifrão;  Os identificadores não podem ter o nome igual ao de uma palavra reservada. int num;  int $num; int _num; int num1; int 1num; int NUM; compila?    X  int -num; X int num-av; X
  • 15. Sintaxe da linguagem Java  Declaração de variáveis Rosicléia Frasson - 2014 Convenções  O nome de uma variável deve ser escrito em letras minúsculas.  Caso o nome da variável seja uma palavra composta, a primeira letra a partir da segunda palavra deve ser escrita com letra maiúscula; String nome;  String NOME; String Nome; String nm_cliente; String nomeCliente; segue padrão? X X X 
  • 16. Sintaxe da linguagem Java  Declaração de variáveis Date data; //data de devolução do produto X Rosicléia Frasson - 2014 Convenções  O nome de uma variável deve ser significativo, indicando claramente o que a variável representa.  Se o nome de uma variável necessita de um comentário para explicar o porquê da sua existência, ele deve ser trocado. segue padrão? Date dataDevolucaoProduto;  Date dt; X
  • 17. Sintaxe da linguagem Java  Declaração de variáveis String cliente; X Rosicléia Frasson - 2014 Convenções  É indicado utilizar nomes que refletem o domínio em que o software será utilizado. segue padrão? String contribuinte;  String usuário; X
  • 18. Sintaxe da linguagem Java  Declaração de variáveis  * É uma sigla conhecida Rosicléia Frasson - 2014 Convenções  As abreviações e siglas devem ser usadas com cautela. Decifrar uma abreviação adiciona um tempo extra na execução de uma tarefa.  int uv; segue padrão? String cpf; String unidadeVenda; X
  • 19. Sintaxe da linguagem Java  Declaração de variáveis Rosicléia Frasson - 2014 Convenções  Nomes semelhantes devem ser evitados, pois podem confundir o desenvolvedor.  Não utilizar como identificadores nomes confusos que podem levar quem lê o código a conclusões erradas. double valorMultaNosDiasTranscorridos; segue padrão? double valorMultaPorDiasTranscorridos; double listaValoresPadraoMulta; X * Nomes semelhantes podem causar confusão. X X * A variável não representa uma lista.
  • 20. Sintaxe da linguagem Java  Declaração de variáveis Rosicléia Frasson - 2014 Convenções  Identificadores de variáveis devem ser escritos no singular, exceto quando a variável representar uma coleção de dados.  É indicado utilizar nomes pronunciáveis para facilitar a leitura e comunicação. double descontos. segue padrão? double [] valoresMultasAplicadas ; String dtVlProVen;  X X String dtValidadeProdutoVendido; 
  • 21. Sintaxe da linguagem Java  Declaração de variáveis Rosicléia Frasson - 2014 Convenções  É preferível declarar uma variável por linha, ao invés de várias na mesma linha. public class Funcionario { String nome, cpf, rg, orgaoEmissorRg, telefoneResidencial, celular, nrRegistroCNH, nomePai, nomeMae, nomeConjuge ; Date dataNascimento, dataAdmissao, dataRegistro, dataDemissao, dataVencimentoCNH, dataEmissaoRg; } public class Funcionario { String nome; Date dataNascimento; String cpf; String rg; String orgaoEmissorRg; Date dataEmissaoRg; String nomePai; String nomeMae; String nomeConjuge; String nrRegistroCNH; Date dataVencimentoCNH; String telefoneResidencial; String celular; Date dataAdmissao; Date dataRegistro; Date dataDemissao; } X 
  • 22. Sintaxe da linguagem Java  Entrada e saída de dados Classe Scanner e objeto System.in import java.util.Scanner; public class EntradaSaidaDadosConsole { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); Rosicléia Frasson - 2014 entrada.close(); } }
  • 23. Sintaxe da linguagem Java  Entrada e saída de dados Métodos Classe Scanner e objeto System.out System.out.println("Informe o seu nome: "); nome = entrada.nextLine(); System.out.println("Informe a sua idade: "); idade = entrada.nextInt(); System.out.println("Informe o seu peso: "); peso = entrada.nextDouble(); System.out.println(nome + ", você possui " + idade + " anos. "); System.out.print("Seu peso é "); System.out.printf("%.2f", peso); Rosicléia Frasson - 2014
  • 24. Sintaxe da linguagem Java  Operadores básicos . Referência a método, função ou atributo de um objeto. , Separador de identificadores. ; Finalizador de declarações e comandos. [ ] Declarador de vetores e delimitador de índices. { } Separador de blocos. ( ) Lista de parâmetros. = Operador de atribuição. Rosicléia Frasson - 2014
  • 25. Sintaxe da linguagem Java  Operadores lógicos Rosicléia Frasson - 2014 > Maior >= Maior ou igual < Menor <= Menor ou igual == Igual != Diferente && E || OU
  • 26. Sintaxe da linguagem Java  Operador condicional ternário condição ? caso verdadeiro : caso falso Scanner entrada = new Scanner(System.in); Rosicléia Frasson - 2014 double nota; System.out.println("Informe a nota do aluno: "); nota = entrada.nextDouble(); System.out.println(nota >= 7 ? " Aluno aprovado " : " Aluno reprovado");
  • 27. Sintaxe da linguagem Java  Operadores aritméticos Rosicléia Frasson - 2014 + Adição - Subtração * Multiplicação / Divisão % Módulo (resto da divisão)
  • 28. Sintaxe da linguagem Java  Operadores aritméticos  Divisão de números inteiros sempre resulta em um inteiro. int dividendo = 5; int divisor = 2; double quociente = dividendo / divisor; int dividendo = 5; int divisor = 2; double quociente = dividendo / (double) divisor; Rosicléia Frasson - 2014 quociente = 2 quociente = 2.5
  • 29. Sintaxe da linguagem Java  Operadores de incremento e decremento Rosicléia Frasson - 2014 Operador Exemplo Significado ++ ++x Incrementa a variável e depois usa. ++ x++ Usa a variável e depois incrementa. -- --x Decrementa a variável e depois usa. -- x-- Usa a variável e depois decrementa. int a = 5; int b = 3; int c = 4; int d = 7; System.out.println(a++); System.out.println(a); System.out.println(++b); System.out.println(b); System.out.println(c--); System.out.println(c); System.out.println(--d); System.out.println(d);
  • 30. Sintaxe da linguagem Java  Operadores de atribuição 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 Rosicléia Frasson - 2014
  • 31. Sintaxe da linguagem Java  Tipos primitivos e variáveis de referência Rosicléia Frasson - 2014
  • 32. Sintaxe da linguagem Java  Pool de Strings Rosicléia Frasson - 2014
  • 33. Sintaxe da linguagem Java  Classe String: métodos utilitários Rosicléia Frasson - 2014  equals  replace  trim  contains  lenght  toUpperCase  toLowerCase  charAt  substring  valueOf
  • 34. Sintaxe da linguagem Java  Transformação de Strings em tipos numéricos Rosicléia Frasson - 2014 int idade = Integer.parseInt(JOptionPane.showInputDialog("Informe sua idade: ")); double peso = Double.parseDouble(JOptionPane.showInputDialog("Informe o seu peso: ")); float altura = Float.parseFloat(JOptionPane.showInputDialog("Informe sua altura: ")); long matricula = Long.parseLong(JOptionPane.showInputDialog("Informe sua matrícula: "));
  • 35. Sintaxe da linguagem Java  Estruturas condicionais Rosicléia Frasson - 2014  Uma estrutura de condição avalia uma expressão booleana e com base no resultado (VERDADEIRO ou FALSO), o fluxo do algoritmo segue para um bloco de instruções ou não.
  • 36. Sintaxe da linguagem Java  Comando if ... else Rosicléia Frasson - 2014 if (expressão){ bloco de comandos } else{ bloco de comandos }
  • 37. Sintaxe da linguagem Java  Comando if ... else Rosicléia Frasson - 2014 import java.util.Scanner; public class CondicaoIfElse { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); System.out.println("Informe a média do aluno: "); double media = entrada.nextDouble(); if (media >= 7){ System.out.println("Aluno aprovado!"); }else if (media >= 4){ System.out.println("Aluno em recuperação!"); }else{ System.out.println("Aluno reprovado!"); } entrada.close(); } }
  • 38. Sintaxe da linguagem Java  Comando switch Rosicléia Frasson - 2014 switch (expressão){ case constante1: bloco de comandos; break; case constante2: bloco de comandos; break; ••• default: bloco de comandos; }
  • 39. Sintaxe da linguagem Java  Comando switch Rosicléia Frasson - 2014 switch (diaDaSemana) { case 1: System.out.println("Domingo"); break; case 2: System.out.println("Segunda-feira"); break; case 3: System.out.println("Terça-feira"); break; . . . case 7: System.out.println("Sábado"); break; default: System.out.println("Este não é um dia válido!"); }
  • 40. Sintaxe da linguagem Java  Estruturas de repetição  Uma estrutura de repetição permite que um programa execute um bloco de instruções repetidamente enquanto a condição do loop continue verdadeira. Rosicléia Frasson - 2014
  • 41. Sintaxe da linguagem Java  Comando for for (inicialização; condição; incremento){ Rosicléia Frasson - 2014 bloco de comandos; }
  • 42. Sintaxe da linguagem Java  Comando for public class RepeticaoFor { public static void main(String[] args) { for (int num = 0; num <=10; num++){ System.out.println(num); Rosicléia Frasson - 2014 } } }
  • 43. Sintaxe da linguagem Java  Comando while Rosicléia Frasson - 2014 while (condição){ bloco de comandos; }
  • 44. Sintaxe da linguagem Java  Comando while public class RepeticaoWhile { public static void main(String[] args) { Rosicléia Frasson - 2014 int num = 0; while (num <= 10 ){ System.out.println(num); num++; } } }
  • 45. Sintaxe da linguagem Java  Comando do ... while Rosicléia Frasson - 2014 do{ bloco de comandos; } while (condição);
  • 46. Sintaxe da linguagem Java  Comando do ... while import java.util.Scanner; public class RepeticaoDoWhile { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); Rosicléia Frasson - 2014 int num; do{ System.out.println("Informe um número: "); num = entrada.nextInt(); }while(num > 0); entrada.close(); } }
  • 47. Sintaxe da linguagem Java  Comando break  Ocasiona a saída imediata de uma instrução for, while, do ... while ou switch. public class ComandoBreak { public static void main (String args []){ for (int numero = 1; numero <= 1000; numero ++){ System.out.println("Número: "+ numero ); if (numero == 10) Rosicléia Frasson - 2014 break; } } }
  • 48. Sintaxe da linguagem Java  Comando continue  O comando continue ignora as instruções restantes no corpo do loop e prossegue para a próxima iteração do laço.  Pode ser utilizado nas estruturas de repetição for, while e do … while. public class ComandoContinue { public static void main(String[] args) { for (int num = 0; num <= 100; num ++){ if (num % 5 != 0){ Rosicléia Frasson - 2014 continue; } System.out.println(num); } } }
  • 49. Sintaxe da linguagem Java  Comentários  Comentário de uma linha: O uso de barra dupla marca o início do comentário que se estende até o fim da linha.  Comentário de várias linhas: Os delimitadores /* e */ indicam início e fim de um comentário e podem conter várias linhas.  Comentário javadoc: É utilizado para gerar a documentação javadoc e é delimitado pelas sequências de símbolos /** e */. Para gerar o javadoc é necessário que o comentário esteja localizado imediatamente antes da classe, atributo ou método documentado. Rosicléia Frasson - 2014
  • 50. Sintaxe da linguagem Java  Arrays String[] nome = new String[10]; 0 1 2 3 4 5 6 7 8 9 Rosicléia Frasson - 2014 nome[0] = "Maria"; 0 1 2 3 4 5 6 7 8 9 Maria
  • 51. Sintaxe da linguagem Java  Arrays Rosicléia Frasson - 2014 import java.util.Scanner; public class Vetor { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); String[] nome = new String[6]; for (int i = 0; i < 6; i++){ System.out.println("Informe o aluno " + i + " :"); nome[i] = entrada.nextLine(); } System.out.println("nAlunos: "); for(int i = 0; i < nome.length; i++){ System.out.println(nome[i]); } entrada.close(); } }
  • 52. Sintaxe da linguagem Java  Comando for each  Percorre uma coleção de dados sem a utilização de um contador explícito; for ( declaração: expressão){ bloco de comandos; Rosicléia Frasson - 2014 }  Na declaração é necessário indicar o tipo de dado presente no array ou coleção e atribuir um identificador;  A expressão consiste no array ou coleção que deve ser percorrida;  A avaliação da expressão deve resultar em um objeto que implementa a interface Iterable - Collections - ou em uma instância de array.
  • 53. Sintaxe da linguagem Java  Comando for each public class ComandoForAprimorado { public static void main(String[] args) { Rosicléia Frasson - 2014 int somaNumeros = 0; int [] numeros = {87, 45, 65, 32, 44, 26, 7, 90}; for(int numero: numeros) somaNumeros += numero; System.out.println("Soma dos elementos do vetor: " + somaNumeros); } }
  • 54. Programação Orientada a Objetos Organização POO Rosicléia Frasson - 2014 Lógica de negócio encapsulada Simplicidade Alinhamento com o modelo de negócio Flexibilidade Redução da quantidade de código
  • 55. Programação Orientada a Objetos  Princípios POO Rosicléia Frasson - 2014
  • 56. Programação Orientada a Objetos  Objetos Rosicléia Frasson - 2014 Funcionário Jessica Funcionário Márcio Cupom fiscal Augusto Cupom fiscal Fernando Gerente João Supermercado Cliente Augusto Cliente Fernando Produto despertador Produto queijo Produto torrada
  • 57. Programação Orientada a Objetos  Classe Funcionários Rosicléia Frasson - 2014 Matrícula: 1234 Nome: João da Silva Sexo: M Matrícula: 2678 Nome: Joana Monteiro Sexo: F Matrícula: 9876 Nome: Marcio Oliveira Sexo: M - Recebe aumento - Troca turno Classe Atributos Métodos
  • 58. Programação Orientada a Objetos  Classe Rosicléia Frasson - 2014  Representação UML
  • 59. Programação Orientada a Objetos  Classe Rosicléia Frasson - 2014  Classe Java
  • 60. Programação Orientada a Objetos  Atributos Rosicléia Frasson - 2014
  • 61. Programação Orientada a Objetos  Métodos Assinatura do método = nome do método + lista de parâmetros Rosicléia Frasson - 2014
  • 62. Programação Orientada a Objetos  Métodos Os métodos com parâmetros quando invocados, obrigam o invocador a fornecer um argumento do tipo apropriado para cada um dos parâmetros declarados pelo método. Rosicléia Frasson - 2014
  • 63. Programação Orientada a Objetos  Métodos Quando um método é invocado, o fluxo de execução passa para o método invocado e os comandos deste são executados em sequência. Um método retorna ao invocador em uma das três condições:  execução de um comando return;  o bloco de execução acaba nos casos dos métodos void;  uma exceção não capturada é lançada. Rosicléia Frasson - 2014
  • 64. Programação Orientada a Objetos  Métodos Rosicléia Frasson - 2014
  • 65. Programação Orientada a Objetos  Sobrecarga de métodos  Também conhecida por overloading;  Permite a existência de dois ou mais métodos com o mesmo nome, porém com variação de quantidade, tipo ou ordem de parâmetros;  Na invocação do método, o compilador escolhe o método que deve ser executado comparando os argumentos enviados com os parâmetros do método. Rosicléia Frasson - 2014
  • 66. Programação Orientada a Objetos  Sobrecarga de métodos Rosicléia Frasson - 2014
  • 67. Programação Orientada a Objetos  Instâncias de classes  O new aloca espaço para armazenar os campos do objeto e os inicializa.  Quando a inicialização está completa, o sistema de execução retorna uma referência ao novo objeto. Rosicléia Frasson - 2014
  • 68. Programação Orientada a Objetos  Instâncias de classes Rosicléia Frasson - 2014 CÓDIGO JAVA Produto p1 = new Produto( ); Produto p2 = new Produto( ); Produto p3; STACK p1 @314955ec p2 @896674ae p3 null HEAP p1 p2
  • 69. Programação Orientada a Objetos  Métodos equals e toString  O método toString retorna uma String que textualmente representa o objeto.  O método equals faz a comparação entre dois objetos e retorna o valor true se ambos ocuparem o mesmo espaço de memória. Rosicléia Frasson - 2014 (p1.equals(p)) p.toString(); (p1.equals(p)) p.toString();
  • 70. Programação Orientada a Objetos  Construtor  A palavra chave new executa o construtor da classe.  Um construtor é um bloco declarado com o mesmo nome da classe, seguida por uma lista de parâmetros entre parênteses.  Um construtor não possui valor de retorno.  Em uma classe em que não existe um construtor declarado, a JVM cria implicitamente um construtor default. Rosicléia Frasson - 2014 (p1.equals(p)) p.toString();
  • 71. Programação Orientada a Objetos  Construtor Rosicléia Frasson - 2014 (p1.equals(p)) p.toString();
  • 72. Programação Orientada a Objetos  Construtor Rosicléia Frasson - 2014 (p1.equals(p)) p.toString();
  • 73. Programação Orientada a Objetos  Construtor Rosicléia Frasson - 2014 (p1.equals(p)) p.toString();
  • 74. Programação Orientada a Objetos  Métodos varargs public double calculaValorVenda (double ... precosProdutos){ double valorTotal = 0; for (double preco : precosProdutos) { valorTotal += preco; Rosicléia Frasson - 2014 } return valorTotal; }
  • 75. Programação Orientada a Objetos  Atributos estáticos Classe Produto p1 p2 p3 Rosicléia Frasson - 2014 codigo: 1 nome: “arroz” preco: 2.30 codigo: 2 nome: “farinha ” preco: 1.97 codigo: 3 nome: “feijão” preco: 4.35 Variáveis de instância totalProdutos = 3 Variável estática
  • 76. Programação Orientada a Objetos  Atributos estáticos Rosicléia Frasson - 2014
  • 77. Programação Orientada a Objetos  Constantes Rosicléia Frasson - 2014
  • 78. Programação Orientada a Objetos  Métodos estáticos  Métodos estáticos pertencem a uma classe e não a uma instância da mesma.  Métodos estáticos só podem operar sobre atributos estáticos.  Métodos que realizam procedimentos sem estarem vinculados a um objeto. Rosicléia Frasson - 2014
  • 79. Programação Orientada a Objetos  Métodos estáticos Rosicléia Frasson - 2014
  • 80. Programação Orientada a Objetos  Classe Math  Disponibiliza uma série de operações e constantes matemáticas. Math.PI - Constante PI Math.pow(a, b) - Potência na forma ab Math.sqrt(a) - Raiz quadrada de a Math.cbrt(a) - Raiz cúbica de a Math.abs(a) - Retorna o valor absoluto de a Math.min(a, b) - Retorna o menor valor Math.max(a, b) - Retorna o maior valor Math.ceil(a) - Arredonda para cima Math.floor(a) - Arrenda para baixo Rosicléia Frasson - 2014
  • 81. Programação Orientada a Objetos  Enum  É um tipo que corresponde a um conjunto fixo de constantes.  Os ENUMs tornam o código mais explícito, mais legível, e menos vulnerável a erros de programação.  Seguindo a convenção de constantes, o identificador é escrito com todas as letras em maiúsculas. Rosicléia Frasson - 2014
  • 82. Programação Orientada a Objetos  Enum Rosicléia Frasson - 2014
  • 83. Programação Orientada a Objetos  Enum Rosicléia Frasson - 2014 Os enums podem ser declarados internamente em uma classe.
  • 84. Programação Orientada a Objetos  Composição Rosicléia Frasson - 2014
  • 85. Programação Orientada a Objetos  Composição Rosicléia Frasson - 2014
  • 86. Programação Orientada a Objetos Rosicléia Frasson - 2014  Pacotes  Possuem como objetivo agrupar classes de funcionalidades semelhantes ou relacionadas.  Um pacote é um diretório onde ficam armazenadas classes, interfaces, subpacotes e arquivos de recursos adicionais, como imagens, usados pelas classes do pacote.  Os pacotes são correspondentes as bibliotecas em outras linguagens de programação.
  • 87. Programação Orientada a Objetos  Declaração de pacotes  Nomes de pacotes devem ser compostos exclusivamente por letras minúsculas, não importando a quantidade de palavras que o mesmo contenha;  Os nomes de pacotes devem ser relativos a empresa que desenvolveu os mesmos.  Geralmente é utilizada a nomeação reversa de domínios, onde o início do nome do pacote é dado pela ordem inversa do nome do domínio da instituição na internet. Rosicléia Frasson - 2014
  • 88. Programação Orientada a Objetos  Declaração de pacotes  As classes devem possuir como primeira instrução a indicação do pacote a que pertencem.  A instrução começa com a palavra chave package, seguida pelo caminho do pacote delimitado por pontos. package br.com.nomeempresa.sintaxeBasica;  Classes que não possuem a instrução package pertencem ao pacote default. Rosicléia Frasson - 2014
  • 89. Programação Orientada a Objetos javax.swing.JOptionPane.showMessageDialog(null, "Exemplo utilização de nome plenamente qualificado do tipo"); Rosicléia Frasson - 2014  Importação de classes  Nome plenamente qualificado  Importação de pacotes import javax.swing.JOptionPane; public class Pacote { public static void main(String[] args) { JOptionPane.showMessageDialog(null, "Exemplo utilização de importação de pacote"); } }
  • 90. Programação Orientada a Objetos Rosicléia Frasson - 2014  Pacotes JSE Pacote Funcionalidade java.lang Fornece classes que são fundamentais para a concepção da linguagem Java. É importado automaticamente. java.util Pacote utilitário. Fornece classes para trabalhar com coleções, entrada de dados (Scanner) e componentes de data e hora. java.awt Fornece classes para definir interfaces gráficas com o usuário. javax.swing Extensão do pacote java.awt. java.io Fornece classes para realizar operações de entrada e saída de dados através do sistema de fluxo de dados (streams) e serialização de objetos . java.sql Classes para acesso a base de dados via JDBC.
  • 91. Programação Orientada a Objetos  Encapsulamento  Consiste em ocultar detalhes da implementação de um objeto do meio externo.  Apenas as funcionalidades que são importantes para as classes externas devem ser visíveis. A POO recomenda que o estado de um objeto não deve ser acessado diretamente por classes externas. Rosicléia Frasson - 2014
  • 92. Programação Orientada a Objetos  Modificadores de acesso Rosicléia Frasson - 2014
  • 93. Programação Orientada a Objetos  Modificadores de acesso Rosicléia Frasson - 2014  public  protected  default  private
  • 94. Programação Orientada a Objetos  Modificadores de acesso Rosicléia Frasson - 2014 public Membro acessível a qualquer objeto Use para: • Construtores e métodos que devem ser acessíveis para outras classes; • Métodos e constantes estáticas. Não use para: • Construtores e métodos de uso restrito; • Campos de dados de objetos.
  • 95. Programação Orientada a Objetos  Modificadores de acesso Rosicléia Frasson - 2014 protected Membro acessível a subclasses e classes do mesmo pacote. Use para: • Construtores que só devem ser chamados pelas subclasses; • Métodos que só devem ser usados se sobrepostos. Não use para: • Métodos com restrições a sobreposição • Campos de dados de objetos.
  • 96. Programação Orientada a Objetos  Modificadores de acesso Rosicléia Frasson - 2014 default Ausência de modificador.  Membro acessível a classes do mesmo pacote. Use para: • Construtores e métodos que só devem ser chamados pelas classes do mesmo pacote; • Constantes estáticas úteis apenas dentro do pacote. Não use para: • Métodos cujo uso externo seja indesejado; • Campos de dados de objetos.
  • 97. Programação Orientada a Objetos  Modificadores de acesso Rosicléia Frasson - 2014 private Membro acessível apenas dentro da própria classe. Use para: • Métodos que não devem ser acessados por membros externos; • Campos de dados de objetos;
  • 98. Programação Orientada a Objetos  Gets e sets  Quando é usado o modificador de acesso private em um atributo, não é possível acessá-lo em outra classe. Para alterar ou recuperar o valor do mesmo, é necessário escrever dois métodos de acesso, um que retorna o valor e outro que muda o valor.  A convenção para estes métodos é colocar a palavra get ou set antes do nome do produto. Rosicléia Frasson - 2014
  • 99. Programação Orientada a Objetos  Gets e sets Rosicléia Frasson - 2014
  • 100. Programação Orientada a Objetos  Gets e sets Rosicléia Frasson - 2014
  • 101. Programação Orientada a Objetos  Herança  O mecanismo de herança permite uma hierarquia entre classes;  As subclasses herdam as características e comportamentos das superclasses; O relacionamento de herança é do tipo É UM. Rosicléia Frasson - 2014
  • 102. Programação Orientada a Objetos  Herança Pessoa Jurídica Fabricante Fornecedor Rosicléia Frasson - 2014
  • 103. Programação Orientada a Objetos  Herança public class PessoaJuridica { } public class Fabricante extends PessoaJuridica{ } public class Fornecedor extends PessoaJuridica{ Rosicléia Frasson - 2014 }
  • 104. Programação Orientada a Objetos  Sobrescrita de métodos  A sobrescrita de métodos é o mecanismo que permite a alteração do comportamento de uma superclasse pelas suas subclasses, ou seja, a sobrescrita de um método é uma nova implementação para o mesmo.  A sobrescrita de um método ocorre somente se a assinatura do mesmo permanece intacta, isto é, o tipo de retorno e os parâmetros devem ser os mesmos. Rosicléia Frasson - 2014
  • 105. Programação Orientada a Objetos  Sobrescrita de métodos Rosicléia Frasson - 2014
  • 106. Programação Orientada a Objetos  Sobrescrita de métodos  Métodos sobrepostos nunca podem ter menos acesso que os métodos originais; ƒ Se método original for public, novas versões têm que ser public; ƒ Se método original for protected, novas versões podem ser protected ou public; ƒ Se método original não tiver modificador , novas versões podem ser declaradas sem modificador de acesso, com modificador protected ou public; ƒ Se método original for private, ele não será visível da subclasse e portanto, jamais poderá ser estendido. Rosicléia Frasson - 2014
  • 107. Programação Orientada a Objetos  Modificador final  Impede que uma classe seja extendida; Impede que um método seja sobrescrito. Rosicléia Frasson - 2014
  • 108. Programação Orientada a Objetos  Polimorfismo  O polimorfismo permite que objetos de múltiplos tipos sejam referenciados como se fossem do tipo de sua superclasse.  Mecanismo que garante que quando um método é invocado por meio de uma referência a superclasse, em tempo de execução, a versão correta do método da subclasse é executada. Rosicléia Frasson - 2014
  • 109. Programação Orientada a Objetos  Classe abstrata  Uma classe abstrata não pode ser instanciada.  As classes abstratas possuem métodos concretos e métodos abstratos. Os métodos abstratos são compostos apenas pela assinatura, ou seja, não possuem implementação.  Quando uma subclasse concreta extende uma classe abstrata, todos os métodos abstratos obrigatoriamente devem ser implementados. Rosicléia Frasson - 2014
  • 110. Programação Orientada a Objetos  Classe abstrata Rosicléia Frasson - 2014
  • 111. Programação Orientada a Objetos  Classe abstrata Rosicléia Frasson - 2014
  • 112. Programação Orientada a Objetos  Interface  Possui como propósito forçar uma subclasse a reescrever todos os métodos abstratos, definindo um comportamento para o mesmo. As interfaces possuem apenas métodos abstratos.  Uma interface não possui atributos. Apenas variáveis estáticas e constantes. A implementação de uma interface por uma classe indica um relacionamento do tipo É UM com a interface. Uma classe pode implementar mais de uma interface. Rosicléia Frasson - 2014
  • 113. Programação Orientada a Objetos  Interface Rosicléia Frasson - 2014
  • 114. Programação Orientada a Objetos  Interface Rosicléia Frasson - 2014
  • 115. Programação Orientada a Objetos  Classes Wrappers Rosicléia Frasson - 2014
  • 116. Programação Orientada a Objetos  Classes Wrappers  Fornecem um mecanismo para empacotar valores primitivos em um tipo objeto, para que estes sejam inclusos em atividades reservadas a objetos; Fornecem um conjunto de funções utilitárias para os tipos primitivos como as conversões de tipos primitivos em String e vice-versa. Rosicléia Frasson - 2014
  • 117. Programação Orientada a Objetos  Classes Wrappers  As classes Wrappers , exceto a Character, possuem dois construtores: um que recebe o tipo primitivo correspondente como argumento e o outro que recebe uma String como argumento. Double d1 = new Double(1.0); Double d2 = new Double("1.0"); Integer i1 = new Integer(3); Integer i2 = new Integer("6"); Rosicléia Frasson - 2014
  • 118. Programação Orientada a Objetos  Classes Wrappers  As classes Wrappers fornecem métodos para conversão de uma String em um tipo primitivo correspondente. int idade = Integer.parseInt(JOptionPane.showInputDialog ("Informe a idade"));  Cada classe wrapper fornece um método que retorna o tipo primitivo por ela encapsulado. Rosicléia Frasson - 2014 Integer a; int b = a.intValue();
  • 120. Collections  Listas: java.util.List Uma lista é uma coleção que permite elementos duplicados e mantém uma ordenação específica entre os elementos.  Os elementos ficam dispostos na lista na ordem em que foram inseridos.  A lista resolve os problemas do array: tamanho infinito, inserção, remoção. Rosicléia Frasson - 2014
  • 121. Collections  Listas: java.util.List ArrayList<String> arrayList = new ArrayList(); LinkedList<String> linkedList = new LinkedList(); Vector<String> vector = new Vector(); Rosicléia Frasson - 2014
  • 122. Collections  Listas O método add adiciona um elemento no fim da lista. Rosicléia Frasson - 2014 lista.add(p); System.out.println(lista.size()); O método size retorna a quantidade de elementos que a lista possui.
  • 123. Collections  Listas: Array List Rosicléia Frasson - 2014 lista.remove(p); lista.contains(p); O método remove retira um elemento da lista. O método contains verifica se um elemento está na lista.
  • 124. Collections  Listas: Array List  O ArrayList possui acesso aleatório aos seus elementos. Sendo assim, a busca de um elemento é feita de forma imediata, sem que a lista inteira seja percorrida. Rosicléia Frasson - 2014
  • 125. Collections  Método sort  O método sort recebe um List como argumento e ordena em ordem crescente. arrayList.add("Ana"); arrayList.add("Maria"); arrayList.add("Joana"); arrayList.add("Zenilda"); arrayList.add("Karla"); Collections.sort(arrayList); Para efetuar a ordenação um objeto precisa implementar a interface Comparable que define o método compareTo. Rosicléia Frasson - 2014
  • 126. Collections  Métodos Collections  binarySearch(List, Object): Realiza uma busca binária por determinado elemento na lista ordenada e retorna sua posição ou um número negativo, caso não encontrado. arrayList.add("Ana"); arrayList.add("Maria"); arrayList.add("Joana"); arrayList.add("Zenilda"); arrayList.add("Karla"); int indice = Collections.binarySearch(arrayList, "Maria"); System.out.println(indice); Rosicléia Frasson - 2014
  • 127. Collections  Métodos Collections  max(Collection): Retorna o maior elemento da coleção. ArrayList numeros = new ArrayList(); numeros.add(1); numeros.add(4); numeros.add(56); numeros.add(7); int maior = Collections.max(numeros); System.out.println("Maior: "+ maior); Rosicléia Frasson - 2014
  • 128. Collections  Métodos Collections  min(Collection): Retorna o menor elemento da coleção. ArrayList numeros = new ArrayList(); numeros.add(-1); numeros.add(4); numeros.add(-56); numeros.add(-7); int menor = Collections.min(numeros); System.out.println("Menor: "+ menor); Rosicléia Frasson - 2014
  • 129. Collections  Métodos Collections reverse(List): Inverte a lista. arrayList.add("Ana"); arrayList.add("Maria"); arrayList.add("Joana"); arrayList.add("Zenilda"); arrayList.add("Karla"); Collections.reverse(arrayList); Rosicléia Frasson - 2014
  • 130. Collections  java.util.Set  Um conjunto Set não permite elementos duplicados.  Os elementos possuem uma forma especial de ordenação. Collection<Integer> numeros = new HashSet(); numeros.add(1); numeros.add(5); numeros.add(66); Rosicléia Frasson - 2014
  • 131. Collections  Performance List X Set Collection<Integer> colecao = new HashSet<Integer>(); long tempoInicial = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { Rosicléia Frasson - 2014 colecao.add(i); } for (int i = 0; i < 100000; i++) { colecao.contains(i); } long tempoFinal = System.currentTimeMillis(); System.out.printf("Tempo em milisegundos: ", (tempoFinal - tempoInicial));
  • 132. Exceptions  Stacktrace Rosicléia Frasson - 2014 terceiroMetodo segundoMetodo primeiroMetodo main Pilha de execução Método com erro
  • 134. Exceptions  Tratamento de exceção  O Java possui dois tipos de exceções: unchecked: o compilador não checa se a exceção está sendo tratada. checked: o compilador checa se a exceção está devidamente tratada. Rosicléia Frasson - 2014
  • 135. Exceptions  Tratamento de exceção Rosicléia Frasson - 2014
  • 136. Exceptions  Tratamento de exceção Rosicléia Frasson - 2014
  • 137. Exceptions  Criação de um tipo de exceção Rosicléia Frasson - 2014
  • 138. Java.io  API Java.io  Consiste em uma hierarquia de classes responsáveis pelo controle de entrada e saída de dados. Rosicléia Frasson - 2014
  • 139. Java.io  Classe File  A classe File lida diretamente com arquivos e sistema de arquivos. Rosicléia Frasson - 2014
  • 140. Java.io  Classe File  A classe File também possibilita a criação de arquivos e diretórios, bem como a remoção dos mesmos. Rosicléia Frasson - 2014
  • 141. IO  Fluxo de bytes Rosicléia Frasson - 2014  Saída de dados
  • 142. IO  Fluxo de bytes Rosicléia Frasson - 2014  Entrada de dados
  • 144. IO  Fluxo de caracteres  O fluxo de caracteres foi adicionado no Java 5 e fornecem um meio para entrada e saída de caracteres.  As classes abstratas Reader e Writer representam as superclasses da hierarquia de classes responsáveis pelo fluxo de caracteres.  Reader é usada para leitura de dados e Writer para saída.  As classes da hierarquia trabalham com caracteres Unicode. Rosicléia Frasson - 2014
  • 145. IO  Classe Reader Rosicléia Frasson - 2014
  • 146. IO  Classe Reader Rosicléia Frasson - 2014
  • 147. IO  Classe Writer Rosicléia Frasson - 2014
  • 148. IO  Classe Writer Rosicléia Frasson - 2014
  • 149. Banco de dados e JDBC Rosicléia Frasson - 2014  Modelo relacional
  • 150. Banco de dados e JDBC Rosicléia Frasson - 2014  Modelo relacional  Entidades : São objetos do mundo real dentro do domínio da aplicação.  Atributos: São as propriedades que descrevem as entidades.  Chaves: São atributos ou conjuntos de atributos que permitem identificar sem ambiguidade cada instância de uma entidade, ou seja, garante a distinção entre as ocorrências das entidades.  Relacionamentos: São associações entre duas entidades ou entre uma entidade e ela mesma.
  • 151. Banco de dados e JDBC Rosicléia Frasson - 2014  Relacionamentos  Um-para-um
  • 152. Banco de dados e JDBC Rosicléia Frasson - 2014  Relacionamentos  Um-para-muitos
  • 153. Banco de dados e JDBC Rosicléia Frasson - 2014  Relacionamentos  Muitos para muitos
  • 154. Banco de dados e JDBC Rosicléia Frasson - 2014  SQL SQL Strutured Query Language DDL Data Definition Language DML Data Manipulation Language
  • 155. Banco de dados e JDBC  SQL - DDL (Data Definition Language) Rosicléia Frasson - 2014
  • 156. Banco de dados e JDBC  SQL - DML (Data Manipulation Language) Rosicléia Frasson - 2014
  • 157. Banco de dados e JDBC Rosicléia Frasson - 2014
  • 158. Banco de dados e JDBC Rosicléia Frasson - 2014