Você está na página 1de 48

TI 2011 SENADO

AULA 1
1

Mdulo Desenvolvimento de Sistemas


POO com Java Java EE (JSP/Servlets, EJB, JSF, JPA(Hibernate)) AJAX XML e XSLT Web Services SOA Padres de Projeto

      

Agenda Desenvolvimento de Sistemas (1/2)


     AULA 1 : Java AULA 2 : Java AULA 3 : Introduo a Java EE + Servlets AULA 4: JSP e Hibernate AULA 5: JSF, EJB, JPA

Agenda Desenvolvimento de Sistemas (2/2)


     AULA 6: XML (XSD, XSLT) AULA 7: AJAX AULA 8: Web Services AULA 9: SOA AULA 10 : Padres de Projeto

Estratgia do Curso
 Assuntos no abordados
 Lgica de programao  Estrutura de dados  Conceitos gerais de programao e OO

 Esquema de apresentao
 Questes de concursos

 Tpicos relevantes para provas

Sobre o professor
 Marcelo Pacote
Auditor Federal de Controle Externo (TCU) Mestre em Informtica pela UnB 10 anos de experincia com Java e tecnologias Web CSM, SCJA, SCJP, SCJD, SCWCD, SCBCD, SCEA (I), RUPF, IRUP, ITIL Foundation  @marcelopacote    

Apresentaes
    Perfil da turma Universidade - Empresa Experincia com desenvolvimento Expectativas

Agenda Desenvolvimento de Sistemas  JAVA


 Caractersticas  Sintaxe  Orientao a objetos

Java

O que Java ?
 Linguagem de Programao Orientada a Objetos desenvolvida pela Sun Microsystems [ ].
Oracle

 totalmente orientada a objetos?

 Linguagem interpretada
 bytecodes executados por um VM  lenta? Que um JIT?  WORA (Write Once Run Everywhere)

 Abrangncia
 Java SE, Java EE, Java ME, JavaCard

10

Exerccio [1] (SERPRO/2008/CESPE)


Com relao s linguagens, julgue o item a seguir. ( ) A linguagem Java, orientada a objetos, tem como caracterstica ser compilada em um cdigo executado em mquina virtual.

11

Exerccio [2] (TRT/2009/FCC)


No mbito da linguagem Java, considere: I. Edio a criao do programa, que tambm chamado de cdigo Bytecode. II. Compilao a gerao de um cdigo intermedirio chamado fonte, que um cdigo independente de plataforma. III. Na interpretao, a mquina virtual Java ou JVM analisa e executa cada instruo do cdigo Bytecode. IV. Na linguagem Java a interpretao ocorre apenas uma vez e a compilao ocorre a cada vez que o programa executado. Est correto o que consta em a) I, II, III e IV. b) II e IV, somente. c) III e IV, somente. d) IV, somente. e) III, somente.
12

Caractersticas da Linguagem Java (1/4)


 Simplicidade
 Sintaxe parecida com a C e C++, porm com menor complexidade

 Orientada a objetos
 Tipos primitivos no so objetos. No h herana mltipla.

 Compilada e independente de plataforma


 Gerao de bytecodes  Multiplataforma  JIT
13

Caractersticas da Linguagem Java (2/4)


 Suporte a programao concorrente
 Threads  Menos complexo (no h chamadas ao SO)

 Coletor de lixo.
 Ocorre de forma automgica  simplicidade X controle

14

Caractersticas da Linguagem Java (3/4)


 Robustez
 Fortemente tipada (tipos definidos em tempo de compilao)  No h acessos diretos memria (como em C)

 Segura (3 formas)
 SecurityManager (applets)  Modificadores de acesso  Verificador de bytecodes

15

Caractersticas da Linguagem Java (4/4)

 Extensvel
 Integrao com cdigo nativo  Carregamento dinmico de classes

16

Plataforma Java
Java Development Kit (JDK 6 u25)
       javac: compilador da linguagem Java Java: interpretador. Executa os bytecodes appletviewer: visualizador de applets javadoc: gerador automtico de documentao bibliotecas (rt.jar, dt.jar) cdigos fonte (src.zip) jconsole, jstack, jhat etc.

17

Ferramentas de desenvolvimento
    Eclipse Netbeans JDeveloper Intellij Idea

 MakeWare (ferramenta nacional)

18

Sintaxe

19

Comentrios
 Comentrio de uma linha:
// isto um comentrio

 Comentrio de bloco:
/* Isto um comentrio */

 Comentrios JAVADOC
/** * */
20

Palavras-chave
abstract byte char continue double final for implements int native package public static synchronized throws void stricfp boolean case class default else finally goto import interface new private return super this transient volatile assert break catch const do extends float if instanceof long null protected short switch throw try while enum

true, false 21

Exerccio [3] (INMETRO/2009/CESPE)


( ) So algumas palavras reservadas da linguagem Java: public, private, protected, class, interface, abstract, extends, implements, super, byte, short, char, int, long, float, double, boolean, void, try, catch, finally, throws, throw, import, package, if, else, false, true, continue, default, break, return, while, switch, transient, final, synchronized, null, new.

22

Tipos primitivos
T IPO DE
DADOS

T AMANHO _____ 8 bits 16 bits 16 bits 32 bits 64 bits 32 bits 64 bits true ou

V ALORES false

D EFAULT fa l se 0 0 \u0000 0 0L 0.0f 0.0d

boolean byte short char int long float double

-27 a 27 -1 -215 a 215 -1 \u0000 a \uffff -231 a 231 -1 -263 a 263 -1 1,40239846e-45 a 3,40282347e38 4,94065645841264544e-324 a 1.79769313486231570e308

23

Exerccio [4] (MPU/2007)


Quanto s variveis Java, um inteiro de 64 bits em notao de complemento de dois que pode assumir valores entre -2^63 e 2^63 1 : (a) long (b) short (c) float (d) byte (e) double

24

Exerccio [5] (ANAC/2009/CESPE)


( ) Entre os tipos de dados primitivos suportados pela linguagem Java, est o tipo char, o qual ocupa um espao de memria de 8 bits.

25

Identificadores
 Um identificador pode comear por letra, hfen-caixa-baixa ( _ ), ou smbolo dlar ($). Os caracteres seguintes podem conter dgitos. Caracteres maisculos e minsculos so diferentes e no tem tamanho mximo. Exemplos de identificadores vlidos: identificador Nome_usuario nomeUsuario _sys_var1 $change

26

Tipos primitivos
 Strings no so tipos primitivos
 Trata-se de um captulo parte!

 Literais inteiros so, por padro, inteiros


 Usa-se l ou L para denotar long

 Forma decimal, hexadecimal (0x) e Octal (0)  Literais de ponto flutuantes so, por padro, double
 Usa-se f ou F para denotar float

27

Operadores
OPERADOR
+ * / % ++ -> >= < <= == != ! && || & ^ |

FUNO
Adio Subtrao Multiplicao Diviso Resto Incremento Decremento Maior que Maior ou igual Menor que Menor ou igual igual no igual NO lgico E lgico OU lgico AND XOR OR

OPERADOR
~ << >> >>> = += -= *= /= %= &= |= ^= <<= >>= >>>= ?: (tipo)
instanceof

FUNO
complemento

deslocamento esquerda
deslocamento direita desloc. a direita com zeros atribuio atribuio com adio atribuio com subtrao atribuio com multiplicao atribuio com diviso atribuio com resto atribuio com AND atribuio com OR atribuio com XOR atribuio com desloc. esquerdo atribuio com desloc. direito atrib. C/ desloc. a dir. c/ zeros Operador ternrio Converso de tipos

Comparao de tipos

28

Exerccio [6] (MPU/2007)


Analise os seguintes valores, variveis e operaes usando expresses Java: byte j = 30; short k = 54; int m = 40; long n = 12L; long resultado = 0L; resultado += j; resultado +=k; resultado /= n; resultado -= m; Aps a ltima operao, o resultado ser: (a) -7 (b) -32 (c) -33 (d) 60 (e) 84
29

Comandos e blocos
 Os comandos so terminados com ponto-e-vrgula.  Um bloco delimitado por chaves - { e } e constitui um comando composto.  O espao em branco permitido entre elementos do cdigo fonte, em qualquer lugar e em qualquer quantidade. So considerados espao em branco o espao, o tab (\t) e mudana de linha (\n). { int x; x = 23 * 54; }
30

Operadores de incremento/decremento

int m = 7; int n = 7; int a = 2 * ++m; // Qual o valor de a e m? int b = 2 * n++; // Qual o valor de b e n?

31

Operadores relacionais
 > maior, >= maior ou igual, < menor  <= menor ou igual, == igual, != diferente
public class Compare{ public static void main(String args[]){ int x=10,y; if(x<10) y=1; if(x>=10) y=2; System.out.println(o valor de y "+ y ); } }
32

Operadores lgicos &&, || e ! Que ser impresso aps a execuo?


int saida=10; boolean b1 = false; if( (b1==true) && ((saida+=10)==20)) { System.out.println(Eba! "+ saida); } else { System.out.println(Ops! Diferente"+saida); }

33

Operador condicional ternrio ?:  max = (a > b) ? a : b ; // max recebe o maior valor entre a e b  Que ser impresso aps a execuo?
int i=0; boolean t=true; boolean f=false,b; b=(t || ((i++) ==0)); b=(f || ((i+=2)>0)); System.out.println(i + + b);
34

Estruturas de deciso
 IF  SWITCH
int k=10; switch(k){ default: System.out.println(Sada padro"); break; case 10: System.out.println(dez"); case 20: System.out.println(vinto"); break;
}

35

Controle de fluxo
FOR for (inicializao ; teste ; incremento ) {...} ou for ( nomeObjeto: nomeColecao/nomeArray ) {...} (foreach) WHILE while (condio ) { ... } DO - WHILE do { ... } while (condio );
36

Controle de fluxo
for (int conta = 0; conta <= 10; conta++) System.out.println(conta); while (a <10) { System.out.println(a); a++; } do { System.out.println(a); a++; } while (a <10);
37

Exerccio [7] (TCU/2005/CESPE)


Acerca das estruturas de dados, linguagens e ambientes de programao e das tcnicas da orientao a objetos para a construo de aplicaes e bancos de dados, julgue o item seguinte: ( ) A linguagem Java possui trs instrues de iterao: while, do-while e for.

38

Comportamentos Fundamentais
 Atribuio de referncias  Passagem de parmetros
 Sempre por valor

 O operador this
 ambiguidades  Passar o objeto corrente como parmetro

39

Exerccio [8] (ANA/2009/ESAF)


Os argumentos so passados para mtodos, em Java, por a) valor, sejam valores primitivos ou referncias a objetos. b) referncia, sejam valores primitivos ou referncias a objetos. c) valor, apenas para valores primitivos. d) referncia, apenas para referncias a objetos. e) valor ou referncia, de acordo com o sistema operacional.

40

Exerccio [9] (CGU/2008)


Com relao linguagem de programao Java, correto afirmar que: a) o operador instanceof utilizado para chamar o mtodo construtor de uma classe e criar um novo objeto. b) so tipos primitivos de dados: boolean, byte, short, char, int, long, string, float e double. c) o tipo de dado int suporta apenas nmeros de -32.768 a 32.767. d) a instruo do-while no faz parte das instrues de controle de fluxo da linguagem. e) os valores booleanos no podem ser usados em uma operao de casting.

41

Exerccio [10] (CVM/2010/ESAF)


Na linguagem Java: a) A funo Math.round(valor) gera um nmero aleatrio utilizando a semente valor. b) A estrutura de repetio while requer definio de inicializao, condio e incremento. c) A estrutura de repetio for requer definio de inicializao, ponderao e desvios. d) A funo Math.round(valor) retorna o comprimento de uma circunferncia de raio valor. e) A estrutura de repetio for requer definio de inicializao, condio e incremento.

42

Padro de codificao Java


 Pacotes
 br.gov.tcu.negocio.unidadeorganizacional

 Classes, Interfaces e Enums


 PessoaVinculada

 Mtodos
 recuperaPorNome

 Variveis
 dtoDadosPessoa

 Constantes
 MAX_RESULTADOS
43

Gabarito dos Exerccios


       [01] certo  [08] a [02] e  [09] e [03] certo  [10] e [04] a [05] errado [06] c [07] certo

44

ANEXO I
Exerccios complementares

45

Exerccio [1] (PGDF/2011/IADES)


Analise o cdigo fonte em Java a seguir e assinale a alternativa que apresenta o resultado da execuo do programa:
import java.io.*; public class Calculadora { public static void main (String args[]) { int a,b,c; a=5; b=3; c= a++ + ++b; System.out.println(Valores= + a + b + c); } } a) Valores=16 b) Valores=548 c)Valores=18 d) Valores=649 e)Valores=19 46

Exerccio [2] (PGDF/2011/IADES)


Qual valor ser exibido na execuo da seguinte classe Java?
import java.io.*; public class Algoritmo { public static void main (String args[]) { int a,b,r; a=78; b=117; r=1; do { r = a % b; a = b; b = r; } while (r > 0); System.out.println(a); } } a) 11 b) 39 c) 13 d) 9

e) 78

47

Gabarito do Exerccios Complementares


 [01] d  [02] b