SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11Luis Ferreira
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12Luis Ferreira
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Natanael Fonseca
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoMarconi Rodrigues
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java BasicoJoel Lobo
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHPAugusto Pascutti
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasBreno Vitorino
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – IIGabriel Faustino
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0César Augusto Pessôa
 
Aula 2 conversao de variaveis j option-pane
Aula 2   conversao de variaveis j option-paneAula 2   conversao de variaveis j option-pane
Aula 2 conversao de variaveis j option-paneRafael Pinheiro
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 

La actualidad más candente (20)

Java primeiros-passos
Java primeiros-passosJava primeiros-passos
Java primeiros-passos
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0
 
Aula 2 conversao de variaveis j option-pane
Aula 2   conversao de variaveis j option-paneAula 2   conversao de variaveis j option-pane
Aula 2 conversao de variaveis j option-pane
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Java2
Java2Java2
Java2
 

Destacado (10)

JRebel para desenvolvedores
JRebel para desenvolvedoresJRebel para desenvolvedores
JRebel para desenvolvedores
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
JRebel para os Chefes
JRebel para os ChefesJRebel para os Chefes
JRebel para os Chefes
 
Apostila de poo em c++
Apostila de poo em c++Apostila de poo em c++
Apostila de poo em c++
 
Herança e polimorfismo em Java
Herança e polimorfismo em Java Herança e polimorfismo em Java
Herança e polimorfismo em Java
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a ObjetosProgramação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 

Similar a POO Java Intro

Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Programação "Estruturada" com Java
Programação "Estruturada" com JavaProgramação "Estruturada" com Java
Programação "Estruturada" com JavaLuiz Ricardo Silva
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaDaniel Brandão
 
Google android p/ Noobs - SUPER 2014 - UPE
Google android p/ Noobs - SUPER 2014 - UPEGoogle android p/ Noobs - SUPER 2014 - UPE
Google android p/ Noobs - SUPER 2014 - UPELevi Saturnino
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência JavaMario Jorge Pereira
 
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Luís Cobucci
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxMarceloRosenbrock1
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN StackBruno Catão
 
Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: IntroduçãoWesley R. Bezerra
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Elvis Araújo
 
Objects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do códigoObjects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do códigoBonoBee
 

Similar a POO Java Intro (20)

Test-driven Development
Test-driven DevelopmentTest-driven Development
Test-driven Development
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Java
JavaJava
Java
 
Java - Aula 08
Java - Aula 08Java - Aula 08
Java - Aula 08
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Programação "Estruturada" com Java
Programação "Estruturada" com JavaProgramação "Estruturada" com Java
Programação "Estruturada" com Java
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem Java
 
1.introducao java
1.introducao java1.introducao java
1.introducao java
 
Google android p/ Noobs - SUPER 2014 - UPE
Google android p/ Noobs - SUPER 2014 - UPEGoogle android p/ Noobs - SUPER 2014 - UPE
Google android p/ Noobs - SUPER 2014 - UPE
 
Linguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação JavaLinguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação Java
 
Java Básico
Java BásicoJava Básico
Java Básico
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptx
 
TWP40 Revisão Geral 3
TWP40 Revisão Geral 3TWP40 Revisão Geral 3
TWP40 Revisão Geral 3
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: Introdução
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2
 
Objects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do códigoObjects calisthenics - Os 10 mandamentos do rei do código
Objects calisthenics - Os 10 mandamentos do rei do código
 

POO Java Intro

  • 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
  • 9. Como está dividida a plataforma?
  • 10. Vamos estudar uma parte do SE
  • 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
  • 19. Professor Dal Prá Mercado Java •Mundo •Brasil •Chapecó e região
  • 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
  • 26. Conversão de tipos trocar o conteúdo de copo Implícita Explícita
  • 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
  • 38. 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