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)
• Google
• 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

Programação Orientada a Objetos - 001

  • 1.
  • 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á Falesobre 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á Materialapoio • 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
  • 9.
    Como está divididaa plataforma?
  • 10.
    Vamos estudar umaparte do SE
  • 11.
    Como funciona oprocesso 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ísticasda 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á Sopade letrinhas • JDK • JRE • JVM • KVM • JSP • POJO • Bean • JSE • JEE • JME • DI • ORM • JDBC • RMI
  • 19.
    Professor Dal Prá MercadoJava •Mundo •Brasil •Chapecó e região
  • 20.
    Ferramentas • Qualquer editorde texto + compilador javac • Eclipse • Netbeans • IntelliJ IDEA • JBuilder • BlueJ Vamos usar este
  • 21.
    O que vamosfazer 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 • Abriro 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 dentrode 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 ostipos 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áveiscomo se fossem copos • Cada copo sabe guardar um tipo de líquido short int long float double
  • 26.
    Conversão de tipos trocaro conteúdo de copo Implícita Explícita
  • 27.
    E como façopara 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 fazercom 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álculosmatemá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 oscá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 • Fazema 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 umapalavra na outra? String nome = "Seu nome"; String sobrenome = "Seu sobrenome"; String nomeCompleto = nome + " " + sobrenome; String frase = "string" + " " + 10 + " " + "concatenada";
  • 33.
    E se euquiser 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 meussistemas 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 seuprecise 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 usaexpressõ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
  • 38.
    Lembra da TABELAVERDADE? Expressões && || false false false false false true false true true false false true true true true true Expressões ! true false false true
  • 39.