programação desktop - apresentação
DESCRIPTION
Programação DesktopTRANSCRIPT
![Page 1: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/1.jpg)
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
![Page 2: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/2.jpg)
Fundamentos da linguagem Java
Distribuições do Java
Rosicléia Frasson - 2014
![Page 3: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/3.jpg)
Fundamentos da linguagem Java
Compilador e interpretador Java
Rosicléia Frasson - 2014
![Page 4: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/4.jpg)
Fundamentos da linguagem Java
Java SE
Rosicléia Frasson - 2014
![Page 5: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/5.jpg)
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
![Page 6: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/6.jpg)
Fundamentos da linguagem Java
IDE - Eclipse
Rosicléia Frasson - 2014
![Page 7: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/7.jpg)
Fundamentos da linguagem Java
Gerenciamento de memória Java
Rosicléia Frasson - 2014
![Page 8: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/8.jpg)
Fundamentos da linguagem Java
Garbage Collector
Rosicléia Frasson - 2014
![Page 9: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/9.jpg)
Sintaxe da linguagem Java
Ponto e vírgula, blocos, espaços em branco e case-sensitive
Rosicléia Frasson - 2014
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.
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." );
}}
}
![Page 10: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/10.jpg)
Sintaxe da linguagem Java
Palavras reservadas
Rosicléia Frasson - 2014
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
void volatile while
![Page 11: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/11.jpg)
Sintaxe da linguagem Java
Tipos primitivos
Rosicléia Frasson - 2014
Classificação Tipo Tamanho
lógico boolean 1 bit
inteiro
byte 1 byteshort 2 bytesint 4 byteslong 8 bytes
ponto flutuantefloat 4 bytes
double 8 bytes
caracter char 2 bytes
`
![Page 12: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/12.jpg)
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) -----
![Page 13: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/13.jpg)
Sintaxe da linguagem Java
Declaração de variáveis
Rosicléia Frasson - 2014
double peso;
int idade;
char sexo;
tipo nome Valor inicial
double salario = 1200.00;
boolean ligado = true;
![Page 14: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/14.jpg)
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
![Page 15: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/15.jpg)
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
![Page 16: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/16.jpg)
Sintaxe da linguagem Java
Declaração de variáveis
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.
Date dataDevolucaoProduto;
segue padrão?
XDate data; //data de devolução do produto
Date dt; X
![Page 17: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/17.jpg)
Sintaxe da linguagem Java
Declaração de variáveis
Rosicléia Frasson - 2014
Convenções
É indicado utilizar nomes que refletem o domínio em que o software será utilizado.
String contribuinte;
segue padrão?
XString cliente;
String usuário; X
![Page 18: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/18.jpg)
Sintaxe da linguagem Java
Declaração de variáveis
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
* É uma sigla conhecida
![Page 19: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/19.jpg)
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.
![Page 20: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/20.jpg)
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
String dtValidadeProdutoVendido;
X
![Page 21: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/21.jpg)
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
![Page 22: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/22.jpg)
Sintaxe da linguagem Java
Entrada e saída de dados
Rosicléia Frasson - 2014
Classe Scanner e objeto System.inimport java.util.Scanner;public class EntradaSaidaDadosConsole {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
entrada.close();}
}
![Page 23: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/23.jpg)
Sintaxe da linguagem Java
Entrada e saída de dados
Rosicléia Frasson - 2014
Métodos Classe Scanner e objeto System.outSystem.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);
![Page 24: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/24.jpg)
Sintaxe da linguagem Java
Operadores básicos
Rosicléia Frasson - 2014
. 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.
![Page 25: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/25.jpg)
Sintaxe da linguagem Java
Operadores lógicos
Rosicléia Frasson - 2014
> Maior>= Maior ou igual< Menor
<= Menor ou igual== Igual!= Diferente
&& E|| OU
![Page 26: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/26.jpg)
Sintaxe da linguagem Java
Operador condicional ternário
Rosicléia Frasson - 2014
Scanner entrada = new Scanner(System.in);
double nota;
System.out.println("Informe a nota do aluno: ");nota = entrada.nextDouble();
System.out.println(nota >= 7 ? " Aluno aprovado " : " Aluno reprovado");
condição ? caso verdadeiro : caso falso
![Page 27: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/27.jpg)
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)
![Page 28: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/28.jpg)
Sintaxe da linguagem Java
Operadores aritméticos
Rosicléia Frasson - 2014
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;
quociente = 2
quociente = 2.5
![Page 29: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/29.jpg)
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);
![Page 30: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/30.jpg)
Sintaxe da linguagem Java
Operadores de atribuição
Rosicléia Frasson - 2014
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
![Page 31: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/31.jpg)
Sintaxe da linguagem Java
Tipos primitivos e variáveis de referência
Rosicléia Frasson - 2014
![Page 32: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/32.jpg)
Sintaxe da linguagem Java
Pool de Strings
Rosicléia Frasson - 2014
![Page 33: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/33.jpg)
Sintaxe da linguagem Java
Classe String: métodos utilitários
Rosicléia Frasson - 2014
equals replace trim contains lenght toUpperCase toLowerCase charAt substring valueOf
![Page 34: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/34.jpg)
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: "));
![Page 35: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/35.jpg)
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.
![Page 36: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/36.jpg)
Sintaxe da linguagem Java
Comando if ... else
Rosicléia Frasson - 2014
if (expressão){
bloco de comandos
} else{
bloco de comandos
}
![Page 37: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/37.jpg)
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();
}}
![Page 38: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/38.jpg)
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;}
![Page 39: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/39.jpg)
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!");}
![Page 40: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/40.jpg)
Sintaxe da linguagem Java
Estruturas de repetição
Rosicléia Frasson - 2014
Uma estrutura de repetição permite que um programa execute um bloco de instruções repetidamente enquanto a condição do loop continue verdadeira.
![Page 41: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/41.jpg)
Sintaxe da linguagem Java
Comando for
Rosicléia Frasson - 2014
for (inicialização; condição; incremento){ bloco de comandos;}
![Page 42: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/42.jpg)
Sintaxe da linguagem Java
Comando for
Rosicléia Frasson - 2014
public class RepeticaoFor {
public static void main(String[] args) {
for (int num = 0; num <=10; num++){
System.out.println(num);}
}}
![Page 43: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/43.jpg)
Sintaxe da linguagem Java
Comando while
Rosicléia Frasson - 2014
while (condição){
bloco de comandos;
}
![Page 44: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/44.jpg)
Sintaxe da linguagem Java
Comando while
Rosicléia Frasson - 2014
public class RepeticaoWhile {
public static void main(String[] args) {
int num = 0;
while (num <= 10 ){
System.out.println(num);num++;
}}
}
![Page 45: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/45.jpg)
Sintaxe da linguagem Java
Comando do ... while
Rosicléia Frasson - 2014
do{
bloco de comandos;
} while (condição);
![Page 46: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/46.jpg)
Sintaxe da linguagem Java
Comando do ... while
Rosicléia Frasson - 2014
import java.util.Scanner;public class RepeticaoDoWhile {
public static void main(String[] args) {Scanner entrada = new
Scanner(System.in);
int num;do{
System.out.println("Informe um número: ");
num = entrada.nextInt();
}while(num > 0);
entrada.close();}
}
![Page 47: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/47.jpg)
Sintaxe da linguagem Java
Comando break
Rosicléia Frasson - 2014
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)break;
}}
}
![Page 48: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/48.jpg)
Sintaxe da linguagem Java
Comando continue
Rosicléia Frasson - 2014
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){continue;
}
System.out.println(num);}
}}
![Page 49: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/49.jpg)
Sintaxe da linguagem Java
Comentários
Rosicléia Frasson - 2014
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.
![Page 50: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/50.jpg)
Sintaxe da linguagem Java
Arrays
Rosicléia Frasson - 2014
String[] nome = new String[10];
0 1 2 3 4 5 6 7 8 9
nome[0] = "Maria";
0 1 2 3 4 5 6 7 8 9
Maria
![Page 51: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/51.jpg)
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();}
}
![Page 52: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/52.jpg)
Sintaxe da linguagem Java
Comando for each
Rosicléia Frasson - 2014
Percorre uma coleção de dados sem a utilização de um contador explícito;
for ( declaração: expressão){ bloco de comandos;}
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.
![Page 53: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/53.jpg)
Sintaxe da linguagem Java
Comando for each
Rosicléia Frasson - 2014
public class ComandoForAprimorado {
public static void main(String[] args) {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);
}}
![Page 54: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/54.jpg)
Programação Orientada a Objetos
Rosicléia Frasson - 2014
POO
Organização
Lógica de negócio encapsulada
SimplicidadeAlinhamento com o modelo de negócio
Flexibilidade
Redução da quantidade de
código
![Page 55: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/55.jpg)
Programação Orientada a Objetos
Princípios POO
Rosicléia Frasson - 2014
![Page 56: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/56.jpg)
Programação Orientada a Objetos
Objetos
Rosicléia Frasson - 2014
Funcionário Jessica Funcionário
Márcio
Cupom fiscal Augusto
Cupom fiscalFernando
Gerente João
Supermercado
Cliente Augusto
Cliente Fernando
Produto despertador
Produto queijo
Produto torrada
![Page 57: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/57.jpg)
Programação Orientada a Objetos
Classe
Rosicléia Frasson - 2014
Funcionários
Matrícula: 1234Nome: João da Silva
Sexo: M
Matrícula: 2678Nome: Joana Monteiro
Sexo: F
Matrícula: 9876Nome: Marcio Oliveira
Sexo: M
- Recebe aumento- Troca turno
ClasseAtributos Métodos
![Page 58: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/58.jpg)
Programação Orientada a Objetos
Classe
Rosicléia Frasson - 2014
Representação UML
![Page 59: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/59.jpg)
Programação Orientada a Objetos
Classe
Rosicléia Frasson - 2014
Classe Java
![Page 60: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/60.jpg)
Programação Orientada a Objetos
Atributos
Rosicléia Frasson - 2014
![Page 61: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/61.jpg)
Programação Orientada a Objetos
Métodos
Rosicléia Frasson - 2014
Assinatura do método = nome do método + lista de parâmetros
![Page 62: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/62.jpg)
Programação Orientada a Objetos
Métodos
Rosicléia Frasson - 2014
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.
![Page 63: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/63.jpg)
Programação Orientada a Objetos
Métodos
Rosicléia Frasson - 2014
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.
![Page 64: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/64.jpg)
Programação Orientada a Objetos
Métodos
Rosicléia Frasson - 2014
![Page 65: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/65.jpg)
Programação Orientada a Objetos
Sobrecarga de métodos
Rosicléia Frasson - 2014
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.
![Page 66: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/66.jpg)
Programação Orientada a Objetos
Sobrecarga de métodos
Rosicléia Frasson - 2014
![Page 67: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/67.jpg)
Programação Orientada a Objetos
Instâncias de classes
Rosicléia Frasson - 2014
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.
![Page 68: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/68.jpg)
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;
STACKp1 @314955ec
p2 @896674ae
p3 null
HEAP
p1
p2
![Page 69: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/69.jpg)
Programação Orientada a Objetos
Métodos equals e toString
Rosicléia Frasson - 2014
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.
(p1.equals(p))p.toString();
(p1.equals(p)) p.toString();
![Page 70: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/70.jpg)
Programação Orientada a Objetos
Construtor
Rosicléia Frasson - 2014
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.
(p1.equals(p))p.toString();
![Page 71: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/71.jpg)
Programação Orientada a Objetos
Construtor
Rosicléia Frasson - 2014
(p1.equals(p))p.toString();
![Page 72: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/72.jpg)
Programação Orientada a Objetos
Construtor
Rosicléia Frasson - 2014
(p1.equals(p))p.toString();
![Page 73: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/73.jpg)
Programação Orientada a Objetos
Construtor
Rosicléia Frasson - 2014
(p1.equals(p))p.toString();
![Page 74: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/74.jpg)
Programação Orientada a Objetos
Métodos varargs
Rosicléia Frasson - 2014
public double calculaValorVenda (double ... precosProdutos){ double valorTotal = 0; for (double preco : precosProdutos) { valorTotal += preco; } return valorTotal;}
![Page 75: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/75.jpg)
Programação Orientada a Objetos
Atributos estáticos
Rosicléia Frasson - 2014
Classe Produto
codigo: 1nome: “arroz”preco: 2.30
codigo: 2nome: “farinha ”preco: 1.97
codigo: 3nome: “feijão”preco: 4.35
p1 p2 p3
Variáveis de instância
totalProdutos = 3 Variável estática
![Page 76: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/76.jpg)
Programação Orientada a Objetos
Atributos estáticos
Rosicléia Frasson - 2014
![Page 77: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/77.jpg)
Programação Orientada a Objetos
Constantes
Rosicléia Frasson - 2014
![Page 78: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/78.jpg)
Programação Orientada a Objetos
Métodos estáticos
Rosicléia Frasson - 2014
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.
![Page 79: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/79.jpg)
Programação Orientada a Objetos
Métodos estáticos
Rosicléia Frasson - 2014
![Page 80: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/80.jpg)
Programação Orientada a Objetos
Classe Math
Rosicléia Frasson - 2014
Math.PI - Constante PIMath.pow(a, b) - Potência na forma ab
Math.sqrt(a) - Raiz quadrada de aMath.cbrt(a) - Raiz cúbica de aMath.abs(a) - Retorna o valor absoluto de aMath.min(a, b) - Retorna o menor valorMath.max(a, b) - Retorna o maior valorMath.ceil(a) - Arredonda para cimaMath.floor(a) - Arrenda para baixo
Disponibiliza uma série de operações e constantes matemáticas.
![Page 81: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/81.jpg)
Programação Orientada a Objetos
Enum
Rosicléia Frasson - 2014
É 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.
![Page 82: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/82.jpg)
Programação Orientada a Objetos
Enum
Rosicléia Frasson - 2014
![Page 83: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/83.jpg)
Programação Orientada a Objetos
Enum
Rosicléia Frasson - 2014
Os enums podem ser declarados
internamente em uma classe.
![Page 84: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/84.jpg)
Programação Orientada a Objetos
Composição
Rosicléia Frasson - 2014
![Page 85: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/85.jpg)
Programação Orientada a Objetos
Composição
Rosicléia Frasson - 2014
![Page 86: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/86.jpg)
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.
![Page 87: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/87.jpg)
Programação Orientada a Objetos
Rosicléia Frasson - 2014
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.
![Page 88: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/88.jpg)
Programação Orientada a Objetos
Rosicléia Frasson - 2014
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.
Classes que não possuem a instrução package pertencem ao pacote default.
package br.com.nomeempresa.sintaxeBasica;
![Page 89: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/89.jpg)
Programação Orientada a Objetos
Rosicléia Frasson - 2014
Importação de classes Nome plenamente qualificado
Importação de pacotes
javax.swing.JOptionPane.showMessageDialog(null, "Exemplo utilização de nome plenamente qualificado do tipo");
import javax.swing.JOptionPane;public class Pacote { public static void main(String[] args) { JOptionPane.showMessageDialog(null, "Exemplo utilização de importação de pacote"); }}
![Page 90: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/90.jpg)
Programação Orientada a Objetos
Rosicléia Frasson - 2014
Pacotes JSEPacote Funcionalidadejava.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.
![Page 91: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/91.jpg)
Programação Orientada a Objetos
Encapsulamento
Rosicléia Frasson - 2014
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.
![Page 92: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/92.jpg)
Programação Orientada a Objetos
Modificadores de acesso
Rosicléia Frasson - 2014
![Page 93: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/93.jpg)
Programação Orientada a Objetos
Modificadores de acesso
Rosicléia Frasson - 2014
public
protected
default
private
![Page 94: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/94.jpg)
Programação Orientada a Objetos
Modificadores de acesso
Rosicléia Frasson - 2014
publicMembro 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.
![Page 95: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/95.jpg)
Programação Orientada a Objetos
Modificadores de acesso
Rosicléia Frasson - 2014
protectedMembro 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.
![Page 96: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/96.jpg)
Programação Orientada a Objetos
Modificadores de acesso
Rosicléia Frasson - 2014
defaultAusê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.
![Page 97: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/97.jpg)
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;
![Page 98: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/98.jpg)
Programação Orientada a Objetos
Gets e sets
Rosicléia Frasson - 2014
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.
![Page 99: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/99.jpg)
Programação Orientada a Objetos
Gets e sets
Rosicléia Frasson - 2014
![Page 100: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/100.jpg)
Programação Orientada a Objetos
Gets e sets
Rosicléia Frasson - 2014
![Page 101: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/101.jpg)
Programação Orientada a Objetos
Herança
Rosicléia Frasson - 2014
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.
![Page 102: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/102.jpg)
Programação Orientada a Objetos
Herança
Rosicléia Frasson - 2014
Pessoa Jurídica
Fabricante Fornecedor
![Page 103: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/103.jpg)
Programação Orientada a Objetos
Herança
Rosicléia Frasson - 2014
public class Fornecedor extends PessoaJuridica{
}
public class Fabricante extends PessoaJuridica{
}
public class PessoaJuridica {
}
![Page 104: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/104.jpg)
Programação Orientada a Objetos
Sobrescrita de métodos
Rosicléia Frasson - 2014
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.
![Page 105: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/105.jpg)
Programação Orientada a Objetos
Sobrescrita de métodos
Rosicléia Frasson - 2014
![Page 106: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/106.jpg)
Programação Orientada a Objetos
Sobrescrita de métodos
Rosicléia Frasson - 2014
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.
![Page 107: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/107.jpg)
Programação Orientada a Objetos
Modificador final
Rosicléia Frasson - 2014
Impede que uma classe seja extendida;
Impede que um método seja sobrescrito.
![Page 108: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/108.jpg)
Programação Orientada a Objetos
Polimorfismo
Rosicléia Frasson - 2014
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.
![Page 109: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/109.jpg)
Programação Orientada a Objetos
Classe abstrata
Rosicléia Frasson - 2014
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.
![Page 110: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/110.jpg)
Programação Orientada a Objetos
Classe abstrata
Rosicléia Frasson - 2014
![Page 111: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/111.jpg)
Programação Orientada a Objetos
Classe abstrata
Rosicléia Frasson - 2014
![Page 112: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/112.jpg)
Programação Orientada a Objetos
Interface
Rosicléia Frasson - 2014
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.
![Page 113: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/113.jpg)
Programação Orientada a Objetos
Interface
Rosicléia Frasson - 2014
![Page 114: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/114.jpg)
Programação Orientada a Objetos
Interface
Rosicléia Frasson - 2014
![Page 115: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/115.jpg)
Programação Orientada a Objetos
Classes Wrappers
Rosicléia Frasson - 2014
![Page 116: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/116.jpg)
Programação Orientada a Objetos
Classes Wrappers
Rosicléia Frasson - 2014
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.
![Page 117: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/117.jpg)
Programação Orientada a Objetos
Classes Wrappers
Rosicléia Frasson - 2014
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");
![Page 118: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/118.jpg)
Programação Orientada a Objetos
Classes Wrappers
Rosicléia Frasson - 2014
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.
Integer a;int b = a.intValue();
![Page 119: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/119.jpg)
Collections
Rosicléia Frasson - 2014
![Page 120: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/120.jpg)
Collections
Listas: java.util.List
Rosicléia Frasson - 2014
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.
![Page 121: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/121.jpg)
Collections
Listas: java.util.List
Rosicléia Frasson - 2014
ArrayList<String> arrayList = new ArrayList();
LinkedList<String> linkedList = new LinkedList();
Vector<String> vector = new Vector();
![Page 122: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/122.jpg)
Collections
Listas
Rosicléia Frasson - 2014
lista.add(p);
System.out.println(lista.size());
O método add adiciona um elemento no fim da lista.
O método size retorna a quantidade de elementos que a
lista possui.
![Page 123: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/123.jpg)
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.
![Page 124: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/124.jpg)
Collections
Listas: Array List
Rosicléia Frasson - 2014
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.
![Page 125: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/125.jpg)
Collections
Método sort
Rosicléia Frasson - 2014
O método sort recebe um List como argumento e ordena em ordem crescente.
Para efetuar a ordenação um objeto precisa implementar a interface Comparable que define o método compareTo.
arrayList.add("Ana");arrayList.add("Maria");arrayList.add("Joana");arrayList.add("Zenilda");arrayList.add("Karla");
Collections.sort(arrayList);
![Page 126: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/126.jpg)
Collections
Métodos Collections
Rosicléia Frasson - 2014
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);
![Page 127: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/127.jpg)
Collections
Métodos Collections
Rosicléia Frasson - 2014
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);
![Page 128: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/128.jpg)
Collections
Métodos Collections
Rosicléia Frasson - 2014
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);
![Page 129: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/129.jpg)
Collections
Métodos Collections
Rosicléia Frasson - 2014
reverse(List): Inverte a lista.
arrayList.add("Ana");arrayList.add("Maria");arrayList.add("Joana");arrayList.add("Zenilda");arrayList.add("Karla");
Collections.reverse(arrayList);
![Page 130: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/130.jpg)
Collections
java.util.Set
Rosicléia Frasson - 2014
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);
![Page 131: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/131.jpg)
Collections
Performance List X Set
Rosicléia Frasson - 2014
Collection<Integer> colecao = new HashSet<Integer>();long tempoInicial = System.currentTimeMillis();for (int i = 0; i < 100000; i++) {
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));
![Page 132: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/132.jpg)
Exceptions
Stacktrace
Rosicléia Frasson - 2014
main
primeiroMetodo
segundoMetodo
terceiroMetodo
Pilha de execução
Método com erro
![Page 133: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/133.jpg)
Exceptions
Rosicléia Frasson - 2014
![Page 134: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/134.jpg)
Exceptions
Tratamento de exceção
Rosicléia Frasson - 2014
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.
![Page 135: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/135.jpg)
Exceptions
Tratamento de exceção
Rosicléia Frasson - 2014
![Page 136: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/136.jpg)
Exceptions
Tratamento de exceção
Rosicléia Frasson - 2014
![Page 137: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/137.jpg)
Exceptions
Criação de um tipo de exceção
Rosicléia Frasson - 2014
![Page 138: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/138.jpg)
Java.io
API Java.io
Rosicléia Frasson - 2014
Consiste em uma hierarquia de classes responsáveis pelo controle de entrada e saída de dados.
![Page 139: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/139.jpg)
Java.io
Classe File
Rosicléia Frasson - 2014
A classe File lida diretamente com arquivos e sistema de arquivos.
![Page 140: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/140.jpg)
Java.io
Classe File
Rosicléia Frasson - 2014
A classe File também possibilita a criação de arquivos e diretórios, bem como a remoção dos mesmos.
![Page 141: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/141.jpg)
IO
Fluxo de bytes
Rosicléia Frasson - 2014
Saída de dados
![Page 142: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/142.jpg)
IO
Fluxo de bytes
Rosicléia Frasson - 2014
Entrada de dados
![Page 143: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/143.jpg)
IO
Rosicléia Frasson - 2014
![Page 144: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/144.jpg)
IO
Fluxo de caracteres
Rosicléia Frasson - 2014
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.
![Page 145: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/145.jpg)
IO
Classe Reader
Rosicléia Frasson - 2014
![Page 146: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/146.jpg)
IO
Classe Reader
Rosicléia Frasson - 2014
![Page 147: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/147.jpg)
IO
Classe Writer
Rosicléia Frasson - 2014
![Page 148: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/148.jpg)
IO
Classe Writer
Rosicléia Frasson - 2014
![Page 149: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/149.jpg)
Banco de dados e JDBC
Rosicléia Frasson - 2014
Modelo relacional
![Page 150: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/150.jpg)
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.
![Page 151: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/151.jpg)
Banco de dados e JDBC
Rosicléia Frasson - 2014
Relacionamentos
Um-para-um
![Page 152: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/152.jpg)
Banco de dados e JDBC
Rosicléia Frasson - 2014
Relacionamentos
Um-para-muitos
![Page 153: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/153.jpg)
Banco de dados e JDBC
Rosicléia Frasson - 2014
Relacionamentos
Muitos para muitos
![Page 154: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/154.jpg)
Banco de dados e JDBC
Rosicléia Frasson - 2014
SQLSQL
Strutured Query Language
DDL Data Definition Language
DMLData Manipulation
Language
![Page 155: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/155.jpg)
Banco de dados e JDBC
Rosicléia Frasson - 2014
SQL - DDL (Data Definition Language)
![Page 156: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/156.jpg)
Banco de dados e JDBC
Rosicléia Frasson - 2014
SQL - DML (Data Manipulation Language)
![Page 157: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/157.jpg)
Banco de dados e JDBC
Rosicléia Frasson - 2014
![Page 158: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/158.jpg)
Banco de dados e JDBC
Rosicléia Frasson - 2014
![Page 159: Programação desktop - apresentação](https://reader033.vdocuments.com.br/reader033/viewer/2022061613/5584cc35d8b42af8138b4d95/html5/thumbnails/159.jpg)
SVN
Rosicléia Frasson - 2014