Buscar

introJava

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
1
Programação JAVAProgramação JAVA
Professor: Ciro Meneses Santos
Bibliografia:
----------------
Santos, Ciro M. Desenvolvimento de Aplicações Comerciais com Java e NetBeans 
– Editora Ciência Moderna – 2010.
DEITEL, H. M., Deitel, P.J., Java Como Programar. 4 Ed. Bookman 2005
HORSTMANN, Cay S., CORNELL., Core Java 2 – Volume I – Fundamentos –
Makron Books – 2003.
HORSTMANN, Cay S., CORNELL., Core Java 2 – Volume I – Recursos Avançados –
Makron Books – 2003.SUN MICROSYSTEMS, Serviços Educacionais SUN –
2002
Curos de Java - http://www.sdsi.uri.br/geoob/
2
JVMJCF
eclipse
IBM
SUN
java
IDEJ2EE
RTTI
J2ME
J2SE
plug-inJRE
AWT
swing
GUIAPI
bytecodes
JIT
JDBC
SQL
MySQL
javac
NetBeans
C
C++
class
atributos
method
construtor
polimorfismo
herança
sobrecarga
Java Beans
JAR
OLE
EJB
JSP
Servlet
JTS
JTA
oracle
JAVA
3
NetBeansNetBeans
NetBeansNetBeansNetBeansNetBeans IDEIDEIDEIDE éééé umumumum conjuntoconjuntoconjuntoconjunto dededede bibliotecas,bibliotecas,bibliotecas,bibliotecas, módulosmódulosmódulosmódulos eeee APIsAPIsAPIsAPIs....
formandoformandoformandoformando umumumum ambienteambienteambienteambiente integradointegradointegradointegrado dededede desenvolvimentodesenvolvimentodesenvolvimentodesenvolvimento visualvisualvisualvisual
possibilitandopossibilitandopossibilitandopossibilitando aoaoaoao desenvolvedordesenvolvedordesenvolvedordesenvolvedor complilar,complilar,complilar,complilar, debugar,debugar,debugar,debugar, efetuarefetuarefetuarefetuar
deployingdeployingdeployingdeploying dededede suassuassuassuas aplicaçõesaplicaçõesaplicaçõesaplicações ....
ÉÉÉÉ umumumum produtoprodutoprodutoproduto openopenopenopen source,source,source,source, 100100100100%%%% JavaJavaJavaJava eeee possuipossuipossuipossui váriosváriosváriosvários módulosmódulosmódulosmódulos
dededede expansãoexpansãoexpansãoexpansão (modules),(modules),(modules),(modules), quequequeque podempodempodempodem serserserser baixadosbaixadosbaixadosbaixados dodododo própriopróprioprópriopróprio
sitesitesitesite
http://www.netbeans.org
4
DESENVOLVIMENTO DE APLICAÇÕES 
COMERCIAIS COM JAVA E NETBEANS
A TECNOLOGIA JAVA
5
IntroduçãoIntrodução
O Paradoxo da Tecnologia de Informação
Fatores Humanos no Desenvolvimento e Uso de
Software
Usabilidade
Utilidade
Produtividade
Robustez
Qual a interface mais utilizada pelo maior
número de segmentos de mercado que usam
computador no mundo ?
6
Tecnologia JavaTecnologia Java
Uma linguagem de programação
Um ambiente de desenvolvimento
Um ambiente de aplicações
Um ambiente de distribuição
JVM, J2SDK, J2EE, J2ME
Proporcione um ambiente interpretado para:
Aumentar a velocidade do desenvolvimento
Permitir a portabilidade do código
2
7
Características da Características da 
Linguagem Linguagem 
Compilada: Um programa em JAVA é compilado para
o chamado “bytecode”, que é próximo as instruções de
máquina. O “bytecode” é um código de máquina
virtual idealizada pelos criadores da linguagem.
Os “bytecodes” são instruções em código de máquina
para a JVM máchine.
Portável: O “bytecodes” gerado pelo compilador para a
sua aplicação especifica pode ser transportado entre
plataformas distintas que supertam JAVA.
Orientada a Objetos: Java é uma Linguagem
puramente orientada à objetos, tudo em Java são
classes ou instância de uma classe, abstração,
encapsulamento e hereditariedade.
Java não suporta herança múltipla que pode ser
compensada pelo uso de herança e interfaces.
8
Características da Características da 
Linguagem Linguagem 
Segurança: A presença de coleta automática de lixo,
evita erros comuns que os programadores cometem
quando são obrigados a gerenciar diretamente a
memória. Coletor de Lixo.
Strongly typed também é uma vantagem em termos
de segurança, que está aliada a eliminação de
conversões implícitas de tipos
Tratamento de exceções torna as aplicações mais
robustas, não permitindo que elas abortem, mesmo
quando rodando sob condições anormais.
Suporte concorrência: A linguagem permite a criação
de maneira fácil, de vários “threads” Multithreading
de execução, úteis e animações e processamento
paralelo real.
9
Fundamentos da POO
� A POO se fundamenta em 5 mecanismos:
� Abstração
capacidade de representação
� Identidade
coexistência de múltiplas entidades
� Encapsulamento
ocultação de detalhes
� Herança
criação de relações hierárquicas
� Polimorfismo
admissão de múltiplas formas 10
Classes e Objetos
Classes
� Modelos ou conceitos 
abstratos para definir 
famílias de objetos.
� Podem ser 
interligadas 
estabelecendo 
hierarquias ou 
relações.
� São tipos de dados 
definidos pelo 
programador.
Objetos
� Representantes
de uma classe,
são entidades 
concretas.
� Elementos que 
podem ser 
distinguidos dos 
demais objetos de 
sua classe ou de 
outras.
� Sempre pertencem 
a uma classe.
11
Estrutura das Classes
� Classes determinam 
características e capacidades 
que descrevem certos objetos.
MétodosMétodos
CamposCampos
C
la
ss
e
� Características são variáveis 
da classe, que denominamos 
campos ou variáveis-membro.
� Capacidades são funções da 
classe, que chamamos 
funções-membro ou métodos.
12
Objetos
� São entidades 
representantes de 
uma classe.
� Possuem uma 
estrutura de campos 
individual, tal como 
especificada pela 
classe, onde são 
armazenadas suas 
características 
próprias.
� Compartilham o 
código dos métodos 
declarados pela 
classe, mas tais 
métodos atuam sobre 
os dados individuais 
de cada objeto.
� Acionar métodos é 
como comandar um 
objeto através de 
mensagens.
3
13
Objetos
� Objetos são criados 
dinamicamente 
(instanciação) através 
de um operador 
especial new.
� Criação aciona os 
construtores.
� Podemos atribuir um 
nome para os objetos 
criados (uma 
referência).
� Grande parte das 
tarefas de 
gerenciamento de 
memória são realizadas 
pelo JavaJava.
� Objetos não 
referenciados são 
eliminados pelo “Coletor 
de Lixo” (Garbage 
Collector) que efetua a 
reciclagem de memória.
14
A Java Virtual Machine Specification fornece as
especificações da plataforma de hardware para as
você compila os códigos da tecnologia Java. Essa
especificação permite que o software Java seja
independente da plataforma porque a compilação é
feita para uma máquina genérica conhecida como
JVM machine. Você pode emular essa JMV por
software, para que ela seja executada em diversos
sistemas de computadores existentes, ou
implementado no hardware.
A Java Virtual MachineA Java Virtual Machine
Fornece especificações da plataforma de 
hardware
Lê bytecodos compilados, que são 
independentes de plataforma.
15
A Java Virtual MachineA Java Virtual Machine
A maior parte da verificação de tipos é feita 
quando o código compilado
O formato de código da JVM machine 
consiste de bytecodes compactos e 
eficientes, devem manter uma disciplina de 
tipos.
Qualquer interpretador compatível com a 
tecnologia Java deve ser capaz de executar 
qualquer programa que tenha arquivos de 
classes compatíveis.
16
A operação do JREA operação do JRE
Java Runtime EnvironmentJava Runtime Environment
TestHelloWorld.java
javac
TestHelloWorld.classe
Carregador
de classes
Verificador de
bytecodes
Interpretador
Runtime
Hardware
Compilar
RunTime
Carga a 
partir do disco
rígido, da rede
ou de outra 
fonte
java
17
Roteiro de Programação
Editor ASCII
Arquivo
.java
Compilador Java
(javac)
Arquivo
.class JVM - Máquina Virtual Java
(java)
Carregamento
Verificação
Interpretação
Compilação JIT
Execução18
ComentáriosComentários
O Java aceita três tipos de comentários: de uma 
linha, de múltiplas linhas e de documentação
// comentário de uma linha
/* comentário
de múltiplas linhas */
/** comentário de documentação 
* também pode ter múltiplas linhas
*****************************/
4
19
Declaração de variáveis: As variáveis só podem 
armazenar valores de um mesmo tipo
Tipos de variáveis: númericos, literais, ponto flutuante 
int, float, double, char, void, 
declare: 
nome-do-tipo lista-de-id ;
onde:
• nome-do-tipo é uma das palavras chave dos 
tipos de variáreis
• lista-de-id são os nomes escolhidos para as 
variáveis:
int max, min, change, _sys_var1;
char nome, endereco; 
Itens Fundamentais Itens Fundamentais 
20
Palavras ReservadasPalavras Reservadas
abstract do implements private throw 
boolean double import protected byte 
break else instanceof public transient 
extends int return true case 
false interface short try catch 
final long static void char 
finally native super volatile class 
float new switch while continue 
for null synchronized default if 
21
Operadores AritméticosOperadores Aritméticos
Operador Ação
+ Soma (inteiro e ponto flutuante – IPF)
- Subtração ou troca de sinal – IPF
* Multiplicação – IPF
/ Divisão – IPF
% Resto de divisão (inteiro)
- Sinal Negativo (-unário)
++ Incremento – IPF
-- Decremento – IPF
22
Operadores Relacionais e AtribuiçãoOperadores Relacionais e Atribuição
Operador Ação
> Maior do que
>= Maior ou igual a 
< Menor do que
<= Menor ou igual a
== Igual a
!= Diferente de
+= a+=10 → a = a + 10
*= a*=10 → a = a * 10
-= a-=10 → a = a – 10
/= a/=10 → a = a / 10
%= a%=10 → a = a % 10
23
Trabalhando com JavaTrabalhando com Java
Arquivo: Exemplo1.java
public class Exemplo1 {
}
public static void main (String args [] ){
}
System.out.println(”Alo Pessoal!");
24
JJanelas ou anelas ou ccaixa de aixa de 
diálogosdiálogos
As caixas de diálogos são janelas que em geral são 
utilizadas para exibir mensagens importantes para o 
usuário de um aplicativo. 
A class JOptionPane permite que você exiba 
facilmente uma caixa de diálogo contendo 
informações chamada diálogo de mensagem.
O método showMessageDialog é usado para 
apresentar um texto e esperar por uma confirmação 
do usuário.
O método showInputDialog é usado para criar uma 
janela com uma pergunta, que deve ser respondida 
pelo usuário em um campo de texto.
5
25
JOptionPaneJOptionPane
Objeto 
JOptionPane
Import 
import javax.swing.JOptionPane
Propriedade 
JoptionPane.showInputDialog(“Mensagem”)
JoptionPane.showMessageDialog(null,“Msg1”,”Msg2”,Icone)
null ( componente pai, utilizado para especificar a posição de criação da janela)
Msg1 (Mensagem interna)
Msg2 (Mensagem da barra de titulo)
Icone (Valor padrão que representam icons de mensagems )
26
Tipo de diálogo de Tipo de diálogo de 
mensagemmensagem
JOptionPane.
ERRO_MESSAGE
diálogo que indica um erro 
para o usuário do aplicativo
JOptionPane.
INFORMATION_MESSAGE
diálogo informacional para o 
usuário do aplicativo
JOptionPane.
WARNING_MESSAGE
diálogo que adverte o usuário 
do aplicativo
JOptionPane.
QUESTION_MESSAGE
diálogo que informa uma 
pergunta para o usuário
JOptionPane.
PLAIN_MESSAGE
diálogo simples com msg sem 
icone para o usuário do 
aplicativo
27
Botões de JanelaBotões de Janela
DEFAULT_OPTION Botão OK
YES_NO_OPTION Botões de Yes e No
YES_NO_CANCEL_OPTION Botões Yes, No e Cancel
OK_CANCEL_OPTION Botões Ok e Cancel
28
Line NumberLine Number
29
FerramentasFerramentas
30
ÁreaÁrea de de trabalhotrabalho
Projeto 
Área de 
Desenvolvimento
Navegador
Saida
6
31
ProjetoProjeto
32
ProjetoProjeto
33
ProjetoProjeto
publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid mainmainmainmain (((( String[]String[]String[]String[] argsargsargsargs ))))
AAAA palavrapalavrapalavrapalavra publicpublicpublicpublic significasignificasignificasignifica permitirpermitirpermitirpermitir quequequeque oooo métodométodométodométodo sejasejasejaseja acessadoacessadoacessadoacessado
porporporpor qualquerqualquerqualquerqualquer outraoutraoutraoutra classeclasseclasseclasse....
AAAA palavrapalavrapalavrapalavra staticstaticstaticstatic éééé utilizada,utilizada,utilizada,utilizada, quandoquandoquandoquando oooo métodométodométodométodo sósósósó existeexisteexisteexiste emememem umaumaumauma
classe,classe,classe,classe, aoaoaoao invésinvésinvésinvés umumumum paraparaparapara cadacadacadacada objetoobjetoobjetoobjeto....
AAAA palavrapalavrapalavrapalavra voidvoidvoidvoid éééé utilizadautilizadautilizadautilizada quandoquandoquandoquando oooo métodométodométodométodo nãonãonãonão retornaretornaretornaretorna
nenhumnenhumnenhumnenhum valorvalorvalorvalor....
OOOO métodométodométodométodo mainmainmainmain.... RepresentaRepresentaRepresentaRepresenta oooo métodométodométodométodo principal,principal,principal,principal, oooo primeiroprimeiroprimeiroprimeiro aaaa
serserserser executadoexecutadoexecutadoexecutado pelapelapelapela máquinamáquinamáquinamáquina virtualvirtualvirtualvirtual;;;; aaaa partirpartirpartirpartir destedestedestedeste métodométodométodométodo éééé quequequeque
umaumaumauma aplicaçãoaplicaçãoaplicaçãoaplicação éééé executadaexecutadaexecutadaexecutada....
34
Aplicação JavaAplicação Java
01 // Test intro1 Aplicação
02 public class intro1 {
03 public static void main(String[] args){ 
04 System.out.println("Hello Java 2006!");
05 int a = 10;
06 int b = 20;
07 a*=3;
08 int c = a+b;
09 System.out.println("A="+a+"B="+b+"C="+c); 
10 }
11} 
intro1.java
35
Aplicação JavaAplicação Java
public static void main (String[] args )
A função main é o lugar onde o programa começa a execução
public – O método main() pode ser acessado por qualquer coisa,
inclusive pelo interpretador da tecnologia Java.
static – Esta palavra chave diz ao compilador que o método
main() pode ser usado no contexto da classe. Nenhuma 
instância da classe é necessária para executar métodos 
estáticos.
void – Esta palavra chave indica que o método main() não 
retorna nenhum valor.
A palavra chave static declara que o atributo ou método está 
associado a uma classe como um todo, e não como uma instância
36
Operadores LógicosOperadores Lógicos
Operador Ação
&& AND (E)
|| OR (OU) 
! NOT (NÂO)
A B A && B A || B
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
7
37
CONTROLES DE FLUXOCONTROLES DE FLUXO
inicialização;
while (condição) { 
sequencia de instruções ;
inc/dec;
}
for(inicialização; condição; 
inc/dec) {
sequencia de instruções ;
}
res = (condicao)? s1 : s2 ;
if ( condição ) {
sequencias de instruções ;
}else{
sequncias de instruções;
}
int a,x;
switch (x) { 
case 1 : a=1;
break;
case 2 : a=2;
break;
case 3 : a=3;
break;
default : a=10;
}
int vet1[] = {10,20,30,40,50};
int vet2[] = new int[5];
for (int i=0; i < 5; i++) { 
vet2[i] = vet1[i];
System.out.println(vet2[i]);
}
38
Estrutura CondicionalEstrutura Condicional
Estrutura condicional simples
if ( condição ) {
sequencias de instruções ;
}
sequencias
de
instruções
fimse
verdadeiro
falso
condição é composto de:
id operador-relacional id
>, <, >=, <=, ==, !=
if 
a condição b
39
Estrutura Condicional Estrutura Condicional composto
sequencia
de
instruções
fimse
F
if 
a condição b
sequencia
de
instruções
V
if ( condição ) {
sequencias de instruções ;
}else{
sequncias de instruções;
}
res = (condicao)? s1 : s2 ;Ternário:
40
Aplicação JavaAplicação Java
01 // Test intro2 Aplicação
02 public class intro2 {
03 public static void main(String[] args){
04 int a = 10;
05 int b = 20;
06 if (a > b )
07 System.out.println("A maior que B"); 
08 else
09 System.out.println("B maior que A"); 
10 }
11} 
intro2.java
41
Aplicação JavaAplicação Java
01 // Test intro3 Aplicação
02 public class intro3 {
03 public static void main(String[] args){
04 int a = 10;
05 int b = 20;
06 m = (a > b )? a : b;
07 System.out.println("Maior valor = "+m); 
08 }
10 } 
intro3.java
42
Estrutura CondicionalEstrutura Condicional
switch (exp_ordinal) {
case ord : instrução;
break;
case ord : instrução;
break;
case ord : instrução;
break;
default : instrução;
}
int a,x;
switch (x) {
case 1 : a=1;
break;
case 2 : a=2;
break;
case 3 : a=3;
break;
default : a=10;
}
8
43
Aplicação JavaAplicação Java
public class intro4 {
public static void main(String[] args){
int a = 4;
switch(a){
case 1: System.out.println("Domingo"); 
break; 
case 2: System.out.println("Segunda"); 
break; 
case 3: System.out.println("Terca"); break; 
case 4: System.out.println("Quarta"); break; 
case 5: System.out.println("Quinta"); break; 
case 6: System.out.println("Sexta"); break; 
case 7: System.out.println("Sabado"); break; 
default: System.out.println("NDA"); 
}
System.out.println("Valor = "+a); 
}
}
intro4.java
44
Estrutura de RepetiçãoEstrutura de Repetição
sequencia
de
instruções
fimse
V
inicialização
F
if 
a condição b
inc/dec
45
Estrutura de RepetiçãoEstrutura de Repetição
inicialização;
while (condição) {
sequencia de instruções ;
inc/dec;
}
for(inicialização; condição; inc/dec) {
sequencia de instruções ;
}
inicialização;
do{
sequencia de instruções ;
inc/dec;
}while (condição);
46
Aplicação JavaAplicação Java
public class intro5 {
public static void main(String[] args){
for(int i=0; i < 10; i++)
System.out.println(i);
for(int j=10; j > 5; j--)
System.out.println(j); 
for(int k=0; ; k++){
if(k > 5 )
break; 
System.out.println(k);
} 
for(int a=0, b=5; b < 8; a++, b++)
System.out.println("A = "+a+" B = "+b);
}
}
intro5.java
47
Aplicação JavaAplicação Java
public class intro6 {
public static void main(String[] args){
int i = 0; 
while (i < 10){
System.out.println(i);
i++;
} 
int j = 10;
while (j > 5) {
System.out.println(j);
j--;
} 
int k=0; 
while (true ){
if(k > 5 )
break; 
System.out.println(k);
k++;
} } }
intro6.java
48
Aplicação JavaAplicação Java
public class intro7 {
public static void main(String[] args){
do{ 
System.out.println(i);
i++;
}while (i < 10);
int j = 10;
do {
System.out.println(j);
j--; 
}while (j > 5);
int k=0; 
do{
if(k > 5 )
break; 
System.out.println(k);
k++;
}while (true ); 
} } 
intro7.java
9
49
Aplicação JavaAplicação Java
class Laco {
Laco(){
int i = 1;
do{
int m = i % 2;
i++;
if (m == 0) { continue; }
if (i == 10){ break; }
System.out.println(i-1);
}while(i<20);
} 
}
public class testLaco {
public static void main(String[] args){
Laco l = new Laco();
} }
testLaco.java
50
Aplicação JavaAplicação Java
public class intro8 {
public static void main(String[] args){
String v1 = "10";
String v2 = "5";
System.out.println("Valor sem conversao de tipos");
System.out.println(v1+v2);
int x = Integer.parseInt(v1);
int y = Integer.parseInt(v2);
System.out.println("Valor com conversao de tipos");
System.out.println(x+y);
} 
} 
intro8.java
51
Aplicação JavaAplicação Java
public class exWhile {
public static void main(String[] args){
int j = 10;
while ( j > Integer.parseInt(args[0])){
System.out.println(""+j);
j--;
}
}
}
exSwitch.java
52
Aplicação JavaAplicação Java
A palavra chave static é utilizada como modificador de variáveis, 
métodos e classes.
String[] args – Esse método declara um único parâmetro para o 
método main, args, e tem o tipo de um array String. Quando esse 
método é chamado, o parâmetro args contêm os argumentos 
digitado após o nome da classe.
Greeting hello = new Greeting();
Esta linha de instrução mostra como criar um objeto, referenciado 
pela variável hello.
hello.greet();
Esta linha demonstra uma chamada de método do objeto.
53
JJanelas ou anelas ou ccaixa de aixa de 
diálogosdiálogos
As caixas de diálogos são janelas que em geral são 
utilizadas para exibir mensagens importantes para o 
usuário de um aplicativo. 
A class JOptionPane permite que você exiba 
facilmente uma caixa de diálogo contendo 
informações chamada diálogo de mensagem.
O método showMessageDialog é usado para 
apresentar um texto e esperar por uma confirmação 
do usuário.
O método showInputDialog é usado para criar uma 
janela com uma pergunta, que deve ser respondida 
pelo usuário em um campo de texto.
54
JOptionPaneJOptionPane
Objeto 
JOptionPane
Import 
import javax.swing.JOptionPane
Propriedade 
JoptionPane.showInputDialog(“Mensagem”)
JoptionPane.showMessageDialog(null,“Msg1”,”Msg2”,Icone)
null ( componente pai, utilizado para especificar a posição de criação da janela)
Msg1 (Mensagem interna)
Msg2 (Mensagem da barra de titulo)
Icone (Valor padrão que representam icons de mensagems )
10
55
Tipo de diálogo de Tipo de diálogo de 
mensagemmensagem
JOptionPane.
ERRO_MESSAGE
diálogo que indica um erro 
para o usuário do aplicativo
JOptionPane.
INFORMATION_MESSAGE
diálogo informacional para o 
usuário do aplicativo
JOptionPane.
WARNING_MESSAGE
diálogo que adverte o usuário 
do aplicativo
JOptionPane.
QUESTION_MESSAGE
diálogo que informa uma 
pergunta para o usuário
JOptionPane.
PLAIN_MESSAGE
diálogo simples com msg sem 
icone para o usuário do 
aplicativo
56
BotõesBotões de de JanelaJanela
DEFAULT_OPTION Botão OK
YES_NO_OPTION Botões de Yes e No
YES_NO_CANCEL_OPTION Botões Yes, No e Cancel
OK_CANCEL_OPTION Botões Ok e Cancel
57
AplicaçãoAplicação JavaJava
01 // Classe Eco
02 public class Eco {
03 public static void main (String[] args ) {
04 for (int i=0; i < args.length; i++) 
05 System.out.print(args[i] + “ ”);
06 System.out.println();
07 }
08 }
Eco.java
58
DeclaraçãoDeclaração de Arrayde Array
Os arrays são usados para agrupas objetos do mesmo 
tipo. Os arrays permitem que você se refira ao grupo 
de objetos usando um nome comum.
Na linguagem de programação Java, um array é um 
objeto, e tal como acontece com outros tipos de classe, 
a declaração não cria o objeto propriamente dito. Em 
vez disso, a declaração de um array cria uma 
referência que vovê pode usar para se referir a um 
array. A memória real usada pelos elementos do array 
é alocada dinamicamente por uma declaração new ou 
pelo inicializador de um array.
Ao declarar arrays com os colchetes à esquerda, os 
mesmos se aplicam a todas as variáveis que estão à 
direita dos colchetes.
59
DeclaraçãoDeclaração de Arrayde Array
Agrupa objetos de dados de um mesmo tipo.
Declara arrays de tipos primitivo ou de classe:
char ch[];
Point p[]
char[] ch;
Point[] p;
String names[];
names = new String[3];
names[0] = “Ciro”;
names[1] = “Matheus”;
names[2] = “Bruno”;
String names[] = {“Ciro”,“Matheus”,“Bruno”};
“String”.charAt(1);
“String".length();
vetor.length
length X length()
60
// *** testArray.java
class Array {
private char[] ch1, ch2, ch3;
public void loadArray() {
ch1 = new char[10];
for(int i=0; i<10;i++){ch1[i]= (char) ('A'+i); } }
public char[] copyArray(){
ch2 = new char[10];
for(int i=0; i<10;i++){
ch2[i]= ch1[i];
}
return ch2; 
}
Aplicação JavaAplicação Java
11
61
public void showArray(){
ch3 = new char[10];
ch3 = this.copyArray();
for(int i=0; i<10;i++){
System.out.println("Valor i = "+ch3[i]);
} 
}
} // fim da class Array
public class testArray {
public static void main(String[] args){
Array arr = new Array();
arr.loadArray(); 
arr.showArray();
}
}
Aplicação JavaAplicação Java
62
Java Orientação à ObjetosJava Orientação à Objetos
A programação OO separa estritamente a noção entre 
o que deve ser feito e como deve ser feito.
O que, é descrito como um conjunto de métodos (é as 
vezes dados disponíveis publicamente) e suas 
semânticas associadas. Essa combinação – métodos, 
dados e semântica – Conhecido com um contrato entre 
o projetista da classe e o programador que a utiliza.
O como, de um objeto é definido por sua classes, a 
qual de define a implementação dos métodos que o 
objeto admite.
Cada objeto é uma istância de uma classe.
Características da POO:
Abstração , Polimorfismo, Herança, Encapsulamento.
63
Java Orientação à ObjetosJava Orientação à Objetos
Abstração, é o mecanismo de programação que oculta os 
detalhes privados da implementação que estão por 
detrais das interfaces públicas.
Polimorfismo, se refere a capacidade de reconhecer num 
objeto particular um outro mais geral.
Sobcarga, A forma mais simples de polimorfismo 
oferecido pela linguagem Java é a sobrecarga de métodos 
como o mesmo nome com assinatura diferente.
Herança, é um mecanismo de criarmos novos objetos a 
partir de outros que já existem, tomando como prontas e 
disponíveis as características do objeto origem. Isto cria a 
possibilidade de criarmos várias classes, 
hierarquicamente relacionadas.
Encapsulamento, indica que podemos utilizar um objeto 
conhecendo apenas sua interface.
64
ClasseClasse
Uma classe é um tipo de objeto que pode ser definido 
pelo programador para descrever uma entidade real ou 
abstrata. Podemos entender uma classe como um modelo 
ou especificação para certos objetos.
Uma classe contém dois tipos de membros, chamados 
campos e métodos.
Campos (atributos) são dados que pertencem à classe 
propriamente dita ou aos objetos da classe; eles 
compõem o estado de um objeto ou classe.
Métodos são conjuntos de instruções que operam os 
campos para manipular o estado.
Instanciação, A criação de um objeto. Instanciar 
significa criar uma instância da classe. Classe é o modelo 
abstrato de um objeto, uma instância representa um 
objeto concreto desta classe.
65
ConstrutoresConstrutores
Os construtores são métodos especiais chamado pelo
sistema no momento da criação de um objeto, assim
sendo o operador new apenas indica que o método
especial construtor de uma certa classe será utilizado
Um construtor é um conjunto de instruções criadas para
inicializar uma instância. Podem ser passados parâmetros
para o construtor, da mesma maneira que se faz para um
método.
Através dos construtores podemos criar objetos concretos,
isto é, estruturas de dados e operações que representam
um objeto do mundo real, a partir de uma classe (um
modelo abstrato de objetos de um certo conjunto).
Os construtores não são Herdados (Herança)
Os construtores não tem tipo de retorno.
66
ProjetoProjeto
POO - CLASSE
• ModificadoresModificadoresModificadoresModificadores private,private,private,private, public,public,public,public,
protectedprotectedprotectedprotected....
• AtributosAtributosAtributosAtributos
• MétodosMétodosMétodosMétodos
• ConstrutoresConstrutoresConstrutoresConstrutores
• HerançaHerançaHerançaHerança
12
DiálogoDiálogo
68
DiálogoDiálogo
public class Analise extends Math {
public float arranjo(int n, int r){
int vn, vnr;
vn = fat(n);
vnr = fat(n-r);
return(vn/vnr);
}
}
public class Math {
public int fat(int n){
if (n ==1){
return 1;
}else{
return (n * fat(n - 1));
}
}
}
public static void main(String[] args) {
int x = 
Integer.parseInt(JOptionPane.showInputDialog("Enter"));
int y = 
Integer.parseInt(JOptionPane.showInputDialog("Enter"));
Analise ana = new Analise();
float ar = ana.arranjo(x, y);
System.out.println(ar);
69
ProjetoProjeto
70
ProjetoProjeto
71
ProjetoProjeto
72
ExemploExemplo
public class Semaforo { // Semaforo.java
}
// campos
int sDESL=0, sSOB=1,
sLIG=1, sDES=1;
private int status;
// construtor
public Semaforo ( ) { status = sDESL; }
// métodos
public void ligar ( ) { status = sLIG; }
public void desligar ( ) { status = sDESL; }
public void aumenta ( ) { status += sSOB; }
public void abaixa ( ) { status -= sDES; }
public int obtemStatus ( ) { return status; }
Semaforo pt = new Semaforo(); 
pt.ligar();
pt.aumenta();
int x = pt.obtemStatus();
System.out.println(x);
13
73
Aplicação JavaAplicação Java
01 // Greeting class declaration
02 public class Greeting {
03 public void greet() {
04 System.out.println("Hi Greeting ...");
05 }
06 }
01 // Test Greeting Aplication
02 public class TestGreeting {
03 public static void main (String[] args ) {
04 Greeting hello = new Greeting();
05 hello.greet();
06 }
07 }
Greeting.java
TestGreeting.java
74
ConstrutoresConstrutores
Quando usamos a palavra newnew, estamos construindo
um objeto. Quando o comando newnew é chamado,
executa o construtor da classe.
O construtor da classe é um bloco declarado com o
mesmo nome que a classe.
Quando não e declarado nenhum construtor na sua
classe, o Java cria um para você. Esse construtor é
chamando de construtor default. Ele não recebe nunhum
argumento, e o corpo é vazio.
A partir do momento que você declara um construtor, o
construtor default não é mais fornecido.
75
// * Arquivo Classe1.java
public class Classe1 {
public Classe1() {
}
}
Aplicação JavaAplicação Java
// * Arquivo Classe2.java
public class Classe2 {
public Classe2() {
System.out.println(“Ola Mundo”);
}
}
Ctrl Ctrl EspaçoEspaço
76
// * Arquivo Dog.java
public class Dog {
private int weight;
//------------------//
public Dog() {
weight = 1;
}
public int getWeight(){
return weight;
}
public void setWeight(int newWeight){
weight = newWeight;
}
}
Aplicação JavaAplicação Java
Dog.java
UML/Dog
-weight :int
+Dog()
+getWeight():int
+setWeight(int):void
77
// Arquivo testDog.java
public class testDog {
public static void main(String[] args){
Dog d = new Dog();
System.out.println("Dog Weight ="+d.getWeight());
d.setWeight(52);
System.out.println("Dog Weight ="+d.getWeight());
}
}
Aplicação JavaAplicação Java
testDog.java
78
// * Livro.java
public class Livro{
private String titulo = “Desenvolvimento Java”;
private int pag = 208;
private float preco = 49.50; 
public Livro (){ }
public void mostrarDados(){
System.out.println(“Titulo = ”+titulo+”\nPagina
= ”+pag+”\nPreco = ”+preco);
}
}
// * Main.java
public class Main{
public static void main(String [] arg){
Livro li = Livro();
li.mostrarDados(); 
}
}
Aplicação JavaAplicação Java
UML/Livro
-titulo : String
-pag : int
-preco : float
+Livro()
+mostrarDados():void
14
79
// * Livro1.java
public class Livro1{
private String titulo;
private int pag;
private float preco;
public Livro1 (){ 
titulo = “Desenvolvimento Java”;
pag = 208;
preco = 49.50; 
}
public void mostrarDados(){
System.out.println(“Titulo = ”+titulo+”\nPagina
= ”+pag+”\nPreco = ”+preco);
}
}
// * Main.java
public class Main{
public static void main(String [] arg){
Livro1 li = Livro1();
li.mostrarDados(); 
}
}
Aplicação JavaAplicação Java
UML/Livro1-titulo : String
-pag : int
-preco : float
+Livro1()
+mostrarDados():void
80
// * Livro2.java
public class Livro2{
private String titulo;
private int pag;
private float preco;
public Livro2 (String ti, int pa, float pr){ 
titulo = ti;
pag = pa;
preco = pr; 
}
public void mostrarDados(){
System.out.println(“Titulo = ”+titulo+”\nPagina
= ”+pag+”\nPreco = ”+preco);
}
}
// * Main.java
public class Main{
public static void main(String [] arg){
Livro2 li = Livro2(“Desemvolvimento”,208,49.50);
li.mostrarDados(); 
}
}
Aplicação JavaAplicação Java UML/Livro2
-titulo : String
-pag : int
-preco : float
+Livro2(String, int, float)
+mostrarDados():void
81
PolimorfismoPolimorfismo
A palavra polimorfismo vem do grego poli morfos e significa 
muitas formas. Na orientação à objetos representa uma 
característica onde se admite tratamento idêntico para formas 
diferentes baseado em relações de semelhança.
A forma mais simples de polimorfismo oferecido pela linguagem 
Java é a sobrecarga de métodos como o mesmo nome com 
assinatura diferente.
A assinatura de um método é uma lista que indica os tipos de 
dados e seus argumentos, sendo assim métodos com mesmo 
nome são considerados diferentes se recebem um diferente 
número ou tipo de argumentos (assinatura diferentes.
Sobrecarga de Construtores, ou seja, uma classe possui mais de 
um construtor, onde cada um é diferenciado por sua assinatura. 
Através dos mecanismos de encapsulamento, novos métodos e 
atributos podem ser adicionados sem alteração das interfaces de 
programação e de usuário existentes de uma certa classe, 
constituindo um poderoso mecanismo de extensão de classes.
82
// * Sobrecarga.java
public class Sobrecarga {
public long twice(int x) {
return 2 * (long) x; }
public long twice(long x) {
return 2 * x; }
public long twice(String x) {
return 2 *(long)Integer.parseInt(x);
}
public long somatorio (int max){
int t=0;
for (int i=1; i<=max; i++)
t+=i; return t;
}
public long somatorio (int max, int incr){
int t=0;
for (int i=1; i<=x; i+= incr)
t+=i; return t;
}
}
SOBRECARGA SOBRECARGA –– metmetóódosdos
UML/Sobrecarga
+twice(int) : long
+twice(long) : long
+ twice(String) : long
+somatorio(int): long
+somatorio(int, int):long
83
// * Sobrecarga1.java
public class Sobrecarga1 {
private int x;
public Sobrecarga1() {
x = 0; 
}
public Sobrecarga1(int a) {
x = a; 
}
public Sobrecarga1(int a, int b){
x = a + b;
}
}
SOBRECARGA SOBRECARGA -- construtoresconstrutores
UML/Sobrecarga1
-x : int
+Sobrecarga1()
+Sobrecarga1(int)
+Sobrecarga1(int, int)
84
HerançaHerança
A herança é o mais importante mecanismo do 
polimorfismo, é uma técnica onde uma classe passa a 
utilizar atributos e operações definidas em uma outra 
classe especificada como seu ancestral. 
A herança é o compartilhamento de atributos e 
operações entre classes baseado num relacionamento 
hierárquico do tipo, um contém definições (bases) que 
podem ser utilizadas nas novas classes 
(derivadas) � : pai – filho.
Todos atributos e operações disponíveis na classe base 
são aplicáveis para as classes derivadas.
Uma classe derivada pode modificar a implementação 
de alguma operação da classe base ou adicionar novas 
métodos ou atributos.
15
85
HerançaHerança
A herança permite que novas classes sejam criadas 
e adicionadas a uma hierarquia sem a necessidade 
de qualquer modificação do código existente das 
classes e das aplicações que utilizam estas classes 
pois cada classes define estritamente seus próprios 
métodos e atributos. As novas classes adicionadas a 
hierarquia podem estender, especializar ou mesmo 
restringir o comportamento das classes originais.
Uma subclasse não herda o construtor da 
superclasse.
A herança é um mecanismo de especialização.
86
HerançaHerança
O acesso à atributos e operações declarados em uma 
classe base por parte das suas classes derivadas não é 
irrestrito. Tal acessibilidade depende dos nível de 
acesso permitido através dos especificadores private, 
protected package e public.
Ao especificamos acesso privado indicamos que o 
atributo ou operação da classe é de uso interno e 
exclusivo da implementação da própria classe não 
podendo ser utilizado externamente as classes que os 
declaram.
Acessos protected e public, servem para defenir 
membros destinados a interface de programação e de 
usuário.
87
HerançaHerança
Os membros public podem, sem restrição ser utilizados por 
instâncias da classe, por subclasses e por instâncias das 
subclasses.
Membros protected podem ser utilizados apenas na 
implementação de subclasses, não sendo acessíveis por 
instâncias da classe ou por instâncias das subclasses.
Os membros que não recebem as especificações private, 
protected ou public são considerados como do package, isto 
é, são como membros públicos para classes do mesmo 
pacote mas comportam-se como membros privados para 
classes de outros pacotes. Esta modalidade de acesso visa 
facilitar a construção de conjuntos de classes 
correlacionadas através de pacotes.
O acesso package é considerado default pelo Java. 
88
// * A.java
public class A {
private int a = 10;
public A() {
}
public void show_A(){
System.out.println("Mostra metodo A = "+a);
}
}
Aplicação JavaAplicação Java
// * B.java
public class B extends A{
private int b = 20;
public B() {
}
public void show_B(){
show_A(); //método na Classe A (herança)
System.out.println("Mostra metodo B = "+b);
}
}
UML/ A
-a : int
+show_A() : void
UML/ B
-b : int
+show_B() : void
89
// * C.java
public class C extends B{
private int c = 30;
public C() { }
public void show_C(){
show_A(); // método na Classe A (herança)
show_B(); // método na Classe B (herança)
System.out.println("Mostrar metodo C = "+c);
}
}
Aplicação JavaAplicação Java
// * Main.java
public class Main{
public static void main(String[] args) {
C mc = new C();
mc.show_C();
}
}
UML/ C
-c : int
+show_C() : void
90
// * Empregado.java
public class Empregado {
private String name;
private double salary;
private int idade;
public Empregado() {
}
public void setEmpregado(String n, double s, int i){
this.name = n;
this.salary = s;
this.idade = i;
}
public String getInfo(){
return "Nome: "+name+"\nSalario: "+salary+"\nIdade: "+idade;
}
}
Aplicação JavaAplicação Java
UML/ Empregado
-nome : String
-salary : double
-idade : int
+ Empregado()
+ setEmpregado(String, double, int”) : void
+ getInfo():String
16
91
// * Departamento.java
public class Departamento extends Empregado {
private String dpto;
public Departamento() {
}
public void setDepartamento(String d){
this.dpto = d;
setEmpregado("Ronaldo",305.50,34);
}
public String getInfo(){
String s = this.dpto+"\n"+super.getInfo();
return (s);
}
}
Aplicação JavaAplicação Java
UML/ Departamento
-dpto : String
+Departamento()
+setDepartamento(String) : void
+getInfo() : String
92
// * Main.java
public class Main{
public static void main(String[] args) {
Departamento de = new Departamento();
de.setDepartamento("Financeiro");
String ss = de.getInfo();
System.out.println(ss);
}
}
Aplicação JavaAplicação Java

Outros materiais