Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
SISTEMAS DEINFORMAÇÃO
1
Professoras:Ariane Machado Lima Fátima L. S. Nunes
Java –
linguagem, jvm, jdk, jre, ide
Nosso Primeiro
Programa Java
SISTEMAS DEINFORMAÇÃO
2
Lembrando os objetivos
desta disciplina Aprender a programar. Para isso precisamos
escolher um paradigma...Paradigma de Programação Orientada a Objetos
(POO)
• usando a linguagem Java
SISTEMAS DEINFORMAÇÃO
3
Java
Java é uma linguagem
POO
híbrido de compilada e interpretada
Para se usar uma linguagem é necessário ter
seu compilador e/ou seu interpretador No caso de Java, ambos
SISTEMAS DEINFORMAÇÃO
4
Ambiente de Desenvolvimento
e Ambiente de Execução
Análise sintática
e “compilação”
Portabilidade
SISTEMAS DEINFORMAÇÃO
5
Ambiente de Execução
O que é necessário?
SISTEMAS DEINFORMAÇÃO
6
Ambiente de Execução
O que é necessário?Máquina Virtual Java
JRE – Java Runtime EnvironmentVersão atual: 6
SISTEMAS DEINFORMAÇÃO
7
JDK – Java Development Kit Compilador java (javac): recebe um arquivo fonte
nomedoarquivo.java (programa java) e gera um
arquivo de bytecodes (nomedoarquivo.class)
JVM – Máquina Virtual Java: capaz de interpretar os
bytecodes
APIs - Application Programming Interfaces:
bibliotecas de códigos prontos, pré-definidos, que
auxiliam muuuuito a programação
pode ter outros componentes...
SISTEMAS DEINFORMAÇÃO
8
Diferentes JDKs JDK SE (Standard Edition): kit básico para todas as
aplicações (com exceção de micro edition)
JVM (jre), APIs básicas, compilador
JDK EE (Enterprise Edition): APIs e outros
“acessórios” para aplicações servidor
JDK ME (Micro Edition): APIs e
“acessórios” para aplicações em
dispositivos eletrônicos como celulares,
palms, chaves, etc.
SISTEMAS DEINFORMAÇÃO
9
Vamos usar só o SE !!! JDK SE (Standard Edition): kit básico para todas as
aplicações (com exceção de micro edition)
JVM (jre), APIs básicas, compilador
JDK EE (Enterprise Edition): APIs e outros
“acessórios” para aplicações servidor
JDK ME (Micro Edition): APIs e
“acessórios” para aplicações em
dispositivos eletrônicos como celulares,
palms, chaves, etc.
SISTEMAS DEINFORMAÇÃO
10
Ambiente integrado (gráfico)
de desenvolvimento IDE – Integrated Development
Enviroment
Ambiente gráfico que permite
escrever código (editor)
compilar, ligar
rodar
depurar
muitas outras coisas
(dependendo do IDE)
SISTEMAS DEINFORMAÇÃO
11
Ambiente integrado (gráfico) de
desenvolvimento
Objetivo: agilizar o
desenvolvimento
Não confundir com o JDK
(KIT x ambiente de
desenvolvimento)
SISTEMAS DEINFORMAÇÃO
12
Exemplos (que suportam
Java):
Eclipse
BlueJ
JCreator
NetBeans
DrJava
Ambiente integrado (gráfico) de
desenvolvimento
SISTEMAS DEINFORMAÇÃO
13
Exemplos (que suportam
Java):
Eclipse
BlueJ
JCreator
NetBeans
DrJava
Ambiente integrado (gráfico) de
desenvolvimento
SISTEMAS DEINFORMAÇÃO
14
Ambiente de desenvolvimento (IDE) Java
Leve
Desenhado para estudantes (interface intuitiva)
Funcionalidades para usuários avançados
Suporta Java 1.4, 5 e 6
Roda em Linux, Windows e Mac OS
http://drjava.org
Apêndice A do livro texto
SISTEMAS DEINFORMAÇÃO
15
SISTEMAS DEINFORMAÇÃO
16
Nosso Primeiro
Programa Java
SISTEMAS DEINFORMAÇÃO
17
Teatro de Objetos
SISTEMAS DEINFORMAÇÃO
18
Teatro de Objetos
Peça Papéis Atores Mensagens compreendidas e seus scripts Envio de mensagem
SISTEMAS DEINFORMAÇÃO
19
Teatro de Objetos e POO
SISTEMAS DEINFORMAÇÃO
20
Teatro de Objetos e POO
Os cartões de identificação definem papéis
Os scripts definem o comportamento dos atores no decorrer da peça
Em POO podemos fazer o mesmo... … vejamos em Java
SISTEMAS DEINFORMAÇÃO
21
Exemplo: Técnico - Papel
SISTEMAS DEINFORMAÇÃO
22
Exemplo: Técnico - Script
SISTEMAS DEINFORMAÇÃO
23
class Tecnico {
//atributos
//métodos
}
SISTEMAS DEINFORMAÇÃO
24
class Tecnico {
//atributos time;
//métodos
}
SISTEMAS DEINFORMAÇÃO
25
class Tecnico {
//atributos time;
//métodos
suaVez { // Escolha um de seus jogadores para efetuar a cobrança... }
repitaCobranca { // Envie a mensagem suaVez para o jogador que acabou de efetuar a
cobrança }
venceuOTime (nomeDoTime) { // Se nomeDoTime é igual ao atributo time no seu cartão de
identificação ... }
}
SISTEMAS DEINFORMAÇÃO
26
class Tecnico {
//atributos time;
//métodos
suaVez { // Escolha um de seus jogadores para efetuar a cobrança... }
repitaCobranca { // Envie a mensagem suaVez para o jogador que acabou de efetuar a
cobrança }
venceuOTime (nomeDoTime) { // Se nomeDoTime é igual ao atributo time no seu cartão de
identificação ... }
}
Palavra reservada
SISTEMAS DEINFORMAÇÃO
27
class Tecnico {
//atributos time;
//métodos
suaVez { // Escolha um de seus jogadores para efetuar a cobrança... }
repitaCobranca { // Envie a mensagem suaVez para o jogador que acabou de efetuar a
cobrança }
venceuOTime (nomeDoTime) { // Se nomeDoTime é igual ao atributo time no seu cartão de
identificação ... }
}
Palavra reservada
Tipo
SISTEMAS DEINFORMAÇÃO
28
class Tecnico {
//atributos time;
//métodos
suaVez { // Escolha um de seus jogadores para efetuar a cobrança... }
repitaCobrança { // Envie a mensagem suaVez para o jogador que acabou de efetuar a
cobrança }
venceuOTime (nomeDoTime) { // Se nomeDoTime é igual ao atributo time no seu cartão de
identificação ... }
}
Palavra reservada
Tipo
Comentários
SISTEMAS DEINFORMAÇÃO
29
Conversor de Celsius para Fahrenheit
Fórmula:
Na “linguagem” de computadores/calculadoras:
F = 9*C/5 + 32
Vamos escrever um programa Java para isso
SISTEMAS DEINFORMAÇÃO
30
// Esta classe converte o valor de 40 graus Celsius para Fahrenheit
class Conversor{ int celsiusParaFahrenheit()
{ return 9 * 40 / 5 + 32;
}
}
F = 9*C/5 + 32
SISTEMAS DEINFORMAÇÃO
31
// Esta classe converte o valor de 40 graus Celsius para Fahrenheit
class Conversor{ int celsiusParaFahrenheit()
{ return 9 * 40 / 5 + 32;
}
}
Tipos
Tipo Abstrato de dado
Tipo Primitivo
SISTEMAS DEINFORMAÇÃO
32
// Esta classe converte o valor de 40 graus Celsius para Fahrenheit
class Conversor{ int celsiusParaFahrenheit()
{ return 9 * 40 / 5 + 32;
}
}
Tipos
Tipo Abstrato de dado
Tipo Primitivo
Palavra reservada
SISTEMAS DEINFORMAÇÃO
33
// Esta classe converte o valor de 40 graus Celsius para Fahrenheit
class Conversor{ int celsiusParaFahrenheit()
{ return 9 * 40 / 5 + 32;
}
}
Tipos
Tipo Abstrato de dado
Tipo Primitivo
Palavra reservada
Indentação
SISTEMAS DEINFORMAÇÃO
34
// Esta classe converte o valor de 40 graus Celsius para Fahrenheit
class Conversor{ int celsiusParaFahrenheit()
{ return 9 * 40 / 5 + 32;
}
}
Tipos
Tipo Abstrato de dado
Tipo Primitivo
Palavra reservada
Indentação
BONS NOMES!!!!
SISTEMAS DEINFORMAÇÃO
35
// Esta classe converte o valor de 40 graus Celsius para Fahrenheit
class Conversor{ int celsiusParaFahrenheit()
{ return 9 * 40 / 5 + 32;
}
}
Conversor conv1 = new Conversor();conv1.celsiusParaFahrenheit()
SISTEMAS DEINFORMAÇÃO
36
DrJava
SISTEMAS DEINFORMAÇÃO
37
Algum problema?
SISTEMAS DEINFORMAÇÃO
38
Algum problema?
Só converte o valor de 40 graus Celsius!!!!
Queremos parametrizar o valor de entrada
SISTEMAS DEINFORMAÇÃO
39
// Esta classe converte QUALQUER valor de graus Celsius para Fahrenheit
class ConversorParametrizado{ int celsiusParaFahrenheit ( int c )
{ return 9 * c / 5 + 32;
}
}
SISTEMAS DEINFORMAÇÃO
40
// Esta classe converte QUALQUER valor de graus Celsius para Fahrenheit
class ConversorParametrizado{ int celsiusParaFahrenheit ( int c )
{ return 9 * c / 5 + 32;
}
}
ConversorParametrizado conv2 = new ConversorParametrizado();conv2.celsiusParaFahrenheit(100)
SISTEMAS DEINFORMAÇÃO
41
DrJava
SISTEMAS DEINFORMAÇÃO
42
Algum problema?
SISTEMAS DEINFORMAÇÃO
43
Algum problema?
Manipula apenas números inteiros
O que o computador faz com números quebrados?
SISTEMAS DEINFORMAÇÃO
44
Algum problema?
Manipula apenas números inteiros
Computador trunca valores quebrados
resultado errado se 9 * c não for um múltiplo de 5
pior se a fórmula fosse escrita como (9/5) * c + 32
SISTEMAS DEINFORMAÇÃO
45
Tipos primitivos Java para números de ponto flutuante
Ponto flutuante:0.00523 = 5.23 * 10-3 = 5.23E-3
SISTEMAS DEINFORMAÇÃO
46
Tipos primitivos Java para números de ponto flutuante
Ponto flutuante:0.00523 = 5.23 * 10-3 = 5.23E-3
Tipo float (floating point)Armazenado em 4 bytes (32 bits)Precisão de 23 bits (~ 7 casas decimais)
SISTEMAS DEINFORMAÇÃO
47
Tipos primitivos Java para números de ponto flutuante
Ponto flutuante:0.00523 = 5.23 * 10-3 = 5.23E-3
Tipo float (floating point)Armazenado em 4 bytes (32 bits)Precisão de 23 bits (~ 7 casas decimais)
Tipo double (precisão dupla)Armazenado em 8 bytesPrecisão de 52 bits (~ 16 casas decimais)
SISTEMAS DEINFORMAÇÃO
48
Tipos primitivos Java para números de ponto flutuante
Ponto flutuante:0.00523 = 5.23 * 10-3 = 5.23E-3
Tipo float (floating point)Armazenado em 4 bytesPrecisão de 23 bits (~ 7 casas decimais)
Tipo double (precisão dupla)Armazenado em 8 bytesPrecisão de 52 bits (~ 16 casas decimais)
Mais usado
SISTEMAS DEINFORMAÇÃO
49
Tipos primitivos Java para números de ponto flutuante
Mesmo o double é uma aproximação. Cuidado...
SISTEMAS DEINFORMAÇÃO
50
Tipos primitivos Java para números de ponto flutuante
Mesmo o double é uma aproximação. Cuidado...
O que você esperaria disso?
double x = 1.0 x = x / 59049 x = x * 59049
SISTEMAS DEINFORMAÇÃO
51
DrJava
SISTEMAS DEINFORMAÇÃO
52
DrJava – ConversorDouble
SISTEMAS DEINFORMAÇÃO
53
Algum problema?
SISTEMAS DEINFORMAÇÃO
54
Algum problema?
Só faz conversão de Celsius para Fahrenheit
SISTEMAS DEINFORMAÇÃO
55
Algum problema?
Só faz conversão de Celsius para Fahrenheit
SISTEMAS DEINFORMAÇÃO
56
Algum problema?
Só faz conversão de Celsius para Fahrenheit
C = 5 * (F -32) / 9
CUIDADO COM A PRECÊNCIA DE OPERADORES!!!
SISTEMAS DEINFORMAÇÃO
57
DrJava – ConversorBidirecional
SISTEMAS DEINFORMAÇÃO
58
Professoras:Ariane Machado Lima Fátima L. S. Nunes
Java –
linguagem, jvm, jdk, jre, ide
Nosso Primeiro
Programa Java