2. Professor Dal Prá
Quem é o professor ?
• José Volmei Dal Prá Junior
– Analista de sistemas da CooperAlfa
• Trabalhamos com
– Progress
– Java
– Qualquer outra tecnologia que resolva o problema
– Consultor de tecnologias
– Trabalha com tecnologia deste 2003
– Java durante a graduação
• Pós graduação
• Depois experiências práticas e muito estudo
3. Professor Dal Prá
Fale sobre você
• Nome
• Trabalha? Estuda?
• Experiência com desenvolvimento
• Experiência com Java
• Expectativas
4. Professor Dal Prá
Qual é o objetivo da disciplina?
• Aprender conceitos de Orientação a
Objetos
• Como usar na prática os conceitos
– Java será uma ferramenta para aplicar os
conceitos
5. Como vamos trabalhar?
• Explicação dos conceitos
• Como funciona no Java
• Exercícios
– Mão na massa!
6. Avaliações
• A1
• A2
• Trabalho prático
– Sistema completo
– Apresentar
• A3
– Esperamos que ninguém precise dela!!
7. Professor Dal Prá
Material apoio
• Apostila
• Apresentações
• Oracle (www.java.oracle.com)
• Google
• GUJ
• Professor via jrdalpra@gmail.com
8. O que é Java?
• É uma plataforma
– Desenvolvimento
• Linguagem de programação
– Java
– Outras (JRuby, Groovy, Scala, Closure, etc)
• Bibliotecas
– oficiais
– terceiros
– Execução não é “nativa”
• Máquina virtual
– Oficial
– Terceiros
11. Como funciona o processo de
desenvolvimento?
1) Edita
2) Compila
3) Executa
Gera um
arquivo
“.class”
12. Máquina Virtual?
• É um software que faz um “meio de campo”
entre o programa Java compilado (bytecode)
e o ambiente de execução (Sistema
Operacional)
• Ela que permite que o Java seja
multiplataforma
13. Professor Dal Prá
Características da plataforma Java
• Orientada a objetos
– Herança simples
– Interfaces
• Sintaxe semelhante a C++
• Fortemente tipada
• Extensível
• Sem ponteiros
14. Professor Dal Prá
• API dá suporte a
– Distribuição (RMI)
– Threads
– Acesso a bancos de dados (JDBC)
– Acesso a recursos e implementações nativas
(JNI)
• Compilação otimizada em tempo de
execução (JIT)
Características da plataforma Java
15. Professor Dal Prá
• Execução em modo texto
• Execução em modo gráfico
(Swing/AWT/SWT)
• Execução no servidor (Servlet)
• Execução no navegado (Applets)
Características da plataforma Java
16. Professor Dal Prá
• Indicada para criação de sistemas grandes,
complexos e com grande número de
desenvolvedores
• Primeira versão é mais trabalhosa do que uma
versão feita em ferramentas RAD.
• Facilita na manutenção corretiva e evolutiva
Padrões de projeto são muito importantes
• Muitas bibliotecas gratuitas Frameworks
Características da plataforma Java
17. Professor Dal Prá
• Tudo é especificação
– o que é necessário?
• Depois vem a implementação
– como fazer para atender o que é necessário
• Máquina virtual de vários fabricantes
– Oracle
– IBM
– etc
Características da plataforma Java
18. Professor Dal Prá
Sopa de letrinhas
• JDK
• JRE
• JVM
• KVM
• JSP
• POJO
• Bean
• JSE
• JEE
• JME
• DI
• ORM
• JDBC
• RMI
20. Ferramentas
• Qualquer editor de texto + compilador javac
• Eclipse
• Netbeans
• IntelliJ IDEA
• JBuilder
• BlueJ
Vamos usar
este
21. O que vamos fazer agora?
• Vamos aprender os comandos básicos
– Não envolvem orientação a objetos
• Familiarizar-se com o Eclipse
– Como criar projetos, arquivos e executar os
programas
22. Primeiro programa
• Abrir o Eclipse
• Novo projeto
• Novo “Programa”
– Imprime seu nome
public class Programa {
public static void main(String[] args){
System.out.println("Jose");
}
}
23. Variáveis
• Estão dentro de um bloco de código
– Por enquanto vamos chamar de função
• Ser para guardar valores durante um certo
período
tipo nomeDaVariavel = valorInicial;
Atribuição (não é comparação)
Pode ser um valor, cálculo ou
chamada de “função”
Regras:
• case sensitive
• começar com uma letra, $ ou _
• não pode ter espaços
24. Quais são os tipos possíveis?
Tipo O que podemos guardar? Exemplo
byte Inteiros de -128 a 127 – poupa espaço byte idade = 18;
short Inteiros de -32.768 a 32.767 – poupa espaço short contador = 1000;
int Inteiros de -2,147,483,648 a 2,147,483,647 (32bits) int tamanho = 100000;
long Inteiros gigantes (64bits) long sequencia = 100000000l;
float Decimais de precisão simples (32bits) float valor = 10.05f;
double Decimais de precisão dupla (64bits) double total = 1000.10;
boolean Valores lógicos. true ou false boolean aceita = true;
char Caracter unicode char letra = „a‟;
Estes tipos são chamados de tipos PRIMITIVOS, pois
não estão ligados aos conceitos de POO
25. Pense em variáveis como se fossem copos
• Cada copo sabe guardar um tipo de líquido
short
int
long
float
double
27. E como faço para guardar palavras?
• String
– não é um tipo primitivo
– mas ao utilizarmos, parece que é
– é, basicamente, uma matriz de char
String nome = “Seu nome aqui”;
String sobrenome = “Seu sobrenome aqui”;
Sempre entre aspas duplas
28. O que fazer com estas variáveis?
• Variáveis sozinhas não tem utilidade alguma,
certo?
• Como podemos modificar os valores?
• Como “grudar” palavras umas nas outras?
• Como fazer comparações?
• Como desviar o fluxo do programa?
29. Como fazer cálculos matemáticos?
Operador O que faz? Exemplos
+ Soma valores
int a = 1; int b = 1; int c = a + b;
int x = 25 + 25;
- Subtrair valores
int a = 10; int b = 5; int c = a - b;
int y = a * 30;
* Multiplica valores
int a = 2; int b = 2; int c = a * b;
int x = y * 3 * c;
/ Divide valores. Cuidado com a divisão por 0
int a = 10; int b = 2; int c = a / b;
int z = 10 / c;
% Resto da divisão de um valor por outro
int a = 10; int b = 3; int c = a % b;
int w = k % y;
30. Como guardar os cálculos em uma variável?
Operado
r
O que faz? Exemplos
=
“Joga” um valor que está à direita dele para uma
variavel que está à esquerda
int idade = 18;
int quadrado = x * x;
+=
Tem o mesmo efeito de somar o valor atual da
variável com o valor que está a esquerda;
int a = 10; a += 1;
int a = 10; a = a + 1
-=
Tem o mesmo efeito de diminuir o valor atual da
variável com o valor que está a esquerda;
int a = 10; a -= 1;
int a = 10; a = a - 1;
*=
Tem o mesmo efeito de multiplicar o valor atual da
variável com o valor que está a esquerda;
int a = 10; a *= 2;
int a = 10; a = a * 2;
/=
Tem o mesmo efeito de dividir o valor atual da
variável pelo valor que está a esquerda;
int a = 10; a /= 2;
int a = 10; a = a / 2;
31. Operadores unários
• Fazem a operação e já guardam o valor na
própria variável
Operador O que faz? Exemplos
++ Soma 1 no valor atual da variável e já guarda na
própria variável
contador++;
++contador;
-- Subtrai 1 no valor atual da variável e já guarda na
própria variável
contador--;
--contador;
Tem diferença de estar à direita ou à esquerda da variável
• direita: soma é feita depois da utilização da variável
• esquerda: soma é feita antes da utilização da variável
32. Como anexar uma palavra na outra?
String nome = "Seu nome";
String sobrenome = "Seu sobrenome";
String nomeCompleto = nome + " " + sobrenome;
String frase = "string" + " " + 10 + " " + "concatenada";
33. E se eu quiser comparar um valor ou variável com
outra?
Operador O que faz? Exemplo
== Verifica se um é igual ao outro a == b; 1 == 2; 10.5 == 20;
!= Verifica se um é diferente do outro (não iguais) a != b; 1 != 2; 10.5 != 20;
> Verifica se um é maior que o outro a > b; 1 > 2; 10.5 > 20;
>= Verifica se um é maior ou igual ao outro a >= b; 1 >= 2; 10.5 >= 20;
< Verifica se um é menor que o outro a < b; 1 < 2; 10.5 < 20;
<= Verifica se um é menor ou igual ao outro a <= b; 1 <= 2; 10.5 <= 20;
Sempre retornam true ou false
34. Ok. Mas meus sistemas precisarão de desvios
no fluxo de execução. Como faço?
Use o comando SE ... ENTÃO
if (verdade)
faz_tal_coisa;
int idade = 15;
if ( idade >= 18 )
System.out.println("Maior de idade!"); Uma linha de
comando apenas!
Sempre uma expressão lógica (true ou false)
35. E caso seu precise executar mais de um comando após o IF?
Use um "bloco" de código
if (verdade) {
faz_tal_coisa;
faz_outra_coisa;
} Fecha o bloco
Abre o bloco
Sempre use blocos, mesmo que para comandos simples!
36. if (verdade) {
faz_tal_coisa;
} else {
faz_outra_coisa;
}
E caso eu queira fazer alguma coisa quando o IF
falhar?
• Use o comando SE ... ENTÃO ... SENÃO
Quer dizer: “Caso o if acima seja
false execute este bloco baixo”
37. O IF usa expressões lógicas. E se eu quiser
fazer mais do que uma comparação?
Expressão O que faz? Exemplos
& Faz uma operação de conjunção
(E) entre uma expressão e outra
if ( idade > 15 and idade < 18 ) {
... }
&& Igual ao &, porém nem sempre
avalia a segunda expressão
if (idade > 15 and idade < 18 ) {
... }
|
Faz uma operação de disjunção
(OU) entre uma expressão e
outra
if ( temSaldo | ehClienteEspecial ) {
... }
|| Igual ao |, porém nem sempre
avalia a segunda expressão
if ( temSaldo || ehClienteEspecial ) {
... }
! Inverte a expressão (não) if (!temSaldo){ ... }
Use && e || sempre