View
341
Download
0
Category
Preview:
DESCRIPTION
Aula 1 - Programação Orientada a Objetos
Citation preview
Professor Dal Prá
Programação Orientada a
Objetos
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
Professor Dal Prá
Fale sobre você
• Nome
• Trabalha? Estuda?
• Experiência com desenvolvimento
• Experiência com Java
• Expectativas
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
Como vamos trabalhar?
• Explicação dos conceitos
• Como funciona no Java
• Exercícios
– Mão na massa!
Avaliações
• A1
• A2
• Trabalho prático
– Sistema completo
– Apresentar
• A3
– Esperamos que ninguém precise dela!!
Professor Dal Prá
Material apoio
• Apostila
• Apresentações
• Oracle (www.java.oracle.com)
• GUJ
• Professor via jrdalpra@gmail.com
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
Como está dividida a plataforma?
Vamos estudar uma parte do SE
Como funciona o processo de desenvolvimento?
1) Edita
2) Compila
3) Executa
Gera um
arquivo
“.class”
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
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
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
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
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
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
Professor Dal Prá
Sopa de letrinhas
• JDK
• JRE
• JVM
• KVM
• JSP
• POJO
• Bean
• JSE
• JEE
• JME
• DI
• ORM
• JDBC
• RMI
Professor Dal Prá
Mercado Java
•Mundo
•Brasil
•Chapecó e região
Ferramentas
• Qualquer editor de texto + compilador javac
• Eclipse
• Netbeans
• IntelliJ IDEA
• JBuilder
• BlueJ
Vamos usar
este
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
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"); } }
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
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
Pense em variáveis como se fossem copos
• Cada copo sabe guardar um tipo de líquido
short
int
long
float
double
Conversão de tipos trocar o conteúdo de copo
Implícita
Explícita
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
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?
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;
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;
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
Como anexar uma palavra na outra?
String nome = "Seu nome";
String sobrenome = "Seu sobrenome";
String nomeCompleto = nome + " " + sobrenome;
String frase = "string" + " " + 10 + " " + "concatenada";
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
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)
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!
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”
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
Lembra da TABELA VERDADE?
Expressões && ||
false false false false
false true false true
true false false true
true true true true
Expressões !
true false
false true
Mão na massa!!
https://gist.github.com/1382307
Recommended