Nosso Primeiro Programa Javaariane/ach2001/ACH2001-Aula05-Converso… · SISTEMAS DE INFORMAÇÃO 1...

Preview:

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

Recommended