Escolar Documentos
Profissional Documentos
Cultura Documentos
1ª parte
Jobson Massollar
jobson.silva@uva.br
Paradigmas de Programação
2 Programação OO
Características da Linguagem Java
Independente de plataforma:
write once, run everywhere
Segurança
Mecanismos para sistemas livres de vírus, pacotes para
criptografia, ...
3 Programação OO
Características da Linguagem Java
Simplicidade
Sintaxe dos comandos básicos segue o padrão do C.
Sintaxe da parte OO bem mais simples que o C++.
Internacionalização
UNICODE: padrão que permite manipular textos de qualquer
sistema de escrita.
Robustez
Tratamento de exceções
JVM impede que uma aplicação mal comportada paralise o
sistema.
4 Programação OO
Características da Linguagem Java
Distribuída e multitarefa
Os programas podem utilizar recursos da rede com a mesma
facilidade que acessam arquivos locais.
Trabalha com diversos protocolos (TCP/IP, HTTP, FTP,...)
Execução simultânea de múltiplas threads.
Gerenciamento de memória
Memória virtual gerenciada pela JVM
Garbage collection
Desempenho
Mais rápida que linguagens de script, porém mais lenta que as
linguagens compiladas puras.
Hoje, os problemas de desempenho são resolvidos com compilação
just-in-time.
5 Programação OO
Tipos de Programas em Java
Applications
Semelhantes aos programas tradicionais (desktop,
cliente/servidor).
Applets
Programa que pode ser incluído em uma página HTML.
Programa é carregado de um servidor e executado localmente
dentro de um browser.
É uma tecnologia antiga que caiu em desuso.
Servlets
Programas que executam em um servidor web e são acessados
via browser.
São a base de outras tecnologias como JSP, Struts, JSF, etc.
6 Programação OO
Plataforma Java
7 Programação OO
Plataforma Java
8 Programação OO
Plataforma Java
9 Programação OO
Plataforma Java
Modelo inicial
Essa interpretação é
feita linha a linha !
10 Programação OO
Plataforma Java
11 Programação OO
Plataforma Java
Modelo atual
12 Programação OO
Plataforma Java
13 Programação OO
Plataforma Java
14 Programação OO
Plataforma Java
15 Programação OO
Ambiente de Programação
Exemplo:
• javac (compilador Java)
• javadoc (utilitário para documentação)
• java (máquina virtual)
• etc.
16 Programação OO
Ambiente de Programação
17 Programação OO
Primeiro Programa
Todo programa Java deve ter um método main que determina o início
da execução do programa.
18 Programação OO
Primeiro Programa
/* Arquivo: AloMundo.java */
19 Programação OO
Primeiro Programa
/* Arquivo: AloMundo.java */
20 Programação OO
Primeiro Programa
/* Arquivo: AloMundo.java */
21 Programação OO
Primeiro Programa
Repare que, em um determinado
arquivo, devemos declarar
/* Arquivo: AloMundo.java */ somente uma classe.
O nome do arquivo deve ter o
mesmo nome da classe com a
public class AloMundo { extensão .java.
22 Programação OO
Primeiro Programa
Dentro de uma classe podemos
/* Arquivo: AloMundo.java */ definir vários métodos.
Devemos definir, um e somente
um, método main, que indica por
onde a execução se iniciará.
public class AloMundo {
public static void main(String [] args)
{
System.out.println("Alo mundo!");
} // fim do método main
23 Programação OO
Primeiro Programa
24 Programação OO
Primeiro Programa
Da mesma forma como fazemos nas
/* Arquivo: AloMundo.java */ funções em C/C++, antes do nome do
método definimos o seu tipo de retorno.
O tipo de retorno do método main é
sempre void, ou seja, não retorna nada.
public class AloMundo {
public static void main(String [] args)
{
System.out.println("Alo mundo!");
} // fim do método main
25 Programação OO
Primeiro Programa
O parâmetro args indica os argumentos
/* Arquivo: AloMundo.java */ do programa.
Os argumentos são os dados passados na
linha de execução do programa (linha de
comando)
public class AloMundo {
public static void main(String [] args)
{
System.out.println("Alo mundo!");
} // fim do método main
26 Programação OO
Primeiro Programa
/* Arquivo: AloMundo.java */
27 Programação OO
Primeiro Programa
/* Arquivo: AloMundo.java */
28 Programação OO
Primeiro Programa
/* Arquivo: AloMundo.java */
29 Programação OO
Primeiro Programa
/* Arquivo: AloMundo.java */
30 Programação OO
Tipos de Dados
31 Programação OO
Tipos Primitivos de Dados
Constantes Inteiras
Compostas de dígitos de 0 a 9
Podem ser iniciadas com sinal negativo (-)
Exemplos:
19 -> int
-3 -> int
1265L -> long (terminado com L maiúsculo)
-9876L -> long (terminado com L maiúsculo)
33 Programação OO
Valores Constantes
Exemplos:
0.234 -> double
-125.65 -> double
4.93f -> float (terminado com f minúsculo)
-12.765f -> float (terminado com f minúsculo)
34 Programação OO
Valores Constantes
Constantes Caracter
Exemplos:
'a'
'.'
'*'
35 Programação OO
Valores Constantes
Constantes Booleanas
36 Programação OO
Valores Constantes
Constantes String
Exemplos:
"Oba !"
"Rio de Janeiro"
"A resposta é: "
"a"
"Ela gritou \"Socorro !!!\""
37 Programação OO
Identificadores
38 Programação OO
Identificadores
39 Programação OO
Variáveis
int _a;
double $c;
long nomeBastanteExtensoParaMinhaVariavel;
int i, j;
boolean achou;
40 Programação OO
Variáveis
double $c = 0.1;
int i = 0, j = 1;
41 Programação OO
Constantes
42 Programação OO
Convenções
43 Programação OO
Convenções
AloMundo
Cliente
Disciplina
SistemaAcademico
AlunoBolsista
UnidadeEnsino
44 Programação OO
Operadores Aritméticos
45 Programação OO
Operadores Aritméticos
Operadores Associação
++ -- Direita para esquerda
* / % Esquerda para direita
+ - Esquerda para direita
a = i + j / k; // a = 10.75
b = (i + j) / k; // b = 1
46 Programação OO
Operadores Aritméticos
Importante:
int i = 6, j = 3, k = 4;
i / j resulta em 2
i / k resulta em 1 e não em 1.5
47 Programação OO
Operador de Atribuição
variavel = expressão
Exemplos:
int i, j, k;
double max, min;
i = j = k = 1; // Todas as variaveis = 1
max = min = 0.0; // Todas as variaveis = 0.0
48 Programação OO
Interface com o Usuário
49 Programação OO
Entrada/Saída via Console
Classe System
Pertence à biblioteca padrão do Java chamada java.lang.
A classe System define, dentre outras coisas, os arquivos de
entrada e saída padrão.
O arquivo out representa a saída de vídeo.
O arquivo in representa a entrada via teclado.
Note que in e out são objetos e, por isso, podemos acessar seus
métodos.
50 Programação OO
Entrada/Saída via Console
Classe Scanner
É usada para realizar a entrada de dados.
Pertence à uma biblioteca do Java chamada java.util.
Por não estar definido em uma biblioteca padrão, para usar a
classe Scanner precisamos informar onde essa ela se encontra.
Isso é feito através do comando import:
import java.util.Scanner;
51 Programação OO
Entrada/Saída via Console
Classe Scanner
Existem vários métodos na classe Scanner para fazer a entrada
de dados:
ler um int: nextInt()
ler um double: nextDouble()
ler um float: nextFloat()
ler um caracter: nextLine().charAt(0)
ler um long: nextLong()
ler uma string: nextLine()
52 Programação OO
Entrada/Saída via Console
53 Programação OO
Entrada/Saída via Console
Cria um objeto da classe Scanner.
/* Arquivo: Leitura .java */
O operador new é usado para
criar esse objeto.
import java.util.Scanner; A variável teclado passa a
referenciar esse objeto.
public class Leitura { Ao criar o objeto da classe
Scanner, informamos de onde
public static void main(String [] args) { serão lidos os dados: System.in
int idade;
Scanner teclado = new Scanner(System.in);
54 Programação OO
Entrada/Saída via Console
import java.util.Scanner;
System.in é um objeto que
referencia a entrada padrão, que no
public class Leitura {
nosso caso é o teclado.
public static void main(String [] args) {
int idade;
Scanner teclado = new Scanner(System.in);
55 Programação OO
Entrada/Saída via Console
import java.util.Scanner;
56 Programação OO
Entrada/Saída via Console
import java.util.Scanner;
57 Programação OO
Exercícios
import java.util.Scanner;
58 Programação OO
Exercícios
59 Programação OO
Incremento/Decremento
int i, j, k;
i = 10;
j = i++;
k = ++j;
60 Programação OO
Incremento/Decremento
61 Programação OO
Operador de Atribuição Aritmética
62 Programação OO
Operador de Atribuição Aritmética
63 Programação OO
Operador de Atribuição Aritmética
64 Programação OO
Operador de Atribuição Aritmética
Exemplos:
quantidade += 10;
65 Programação OO
Conversão de Tipos
Exemplos:
Se uma expressão envolve tipos byte e int, as variáveis do tipo byte
serão convertidas para int antes de avaliar a expressão.
66 Programação OO
Conversão de Tipos
Exemplos:
Se o resultado de uma expressão for do tipo float, poderá haver perda
de dados caso ela seja atribuída a uma variável do tipo int.
67 Programação OO
Casting
Exemplos:
int i = 6, j = 3, k = 4;
68 Programação OO
Exercícios
5 * 4 / (6 + 7)
5 * 4.0 / 6 + 7
5 * 4 % 6 + 7
5 * 4 / (float)6 + 7
(4 / 3) + (3.0 * 5)
(4 / 3.0) + (3 * 5)
(int)(4 / 3.0) + (3 * 5)
69 Programação OO
Exercícios
5 * 4 / (6 + 7) 1
5 * 4.0 / 6 + 7 10.33333
5 * 4 % 6 + 7 9
5 * 4 / (float)6 + 7 10.33333
(4 / 3) + (3.0 * 5) 16.0
(4 / 3.0) + (3 * 5) 16.33333
(int)(4 / 3.0) + (3 * 5) 16
70 Programação OO
Operadores Relacionais
Operador Significado
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
== Igual a
!= Diferente de
71 Programação OO
Operadores Relacionais
1 + 3 >= 3 + 6
(1 + 3) >= (3 + 6)
5.0 / 3 <= 10 / (4 + 1)
72 Programação OO
Operadores Lógicos
Operador Significado
&& E (AND)
|| OU (OR)
! NEGAÇÃO (NOT)
73 Programação OO
Operador Condicional
74 Programação OO
Operador Condicional
Exemplo:
if (i < j)
menor = i; menor = i < j ? i : j;
else
menor = j;
75 Programação OO
Operador Condicional
int i = 1, j = 2, k = 3;
i = i > k ? i : k;
i = i > 0 ? j : k;
i = k == i && k != j ? i + j : i - j;
76 Programação OO
Operador Condicional
int i = 1, j = 2, k = 3;
i = i > k ? i : k; // 3
i = i > 0 ? j : k; // 2
i = k == i && k != j ? i + j : i - j; // -1
77 Programação OO
Exercícios
78 Programação OO
Estruturas de Controle - Bloco
Bloco de Comandos
Sintaxe:
{
/* declaracao e comandos */
}
79 Programação OO
Estruturas de Controle - Bloco
O que será impresso nesses dois casos ?
public static void main(String[]args) public static void main(String[]args)
{ {
int i = 1; int i = 1;
{ {
int j; int i, j;
i = 2; i = 2;
j = 10; j = 10;
i += j; i += j;
} }
i++; i++;
System.out.println(i); System.out.println(i);
} }
80 Programação OO
Estruturas de Controle - Bloco
O que será impresso nesses dois casos ?
public static void main(String[]args) public static void main(String[]args)
{ {
int i = 1; int i = 1;
{ {
int j; int i, j;
i = 2; i = 2;
j = 10; j = 10;
i += j; i += j;
} }
i++; i++;
System.out.println(i); System.out.println(i);
} }
81 Programação OO
Estruturas de Controle – if..else
Comando if...else
Sintaxes:
if (expressao_logica) if (expressao_logica)
comando; bloco_de_comandos
if (expressao_logica) if (expressao_logica)
comando1; bloco_de_comandos1
else else
comando2; bloco_de_comandos2
if (expressao_logica1) if (expressao_logica)
comando1; bloco_de_comandos1
else if (expressao_logica2) else if (expressao_logica)
comando2; bloco_de_comandos2
else else
comando3; bloco_de_comandos3
82 Programação OO
Exercícios
83 Programação OO
Estruturas de Controle – while
Comando while
Sintaxe:
while (expressao_logica)
comando;
while (expressao_logica)
bloco_de_comandos
84 Programação OO
Estruturas de Controle – do..while
Comando do..while
Sintaxe:
do
bloco_de_comandos
while (expressao_logica);
85 Programação OO
Estruturas de Controle – for
Comando for
86 Programação OO
Estruturas de Controle – for
87 Programação OO
Estruturas de Controle – for
é equivalente a:
expr_inicializacao;
while(expressao_logica)
{
comando1;
comando2;
expr_incremento;
}
88 Programação OO
Exercícios
89 Programação OO
Estruturas de Controle – switch
Comando switch
É um comando de seleção semelhante ao if-else. Entretanto, ele é
mais recomendado quando temos muitos caminhos possíveis a
partir de uma única condição.
A expressão do switch tem que ser, obrigatoriamente, do tipo
caracter ou inteiro (byte, short, int ou long).
Sintaxe:
opção1, opção2, opção3,
switch(expressão) etc., podem ser variáveis ou
{ constantes.
case opção1: ...
90 Programação OO
Estruturas de Controle – switch
Importante:
1. Quando o switch encontra uma opção igual ao valor da expressão, ele
executa todos os comandos daí em diante até encontrar o comando
break.
2. O case pode ter um comando vazio.
Exemplo:
switch(caracter)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u': System.out.println("É uma vogal");
break;
Exemplo:
int n;
while(...)
{ Sai do for, que é o
... comando de repetição
for (...) mais interno.
{
...
Não executa o n++
if (n == 0)
break;
n++;
}
System.out.println(n);
}
...
92 Programação OO
Estruturas de Controle – continue
Exemplo:
int n;
while(...)
{
...
Para o comando for
for (...) executa a expressão de
{ incremento e depois testa a
n = ...; expressão lógica.
if (n == 0)
continue;
... No while e do..while
}
if (n < 0)
reinicia a iteração testando
continue; a operação lógica
...
}
...
93 Programação OO
Exercícios
Exercício 14: Ler notas de alunos até que o usuário digite -1. Ao
final imprimir a quantidade de alunos, a média da turma, a maior
nota e a menor nota
Exercício 15: Ler caracteres até que o usuário digite '.' (ponto). Ao
final imprimir: a quantidade de vogais, a quantidade de dígitos e a
quantidade dos demais caracteres.
94 Programação OO