Laborat´orio de Programa¸c˜ao 2 (LP2)
02 - Introdu¸c˜ao `a programa¸c˜ao em JavaAlexandre de Andrade Barbosa
Objetivos
Objetivos
Descrever como criar e executar programas Java
Implementar programas Java utilizando:
tipos de dados e declara¸c˜ao de vari´aveis; operadores relacionais, l´ogicos e matem´aticos; convers˜oes entre tipos de dados;
entrada e sa´ıda de dados.
Introdu¸c˜ao `a programa¸c˜ao em Java
Helo World!
Python
1 p r i n t ’ H e l l o w o r l d ! ’
C
1 main ( ) {
2 p r i n t f ( ” H e l l o World ! ” ) ; 3 }
Java
1 p u b l i c c l a s s E x e c u t a v e l {
2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
Introdu¸c˜ao `a programa¸c˜ao em Java
Compila¸c˜ao e Interpreta¸c˜ao
Introdu¸c˜ao `a programa¸c˜ao em Java
Introdu¸c˜ao `a programa¸c˜ao em Java
Programa¸c˜ao e Java
Introdu¸c˜ao `a programa¸c˜ao em Java
Introdu¸c˜ao `a programa¸c˜ao em Java
Programa¸c˜ao e Java
Introdu¸c˜ao `a programa¸c˜ao em Java
Programa¸c˜ao e Java - Primeiro programa
1 c l a s s P r i m e i r o {
2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
3 System . o u t . p r i n t l n ( ”Meu p r i m e i r o programa em
J a v a ! ” ) ;
4 }
5 }
Introdu¸c˜ao `a programa¸c˜ao em Java
Programa¸c˜ao e Java - Primeiro programa
Compilando o programa
1 $ j a v a c P r i m e i r o . j a v a
Executando / interpretando o programa
Introdu¸c˜ao `a programa¸c˜ao em Java
Programa¸c˜ao e Java - Primeiro programa
Vis˜ao no terminal
1 $ j a v a c P r i m e i r o . j a v a 2 $ j a v a P r i m e i r o
Introdu¸c˜ao `a programa¸c˜ao em Java
Tipos de Dados
Para representar inteiros:
byte
,
short
,
int
e
long
Classes relacionadas:
Byte
,
Short
,
Integer
e
Long
Para representar ponto flutuante:
float
e
double
Classes relacionadas:
Float
e
Double
Para representar valores l´ogicos:
boolean
Para representar um caractere:
char
Introdu¸c˜ao `a programa¸c˜ao em Java
Vari´aveis
Declara¸c˜oes devem descrever o tipo da vari´avel
Atribui¸c˜oes podem ser realizadas em um momento posterior a
declara¸c˜ao
1 c l a s s T i p o s {
2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
3 i n t i n t e i r o ;
4 i n t e i r o = 5 ;
5 }
Introdu¸c˜ao `a programa¸c˜ao em Java
Operadores
Os operadores de atribui¸c˜ao e compara¸c˜ao em Java s˜ao,
respectivamente: = e ==
Operadores relacionais Java s˜ao os mesmos adotados em C:
<
,
>
,
<
=,
>
=, ! =. == e =
Operadores matem´aticos Java s˜ao os mesmos adotados em C: +,
-, /, % e *
Operadores l´ogicos Java s˜ao representados por: && (E l´ogico),
||
(OU l´ogico) e !(Nega¸c˜ao l´ogica)
Entrada e sa´ıda em Java pode ser realizada pelo console (System
/ in / out / Scanner)
Introdu¸c˜ao `a programa¸c˜ao em Java
Exerc´ıcios
Exerc´ıcio
1 Indique qual ´e o resultado das seguintes avalia¸c˜oes:
1 5>2
2 1>9
3 6<4
4 −1<0
5 5>= 2
6 1>= 1
7 1<= 5
1 6 + 3
2 6−3
3 6∗3
4 6/3
5 6%3
6 18.0/5
7 18/5
1 true&&false
2 true||false
Introdu¸c˜ao `a programa¸c˜ao em Java
Operadores
Atribui¸c˜ao autom´atica ( +=, -=, *=, /=, %= )
1 i n t a = 6 ;
2 i n t b = 3 ;
3 b += a ; // e q u i v a l e n t e b = b + a ;
1 i n t a = 6 ;
2 i n t b = 3 ;
Introdu¸c˜ao `a programa¸c˜ao em Java
Operadores
Incremento e decremento(++a, a++, –a, a–)
1 i n t a = 0
2 System . o u t . p r i n t l n ( a++) ; // 0 3 System . o u t . p r i n t l n ( a ) ; // 1
1 i n t a = 0
Introdu¸c˜ao `a programa¸c˜ao em Java
Convers˜oes
Impl´ıcita - quando a vari´avel que recebe a atribui¸c˜ao possui um
tipo mais abrangente que o valor que ser´a recebido
1 f l o a t a ;
2 i n t b = 5 ;
3 a = b ;
Expl´ıcita (ou cast) - quando a vari´avel que recebe a atribui¸c˜ao
possui um tipo menos abrangente que o valor que ser´a recebido
1 f l o a t a = 5 . 3 f ;
2 i n t b ;
Introdu¸c˜ao `a programa¸c˜ao em Java
Convers˜oes
Convertendo String para n´
umero
1 S t r i n g s = ‘ ‘ 8 ’ ’ ;
2 i n t b ;
Introdu¸c˜ao `a programa¸c˜ao em Java
Entrada e sa´ıda de dados
Entrada a partir da linha de comando
1 S c a n n e r s = new S c a n n e r ( System . i n ) ; 2 s . n e x t I n t ( ) ;
3 s . n e x t L i n e ( ) ;
Sa´ıda a partir da linha de comando
Introdu¸c˜ao `a programa¸c˜ao em Java
Entrada e sa´ıda de dados
1 import j a v a . u t i l . S c a n n e r ;
2
3 p u b l i c c l a s s E n t r a d a {
4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
5 S c a n n e r s = new S c a n n e r ( System . i n ) ; 6
7 System . o u t . p r i n t l n ( ” D i g i t e s e u nome” ) ; 8 S t r i n g nome = s . n e x t L i n e ( ) ;
9
10 System . o u t . p r i n t l n ( ” D i g i t e s u a i d a d e ” ) ;
11 i n t i d a d e = s . n e x t I n t ( ) ;
12
13 System . o u t . p r i n t l n ( nome + ” tem ” + i d a d e + ”
Introdu¸c˜ao `a programa¸c˜ao em Java
Entrada e sa´ıda de dados
Entrada a partir de um painel
1 J O p t i o n P a n e . s h o w I n p u t D i a l o g ( ” t e x t o ” ) ;
Sa´ıda a partir de um painel
Introdu¸c˜ao `a programa¸c˜ao em Java
Entrada e sa´ıda de dados
1 import j a v a x . s w i n g . J O p t i o n P a n e ;
2
3 p u b l i c c l a s s E n t r a d a P a n e l {
4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
5 S t r i n g nome =
J O p t i o n P a n e . s h o w I n p u t D i a l o g ( ” D i g i t e s e u nome” ) ;
6 S t r i n g i d a d e S t r =
J O p t i o n P a n e . s h o w I n p u t D i a l o g ( ” D i g i t e s u a i d a d e ” ) ;
7 i n t i d a d e = I n t e g e r . p a r s e I n t ( i d a d e S t r ) ;
8
9 J O p t i o n P a n e . s h o w M e s s a g e D i a l o g (n u l l, nome + ”
Introdu¸c˜ao `a programa¸c˜ao em Java
Entrada e sa´ıda de dados
Argumentos da linha de comando
1 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s )
2
3 S t r i n g [ ] a r g s
Executando o programa e passando parametros
Introdu¸c˜ao `a programa¸c˜ao em Java
Entrada e sa´ıda de dados
1 p u b l i c c l a s s IOExemplo {
2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
3 System . o u t . p r i n t l n ( ” P r i m e i r o v a l o r : ” +
a r g s [ 0 ] ) ;
4 System . o u t . p r i n t l n ( ” Segundo v a l o r : ” +
a r g s [ 1 ] ) ;
5 System . o u t . p r i n t l n ( ” T e r c e i r o v a l o r : ” +
a r g s [ 2 ] ) ;
6 }
7 }
Se a quantidade de valores passado como parametro for diferente...
Introdu¸c˜ao `a programa¸c˜ao em Java
Coment´arios
Existem trˆes tipos de coment´ario na linguagem:
coment´ario de linha (//texto)
coment´ario de v´arias linhas (/∗ texto∗/) coment´ario javadoc (/∗ ∗texto∗/)
1 // l i n h a comentada 2 /∗ l i n h a 1 do c o m e n t a r i o 3 l i n h a 2 do c o m e n t a r i o 4 l i n h a 3 do c o m e n t a r i o 5 ∗/
6 /∗ ∗
Introdu¸c˜ao `a programa¸c˜ao em Java
Strings
Strings s˜ao classes em Java, portanto possuem m´etodos j´a
implementados
O operador “+” serve para concatena¸c˜ao de strings
Alguns m´etodos:
Introdu¸c˜ao `a programa¸c˜ao em Java
Strings
1 p u b l i c c l a s s E x S t r i n g {
2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
3 S t r i n g s t r = ” Seu nome ´e ” ;
4 S t r i n g nome1 = ” A l e x a n d r e ” ; 5 S t r i n g sobrenome = ” B a r b o s a ” ; 6 S t r i n g nome2 = ” A l e x a n d r e ” ;
7 S t r i n g nome3 = new S t r i n g ( ” A l e x a n d r e ” ) ; 8
9 System . o u t . p r i n t l n ( s t r + nome1 + sobrenome ) ; 10 System . o u t . p r i n t l n ( nome1 . t o L o w e r C a s e ( ) ) ; 11 System . o u t . p r i n t l n ( nome1 . t o U p p e r C a s e ( ) ) ; 12 System . o u t . p r i n t l n ( nome1 . e q u a l s ( sobrenome ) ) ; 13 System . o u t . p r i n t l n ( nome1 == sobrenome ) ; 14 System . o u t . p r i n t l n ( nome1 . e q u a l s ( nome2 ) ) ; 15 System . o u t . p r i n t l n ( nome1 == nome2 ) ; 16 System . o u t . p r i n t l n ( nome1 == nome3 ) ;
Introdu¸c˜ao `a programa¸c˜ao em Java
Estruturas de controle
As estruturas de controle em Java s˜ao as mesmas presentes em C
A sintaxe das estruturas de controle de Java ´e igual a sintaxe de
C
if, if-else (Condicional) switch (Condicional)
operador condicional (Condicional) for (Repeti¸c˜ao)
Introdu¸c˜ao `a programa¸c˜ao em Java
Estruturas de condi¸c˜ao
Sintaxe:
1 i f ( [ exp . c o n d i c i o n a l ] ) {
2 [ comandos ]
3 }
Sintaxe:
1 i f ( [ exp . c o n d i c i o n a l ] ) {
2 [ comandos ]
3 } e l s e {
4 [ comandos ]
Introdu¸c˜ao `a programa¸c˜ao em Java
Estruturas de condi¸c˜ao
Sintaxe:
1 [ v a r i ´a v e l ] = [ exp . c o n d i c i o n a l ] ? [ exp . 1 ] : [ exp . 2 ] ;
Sintaxe:
1 s w i t c h ( [ exp . ] ) {
2 c a s e [ c o n s t a n t e 1 ] :
3 [ comandos ]
4 c a s e [ c o n s t a n t e 2 ] :
5 [ comandos ]
6 d e f a u l t:
Introdu¸c˜ao `a programa¸c˜ao em Java
Estrutura de repeti¸c˜ao
Sintaxe:
1 f o r ( [ i n i c i a l i z a ¸c ˜a o ] ; [ c o n d i ¸c ˜a o de r e p e t i ¸c ˜a o ] ;
[ i n c r e m e n t o s ] ) {
2 [ comandos ]
3 }
Sintaxe:
1 w h i l e ( c o n d i ¸c ˜a o ) {
2 [ comandos ] ;
3 }
Sintaxe:
1 do {
2 [ comandos ]
Introdu¸c˜ao `a programa¸c˜ao em Java
Fun¸c˜oes
Sintaxe:
1 s t a t i c [ t i p o de r e t o r n o ] [ nome ] ( [ a r g u m e n t o s ] ) {
2 [ comandos ] ;
3 r e t u r n [ v a l o r de r e t o r n o ] ;
4 }
Exemplo:
1 . . .
2 s t a t i c b o ol e an p a r i d a d e (i n t numero ) {
3 r e t u r n numero % 2 = = 0 ; // r e t o r n a um v a l o r
Introdu¸c˜ao `a programa¸c˜ao em Java
Exerc´ıcios
Exerc´ıcio
1 Exerc´ıcios das p´aginas 52 e 53 do livro “Java 6 - Ensino Did´atico”
2 Exerc´ıcios 4 e 5 das p´aginas 94 e 95 do livro “Java 6 - Ensino Did´atico”
3 Exerc´ıcios das p´aginas 72, 73 e 74 do livro “Java 6 - Ensino Did´atico” (n˜ao ´e necess´ario utilizar exce¸c˜oes)
Introdu¸c˜ao `a programa¸c˜ao em Java
Resumo
Resumo
Java ´e uma linguagem multiplataforma e orientada a objetos, que foi criada com base na linguagem C++
O projeto da linguagem tornou alguns conceitos transparentes ao programador (ex. ponteiros e aloca¸c˜ao de mem´oria)
Os tipos de dados primitivos existentes em Java s˜ao: byte, short, int, long, float, double e char
Os tipos de dados representados por classes em Java s˜ao: Byte, Short, Integer, Long, Float, Double, Character e String
Operadores relacionais Java s˜ao os mesmos adotados em C:<,>,<=,>=, ! =. == e =
Introdu¸c˜ao `a programa¸c˜ao em Java
Resumo
Resumo
Entrada e sa´ıda em Java pode ser realizada pelo console (System / in / out / Scanner)
Entrada e sa´ıda em Java pode ser realizada atrav´es da classe JOptionPane Estruturas de controle est˜ao presentes em todas as linguagens imperativas (ex. estruturas e orientadas a objetos)
A sintaxe pode variar de uma linguagem para outra, a semˆantica ´e ”sempre”a mesma
Java possui as seguintes estruturas de controle
if, if-else (Condicional) switch (Condicional)
operador condicional (Condicional) for (Repeti¸c˜ao)