Introdução à Linguagem Java com JCreator

60
Introdução à Linguagem Introdução à Linguagem Java com JCreator Java com JCreator Christien L. Rachid Christien L. Rachid UNIPAC UNIPAC E-Mail: E-Mail: [email protected] [email protected] URL: URL: http://www.christienrachid.xpg.com. http://www.christienrachid.xpg.com. br br

description

Introdução à Linguagem Java com JCreator. Christien L. Rachid UNIPAC E-Mail: [email protected] URL: http://www.christienrachid.xpg.com.br. Plano do Capítulo. Fases da Programação Ambientes Integrados de Desenvolvimento (IDE) JCreator 3.50 LE - PowerPoint PPT Presentation

Transcript of Introdução à Linguagem Java com JCreator

Page 1: Introdução à Linguagem Java com JCreator

Introdução à Linguagem Java Introdução à Linguagem Java com JCreatorcom JCreator

Christien L. RachidChristien L. RachidUNIPACUNIPAC

E-Mail: [email protected]: [email protected]: URL:

http://www.christienrachid.xpg.com.brhttp://www.christienrachid.xpg.com.br

Page 2: Introdução à Linguagem Java com JCreator

2

Plano do Plano do CapítuloCapítulo

• Fases da ProgramaçãoFases da Programação

• Ambientes Integrados de Desenvolvimento (IDE)Ambientes Integrados de Desenvolvimento (IDE)– JCreator 3.50 LE

• Introdução à Linguagem Java (Revisão)Introdução à Linguagem Java (Revisão)

Page 3: Introdução à Linguagem Java com JCreator

3

Fases da ProgramaFases da Programaçção Javaão Java

Disco

Fase 1

EditorPrograma é criado no editor e armazenado em disco.

Disco

Fase 2

CompiladorCompilador cria bytecodes e os armazena em disco.

.Fase 3

Disco

Carregadorde Classes

Carregador de classe coloca bytecodes na memória.

Memória Principal

...

Page 4: Introdução à Linguagem Java com JCreator

4

Fases da ProgramaFases da Programaçção Javaão Java

.Fase 4 Verificador de

bytecodes Verificador de bytecodes confirma que todos os bytecodes são válidos e não violam restrições de segurança do Java

Memória Principal

...

.Fase 5 Intepretador Interpretador lê os

bytecodes e os traduz para uma linguagem que o computador pode entender, possivelmente armazenando valores dos dados enquanto executa o programa.

Memória Principal

...

Page 5: Introdução à Linguagem Java com JCreator

5

Ambientes Integrados de Desenvolvimento Ambientes Integrados de Desenvolvimento (IDE) (IDE)

• Editores de texto com suporte a programação Editores de texto com suporte a programação Java Java – jEdit, SciTE, tsWebEditor, Crimson Editor, ConTEXT

Programmers editor, JEXT Java Text Editor, JED, Programmer’s File Editor (PFE)

• IDEs BásicosIDEs Básicos– JCreator Lite Edition (LE) (Gratuito)

• URL: http://www.jcreator.com/

– Gel (Gratuito)

• URL: http://www.gexperts.com/

• Desenvolvimento está suspenso desde meados de 2004

Page 6: Introdução à Linguagem Java com JCreator

6

Ambientes Integrados de Desenvolvimento Ambientes Integrados de Desenvolvimento (IDE) (IDE)

• IDEs AvançadosIDEs Avançados– Eclipse

• URL: http://www.eclipse.org

– NetBeans

• URL: http://www.netbeans.org

– JBuilder

• URL: http://www.borland.com

– Jdeveloper 10g

• URL: http://www.oracle.com.br

Page 7: Introdução à Linguagem Java com JCreator

7

JCreator JCreator 3.50 LE 3.50 LE

• Porque adotamos Porque adotamos – Pequeno tamanho (2,21 MB - Instalador), rápida carga,

simples

• Não requer abertura de Prompt de comando, nem uso de comandos do DOS para compilar ou executar os programas Java, estes são executados diretamente, através de menus ou ícones

• ajudam a superar limitações em comparação com outras IDE mais sofisticadas

• Facilita o trabalho do programador iniciante em Java

– Apresenta vários recursos que facilitam o trabalho de desenvolvimento

Page 8: Introdução à Linguagem Java com JCreator

8

JCreator JCreator 3.50 LE 3.50 LE

• RequisitosRequisitos– Instalação do JDK (6.0):

• http://java.sun.com/javase/downloads/index.jsp

• Contém as ferramentas para trabalharmos com o Java (compiladores, viewers, etc).

• Contém o ambiente de execução Java (JRE)

– Documentação da linguagem Java. (J2SE 6.0 Documentation)

• http://java.sun.com/javase/downloads/index.jsp

• Pode ser integrada na IDE, facilitando a consulta a dúvidas na linguagem.

– Instalação do JCreator Lite Edition (LE)

• URL: http://www.jcreator.com/

Page 9: Introdução à Linguagem Java com JCreator

9

JCreator 3.50 LE: InterfaceJCreator 3.50 LE: Interface

Estrutura de arquivos e

pastas

Estrutura de arquivos e

pastas

Edição do código fonte

Edição do código fonte

Apresenta erros de

compilação

Apresenta erros de

compilação

Mostra as propriedades

do arquivo

Mostra as propriedades

do arquivo

Page 10: Introdução à Linguagem Java com JCreator

10

JCreator 3.50 LE: Workspaces e JCreator 3.50 LE: Workspaces e ProjetosProjetos• ProjetosProjetos

– Modo na qual JCreator organiza os arquivos de programa

• JCreator cria uma pasta onde todos os arquivos do programa são mantidos para um projeto particular (p.e. Exercicio1, Exercicio2)

• Permite que arquivos de diferentes projetos estejam em diferentes pastas

Page 11: Introdução à Linguagem Java com JCreator

11

JCreator 3.50 LE: Workspaces e JCreator 3.50 LE: Workspaces e ProjetosProjetos• WorkspacesWorkspaces

– Workspace é outra pasta

• Contém um certo número de projetos

• Por exemplo, pode-se criar um workspace chamado Semana1 com os projetos Exercicio1 e Exercicio2

– Workspaces e Projetos facilitam a organização do trabalho

Page 12: Introdução à Linguagem Java com JCreator

12

JCreator 3.50 LE: JCreator 3.50 LE: Workspaces e Workspaces e ProjetosProjetos• Criando um workplaceCriando um workplace

Page 13: Introdução à Linguagem Java com JCreator

13

JCreator 3.50 LE: JCreator 3.50 LE: Workspaces e Workspaces e ProjetosProjetos• Criando um projetoCriando um projeto

Page 14: Introdução à Linguagem Java com JCreator

14

JCreator 3.50 LE: JCreator 3.50 LE: « Ola Mundo »« Ola Mundo »

Page 15: Introdução à Linguagem Java com JCreator

15

Arquivos FonteArquivos Fonte

• Extensão .javaExtensão .java

• Pode conter diversas classes Pode conter diversas classes – Uma ÚNICA pode ser pública (public)

• Mesmo nome que a classe pública mais a Mesmo nome que a classe pública mais a extensão .java extensão .java

Page 16: Introdução à Linguagem Java com JCreator

16

Arquivos FonteArquivos Fonte

• Pode conter 3 elementos:Pode conter 3 elementos:1) Declaração de pacote

2) Sentenças de importação

3) Definição de classes

– Devem obedecer essa ordem

opcional

obrigatório

Page 17: Introdução à Linguagem Java com JCreator

17

Classes e PacotesClasses e Pacotes

• ClassesClasses– Agrupam definições de atributos, construtores e métodos

• PacotesPacotes– Agrupam definições de classes relacionadas

• Pacotes facilitam a localização das classes

– Definição: Coleção de unidades de compilação relacionadas, permitindo:

• Controle de acesso

– Um atributo ou método protegido só fica visível dentro do pacote

• Gerência do espaço de nomes

– Duas classes no mesmo pacote não podem ter o mesmo nome

Page 18: Introdução à Linguagem Java com JCreator

18

Palavras ReservadasPalavras Reservadas

• Como toda linguagem, Java possui identificadores reservados para comandos que permitem a execução de suas instruções

• IMPORTANTE: você não pode utilizar palavras-chave Java como nome de variáveis ou classes.

Palavras-chaves J ava abstract assert boolean break byte case catch char class continue default do double else extends final finally float for if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while Palavras-chaves reservadas, mas não utilizadas const goto

Page 19: Introdução à Linguagem Java com JCreator

19

Aplicação Ola MundoAplicação Ola Mundo

1

2 // Relembrando a estrutura de um programa Java

3

4 public class OlaMundo {

5

6 /**

7 * IMPRIME NO CONSOLE "OLA MUNDO"

8 */

9

10 public static void main(String[] args) {

11

12 System.out.println("Ola Mundo");

13 }

14 }

15

Page 20: Introdução à Linguagem Java com JCreator

20

ComentáriosComentários

• ComentáriosComentários– /* texto */

• O compilador ignora tudo entre /* e */

– /** documentacao */

• Indica um comentário para documentação.

• Utilizado pela ferramenta javadoc

– // texto

• Compilador ignora todos os caracteres de // até o final da linha

2 // Relembrando a estrutura de um programa Java2 // Relembrando a estrutura de um programa Java

Page 21: Introdução à Linguagem Java com JCreator

21

ClassesClasses

• Início da declaração da classe OlaMundoInício da declaração da classe OlaMundo– Todo programa Java tem ao menos uma classe definida

pelo usuário

– Palavra-chave: palavras reservadas para uso da linguagem

• Palavra-chave <class> seguida pelo nome da classe

class NomeDaClasse {

// aqui vai o código

}

4 public class OlaMundo {4 public class OlaMundo {

Page 22: Introdução à Linguagem Java com JCreator

22

ClassesClasses

• Início da declaração da classe OlaMundoInício da declaração da classe OlaMundo– Nome da Classe: identificador

• Série de caracteres formados por letras, digitos, underscores (_) e dollar ($)

• Não comece com dígitos e não utilise espaços

• Exemplos: BemVindo1, $valor, _valor, botao7

– 7botao não é válido

• Java é case sensitive

– a1 e A1 são diferentes

• Capitalize todas as palavra (e.g. MinhaClasse)

– Por enquanto use sempre a palavra-chave: public

• Visto mais adiante

4 public class OlaMundo {4 public class OlaMundo {

Page 23: Introdução à Linguagem Java com JCreator

23

ClassesClasses

• Nome do arquivoNome do arquivo– Arquivo deve ter o mesmo nome da classe com a

extensão .java

– OlaMundo.java

– Chaves {

• Início do corpo de toda classe

• } fecha a declaração da classe (linha 14)

4 public class OlaMundo {4 public class OlaMundo {

Page 24: Introdução à Linguagem Java com JCreator

24

Ola Mundo: método mainOla Mundo: método main

class OlaMundo {class OlaMundo {

public static void public static void mainmain(String[] args)(String[] args) {{

}}}}

......

......

......

Seqüência de declarações definindo Seqüência de declarações definindo o comportamento do métodoo comportamento do método

Define Define main()main() como como método de classemétodo de classe

Declaração de tipo dos Declaração de tipo dos argumentos:argumentos:

java Oi "c:\softs" "www.sun.com"java Oi "c:\softs" "www.sun.com"

Oi.main({"c:\Oi.main({"c:\softs","www.sun.com"})softs","www.sun.com"})

Page 25: Introdução à Linguagem Java com JCreator

25

Ola Mundo: método mainOla Mundo: método main

• Partida de toda aplicação JavaPartida de toda aplicação Java– Aplicação começa a execução com o método main

– Apenas um método main por aplicação

– Nesta assinatura:

• public indica que o método pode ser chamado por qualquer objeto.

• static indica que o método pode ser chamado mesmo que nenhuma instância da classe tenha sido criada.

• void indica que o método não retorna nenhum valor.

– Chaves

• { -> Início do corpo de todo método

• } -> fecha a declaração do método (linha 13)

1010 public static void main(String[] args) { public static void main(String[] args) {

Page 26: Introdução à Linguagem Java com JCreator

26

Ola Mundo: método mainOla Mundo: método main

• Argumentos do métodoArgumentos do método– Os argumentos de um método em Java sempre

aparecem na assinatura após o nome do método, dentro de parênteses.

– A declaração do argumento é sempre do tipo (TipoDoArgumento nomeDoArgumento).

– Múltiplos argumentos são separados por vírgula, como em (Tipo1 arg1, Tipo2 arg2).

– Métodos sem argumentos devem ter na assinatura um () após o nome.

– No caso específico do método main, o argumento é um array de Strings, que pode ser utilizado para execução com opções de inicialização.

1010 public static void main(String[] args) { public static void main(String[] args) {

Page 27: Introdução à Linguagem Java com JCreator

27

// Explorando nosso primeiro programa Java// Explorando nosso primeiro programa Java

// Passando Argumentos na execução do programa// Passando Argumentos na execução do programa

public classpublic class MeuPrimeiroPrograma4 { MeuPrimeiroPrograma4 {

// o método main inicia a execução do aplicativo Java// o método main inicia a execução do aplicativo Java

public static voidpublic static void main (String arg[]) { main (String arg[]) {

System.out.print("\n\nImprimindo o que você digitou\n ");System.out.print("\n\nImprimindo o que você digitou\n ");

System.out.println(arg[0]);System.out.println(arg[0]);

} // fim do método main} // fim do método main

} // fim da classe MeuPrimeiroPrograma} // fim da classe MeuPrimeiroPrograma

Ola Mundo: método mainOla Mundo: método main

Page 28: Introdução à Linguagem Java com JCreator

28

Ola Mundo: System.outOla Mundo: System.out

• Imprime uma string de caracteresImprime uma string de caracteres– System.out

• Objeto de saída padrão

• Imprime na janela de comando (i.e., prompt MS-DOS)

– Método System.out.println

• Apresenta uma linha de texto

• Argumento dentro de parênteses

– Esta linha é conhecida como instrução

• Instruções devem terminar com;

1212 System.out.println("Ola Mundo"); System.out.println("Ola Mundo");

Page 29: Introdução à Linguagem Java com JCreator

29

Ola Mundo: System.outOla Mundo: System.out

• Imprime uma string de caracteresImprime uma string de caracteres– A aplicação usa a variável out da classe

System, da API Java, para mostrar uma mensagem na tela.

• out é um objeto da classe java.io.PrintStream.

• Println é um método da Classe PrintStream que mostra um string na tela de console.

– Nenhum objeto precisou ser criado nesta chamada

• tanto a variável out quanto o método println são estáticos (static).

1212 System.out.println("Ola Mundo"); System.out.println("Ola Mundo");

Page 30: Introdução à Linguagem Java com JCreator

30

Caracteres especiaisCaracteres especiais

• Backslash ( Backslash ( \\ ) )– Indica um caractere especial

Sequencia Descrição \n Linha nova \t Tab Horizontal \r Carriage return

\\ Backslash \" Double quote, exemplo

System.out.println( "\"in quotes\"" ); apresenta "in quotes"

Page 31: Introdução à Linguagem Java com JCreator

31

Importando PacotesImportando Pacotes

• Palavra-chave importPalavra-chave import– Usada para declarar uso de uma classe Scanner do

pacote java.util

• Pacotes (Packages)Pacotes (Packages)– Conjunto de classes relacionadas é chamado de pacote

• Grupo de todos os pacotes é conhecido como biblioteca de classe java ou Java API (Java applications programming interface)

– Scanner está no pacote java.util

– Os nomes dos pacotes Java começam com Java (pacotes do núcleo da linguagem) ou Javax (extensões ao núcleo)

import java.util.Scanner;import java.util.Scanner;

Page 32: Introdução à Linguagem Java com JCreator

32

Importando PacotesImportando Pacotes

• Exemplos de pacotes Java:Exemplos de pacotes Java:– java.lang: Tipos e funcionalidades básicas da linguagem.

Inclui, entre outras, as classes String, Math, Integer e Thread. É importada automaticamente em seus programas Java;

– java.awt: componentes gráficos originais da linguagem (Abstract Window Toolkit);

– javax.swing: pacote de extensão aos componentes gráficos com melhoramentos à biblioteca AWT

– java.applet: classes específicas para tratamento de applets;

– java.net: recursos de rede (sockets e URLs);

– java.io: classes para escrita e leitura em arquivos;

– java.util: classes para tarefas gerais, tais como vetores e string de tokens.

Page 33: Introdução à Linguagem Java com JCreator

33

Importando PacotesImportando Pacotes

• Nome completo de uma classe: nome do pacote + nome da Nome completo de uma classe: nome do pacote + nome da classeclasse– Ex.: java.lang.String -> nome completo da classe String

• Sentença import:Sentença import:– Permite a utilização de membros de pacotes sem a necessidade

de referenciá-los a partir do seu nome completo

– import <nome completo da classe>

• A importação pode ser de:A importação pode ser de:– Apenas um membro do pacote

• Ex.: import java.awt.Button;

– Todos os membros do pacote• Ex.: import java.util.*;

• Se não forem usadas todas as classes desse pacote, o compilador vai descobrir quais foram as classes usadas e as importá-las em tempo de compilação

– O pacote java.lang é sempre importado• import java.lang.*;

Page 34: Introdução à Linguagem Java com JCreator

34

Declarando variáveisDeclarando variáveis

• Declaração de VariáveisDeclaração de Variáveis– Tipo identificador [ = valorInicial ]– Tipo identificador1, identificador2, identificador3;

• Tipos de dados primitivosTipos de dados primitivos– Inteiros: byte / short / int / long– Reais: float / double– Outros: char / boolean

• Nomes de variáveisNomes de variáveis– Série de caracteres Unicode– Não pode ser palavra chave– Não pode ser nome de outra variável ou classe

int numero1; // declara variável: primeiro numero a somar int numero1; // declara variável: primeiro numero a somar

int numero2; // declara variável: segundo numero a somar int numero2; // declara variável: segundo numero a somar

int soma; // declara variável: soma de numero1 com int soma; // declara variável: soma de numero1 com numero2numero2

Page 35: Introdução à Linguagem Java com JCreator

35

Tipos PrimitivosTipos Primitivos

Tipo Tamanho em bits

Valores Padrão

boolean true ou false

[Nota: A representação de un boleano é especifico de JVM em cada plataforma]

char 16 '\u0000' a '\uFFFF' (0 a 65535)

(ISO Unicode character set)

byte 8 –128 a +127 (–27 a 27 – 1)

short 16 –32,768 a +32,767 (–215 a 215 – 1)

int 32 –2,147,483,648 a +2,147,483,647 (–231 a 231 – 1)

long 64 –9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 (–263 a 263 – 1)

float 32 Faixa negativa: –3.4028234663852886E+38 a –1.40129846432481707e–45 Faixa positiva: 1.40129846432481707e–45 a 3.4028234663852886E+38

(IEEE 754 floating point)

double 64 Faixa negativa: –1.7976931348623157E+308 a –4.94065645841246544e–324 Faixa positiva: 4.94065645841246544e–324 a 1.7976931348623157E+308

(IEEE 754 floating point)

Page 36: Introdução à Linguagem Java com JCreator

36

Tipos PrimitivosTipos Primitivos

• Inteiros e seus OperadoresInteiros e seus Operadores

Multiplicação, Divisão e Resto * / %

Deslocamento de Bits<< >>

Menos unário-

Inversão do padrão de bits, ou not bit-a-bit~

Incremento e Decremento++ --

Relacionais, comparam valores e produzem

true ou false

> < <= >=

== !=

AND, OR e XOR& | ^

Adição e Subtração+ -

ComentáriosOperador

Page 37: Introdução à Linguagem Java com JCreator

37

Tipos primitivosTipos primitivos

• Operadores de Incremento e DecrementoOperadores de Incremento e Decremento

Chamado de Expressão exemplo Explicação

pré-incremento ++aIncrementa 'a' por 1, depois utiliza o novo valor de 'a' na expressão em que 'a' reside.

pós-incremento a++Utiliza o valor atual de 'a' na expressão em que 'a' reside, depois incrementa 'a' por 1

pré-decremento --bDecrementa 'b' por 1, depois utiliza o novo valor de 'b' na expressão em que 'b' reside.

pós-decremento b--Utiliza o valor atual de 'b' na expressão em que 'b' reside, depois decrementa 'b' por 1--

Operador

++

++

--

Page 38: Introdução à Linguagem Java com JCreator

38

• Java fornece vários operadores que abreviam as expressões de atribuição;

• A simplificação de sintaxe não é a única vantagem desses operadores. Eles aumentam a velocidade de acesso às variáveis em programas.

Exemplo Exemplificação Atribuic += 7 c = c + 7 10 a cd -= 4 d = d - 4 1 a de *= 5 e = e * 5 20 a ef /= 3 f = f / 3 2 a fg %=9 g = g % 9 3 a g

Exemplos: int c = 3, d = 5, e = 4, f = 6, g = 12

Operador de atribuição

+=-=*=/=

%=

Tipos primitivosTipos primitivos

• Operadores Aritméticos de AtribuiçãoOperadores Aritméticos de Atribuição

Page 39: Introdução à Linguagem Java com JCreator

39

Tipos primitivosTipos primitivos

• Ponto Flutuante e operaçõesPonto Flutuante e operações

double (64 bits)

float (32 bits)

Multiplicação, Divisão e Resto * / %

Menos unário-

Incremento e Decremento++ --

Relacionais, comparam valores e produzem

true ou false

> < <= >=

== !=

Adição e Subtração+ -

ComentáriosOperador

Page 40: Introdução à Linguagem Java com JCreator

40

Tipos primitivosTipos primitivos

• BooleanosBooleanos– true, false

Igualdade e ‘não Igualdade’ == !=

Negação Lógica (NOT)!

AND e OR&& ||

Ternário HrIncial = (Turno == Manhã ? 7 : 13)

//equivalente:

if (Turno == Manhã) HrIncial = 7;

else HrIncial = 13;

?:

AND e OR, (executa obrigatoriamente os dois

lados da expressão, ainda que isso não seja

necessário para avaliar a expressão)

& |

ComentáriosOperador

Page 41: Introdução à Linguagem Java com JCreator

41

Tipos primitivosTipos primitivos

• Caracteres e operadoresCaracteres e operadores

Classe que tem uma seqüência de charsString

Um único caractete Unicode (16 bits)char

Indexação (zero...n) Indexação (zero...n)

se X=“JAVA” então X[2]=‘V’se X=“JAVA” então X[2]=‘V’

[ ][ ]

ConcatenaçãoConcatenação++

ComentáriosComentáriosOperadorOperador

Page 42: Introdução à Linguagem Java com JCreator

42

ConversõesConversões

• Promoções de TipoPromoções de Tipo– Conversões “inofensivas” (que não apresentam nenhum

risco de erro) são aceitas implicitamente pelo compilador.

Figure 6.5. Promotions allowed for primitive types.

Tipo Tipo Promoções válidasPromoções válidas

doubledouble NoneNone

floatfloat double double

longlong float ou double float ou double

intint long, float ou double long, float ou double

charchar int, long, float ou double int, long, float ou double

shortshort int, long, float ou double (mas não char) int, long, float ou double (mas não char)

bytebyte short, int, long, float ou double (mas não char) short, int, long, float ou double (mas não char)

booleanboolean None (não podem ser considerados números em Java)None (não podem ser considerados números em Java)

Page 43: Introdução à Linguagem Java com JCreator

43

ConversõesConversões

• ConversõesConversões– Conversões com possível perda de dados devem ser

feitas explicitamente (truncamento)

• float para int

• double para long

• long para int ...

int i ;

float f ;

String s ;

...

f = i; //promoção

i = (int)f; //explicita

...

Page 44: Introdução à Linguagem Java com JCreator

44

Tipos ReferênciaTipos Referência

• Tipos Referência Tipos Referência – Todos os demais tipos de Java!

– Definidos a partir de declarações de classes

– Quando uma variável em Java é declarada como sendo do tipo de uma classe, esta variável é considerada como sendo do tipo referência

– Declaração e inicialização:

• String str = “Entendendo Strings”;

• Banco brasil = new Banco (“Brasil”);

– Diferentemente das variáveis de tipos primitivos, que armazenam um valor, variáveis do tipo referência armazenam um apontador para um objeto em memória

Page 45: Introdução à Linguagem Java com JCreator

45

StringsStrings

• StringsStrings– São seqüências de caracteres delimitados por “”

– Representadas por instâncias da classe String (pacotes java.lang)

– Declaração e Inicialização:• String saudacao = “Bom dia!”;

• Variável saudacao conterá um apontador (referência) para um objeto do tipo String que estará em memória e que “armazenará” a informação “Bom dia!”

– Exemplo:String s1 = “string1”;

String s2 = “string2”;

String s3 = new String(“s1”);

char data[] = { ‘a’, ‘b’, ‘c’ };

String cc = “ab”+ “cde”;

– As strings podem ser concatenadas através do operador +

Page 46: Introdução à Linguagem Java com JCreator

46

StringsStrings

• Strings: Comparação Strings: Comparação – Não use o operador == para comparar Strings

– O operador == testa referências quando utilizado com objetos, ou seja, testa se os objetos apontam para mesma posição de memória

– Use o método equals() da classe String

– Use o método equalsIgnoreCase() da classe String se não for importante a caixa (maiúsculas ou minúsculas)

String nome = “Lisa”;

if(!nome.equals(“Bart”))

If(“Lisa”.equals(nome))

Page 47: Introdução à Linguagem Java com JCreator

47

Classe MathClasse Math

• Expressões MatemáticasExpressões Matemáticas– Os métodos da classe Math permitem realizar cálculos

comuns necessários em expressões matemáticas.

– Exemplos de chamadas de métodos da classe Math:

• Função raiz quadrada: double y = Math.sqrt(10.0);

• Função mínimo: double z = Math.min(x,10);

• Os métodos da classe Math são métodos estáticosOs métodos da classe Math são métodos estáticos– não necessitam de objetos da classe para sua chamada

– você deve preceder as chamadas dos métodos com o nome da classe seguido de ponto

Page 48: Introdução à Linguagem Java com JCreator

48

Classe MathClasse Math

• Chamada de MétodosChamada de Métodos– Métodos podem ser chamados em declarações de

variáveis ou como parâmetros de outros métodos

• float z = Math.sqrt(4.0*x);

• System.out.println(Math.sqrt(x+y*f));

• A classe Math possui duas constantes importantes A classe Math possui duas constantes importantes em programas matemáticos: em programas matemáticos: – Math.E = 2.7282818284590452354

// valor base de logaritmos naturais

– Math.PI = 3.14159265358979323846 // relação entre a circunferência e o diâmetro de círculos

Page 49: Introdução à Linguagem Java com JCreator

49

Método

abs( x )

ceil ( x )

cos( x )

exp( x )

floor( x )

log( x )

max( x, y )

min( x, y )

pow( x, y )

sin( x )

sqrt( x )

tan( x )

Exemplo

pow(2.0, 7.0) é 128.0; pow(9.0,0.5) é 3.0

sin (0.0) é 0.0

sqrt (900.0) é 30.0; sqrt (9.0) é 3.0

tan (0.0) é 0.0tangente trigonométrica de x (x em

radianos)

abs(23.7) é 23.7; abs(0.0) é 0.0; abs(-23.7) é 23.7

ceil (9.2) é 10.0; ceil (-9.8) é -9.0;

cos(0.0) é 1.0

exp(1.0) é 2.718281828

floor (9.2) é 9.0; floor (-9.8) é -10.0

log (2.718282) é 1.0; log (7.389056) é 2.0

max( 2.3, 12.7) é 12.7; max(-2.3;-12.7) é -2.3

min( 2.3, 12.7) é 2.3; min(-2.3;-12.7) é -12.7menor valor entre x e y (também em

versões para float, int e long)

x elevado à potência y (x y )seno trigonométrico de x (x em

radianos)raiz quadrada de x

método esponencial ex

arredonda o valor de x para o maior inteiro não maior que x

logaritmo natural de x (base e)

maior valor entre x e y (também em versões para float, int e long)

Descrição

valor absoluto de x (tem versões para float, int e log)

arredonda o valor de x para o menor inteiro não menor que x

co-seno trigonométrico de x (x em radianos)

Classe MathClasse Math

Page 50: Introdução à Linguagem Java com JCreator

50

Leitura do TecladoLeitura do Teclado

• Usando a classe java.util.Scanner (J2SE 5.0)Usando a classe java.util.Scanner (J2SE 5.0)– Uma classe nova que permite converter um texto para

tipos primitivos

– Texto pode ser obtido das mais diversas fontes, como:

• Strings

• InputStream

• Arquivos

– Permite separar o texto em tokens, que são seqüências de caracteres separados por delimitadores (default são espaço, tabs e mudanças de linha).

Page 51: Introdução à Linguagem Java com JCreator

51

Leitura do TecladoLeitura do Teclado

• Para ler de forma confortável texto do canal de entrada Para ler de forma confortável texto do canal de entrada padrãopadrão

– É preciso criar primeiro um Scanner sobre canal System.in que esta associado ao teclado

• Para cada um dos tipos primitivos há um método Para cada um dos tipos primitivos há um método correspondente com a assinatura nextXxx() que retorne um correspondente com a assinatura nextXxx() que retorne um valor desse tipo. valor desse tipo.

– Se a string não puder ser interpretada como sendo deste tipo, é lançado uma excepção do tipo InputMismatchException.

• Exemplos de algumas leituras de tokens: Exemplos de algumas leituras de tokens:

– String aToken = sc.next() ; //Lê um token

– int num1 = sc.nextInt() ; //Lê um token inteiro

– double num2 = sc.nextDouble() ; //Lê um token real

– String linha = sc.nextLine() ; //Lê uma linha

Scanner input = new Scanner(System.in);Scanner input = new Scanner(System.in);

Page 52: Introdução à Linguagem Java com JCreator

52

Impressão Formatada dados Impressão Formatada dados formatadosformatados• PrintfPrintf

– Primeiro argumento é a string formatada (texto fixo e especificadores de formato)

– Especificadores de formato começam com (%) e são seguidos por um caractere que representa o tipo de dado

• %s para uma string

– System.out.printf( "%s\n%s\n", " Bem vindo", " a Java!" );

• %d para um decimal

• %f para um número ponto flutuante

System.out.printf( "A soma eh %d\n", soma ); // apresenta System.out.printf( "A soma eh %d\n", soma ); // apresenta somasoma

Page 53: Introdução à Linguagem Java com JCreator

53

Exemplo 2: SomaExemplo 2: Soma

// Programa de adição que apresenta a soma de dois números.// Programa de adição que apresenta a soma de dois números.

import java.util.Scanner; // programa usa a classe Scanner da package java.utilimport java.util.Scanner; // programa usa a classe Scanner da package java.util

public class Soma {public class Soma {

// método main inicia a execução da aplicação Java // método main inicia a execução da aplicação Java

public static void main( String args[] ) {public static void main( String args[] ) {

// cria objeto da classe Scanner para obter entradas do teclado// cria objeto da classe Scanner para obter entradas do teclado

Scanner input = new Scanner( System.in ); Scanner input = new Scanner( System.in );

int numero1; // declara variável: primeiro numero a somar int numero1; // declara variável: primeiro numero a somar

int numero2; // declara variável: segundo numero a somar int numero2; // declara variável: segundo numero a somar

int soma; // declara variável: soma de numero1 com numero2int soma; // declara variável: soma de numero1 com numero2

System.out.print( "Digite o primeiro inteiro: " ); // promptSystem.out.print( "Digite o primeiro inteiro: " ); // prompt

numero1 = input.nextInt(); // lê primeiro número via método nextInt da classe Scanner numero1 = input.nextInt(); // lê primeiro número via método nextInt da classe Scanner

System.out.print( "Digite o segundo inteiro: " ); // promptSystem.out.print( "Digite o segundo inteiro: " ); // prompt

numero2 = input.nextInt(); // lê segundo numeronumero2 = input.nextInt(); // lê segundo numero

soma = numero1 + numero2; // adiciona númerossoma = numero1 + numero2; // adiciona números

System.out.printf( "A soma eh %d\n", soma ); // apresenta somaSystem.out.printf( "A soma eh %d\n", soma ); // apresenta soma

} // fim do metodo main} // fim do metodo main

} // fim da classe Soma} // fim da classe Soma

Page 54: Introdução à Linguagem Java com JCreator

54

PráticaPrática

• Exercício 1Exercício 1– Faça um programa que calcula a média de três números

reais digitados pelo usuário

• Utilize a classe Scanner e printf

Page 55: Introdução à Linguagem Java com JCreator

55

Caixa de Dialogo: Caixa de Mensagem Caixa de Dialogo: Caixa de Mensagem

• Classe JOptionPane Classe JOptionPane – Oferece caixas de diálogo pré-empacotadas que

permitem aos programas apresentarem janelas contendo mensagens para o usuário

– Faz parte do pacote javax.swing

• Pacote que contém várias classes que ajudam o programador a criar GUIs (Graphical User Interfaces)

// Imprime linhas na caixa de dialogo// Imprime linhas na caixa de dialogo

import javax.swing.JOptionPane; // importa classe JOptionPane import javax.swing.JOptionPane; // importa classe JOptionPane

public class Dialog1 { public class Dialog1 {

public static void main( String args[] ) { public static void main( String args[] ) {

// apresenta um dialogo com a mensagem// apresenta um dialogo com a mensagem

JOptionPane.showMessageDialog( null, « Bem vindo\na\JOptionPane.showMessageDialog( null, « Bem vindo\na\nJava" ); nJava" );

} }

} }

Page 56: Introdução à Linguagem Java com JCreator

56

Caixa de Dialogo: Caixa de MensagemCaixa de Dialogo: Caixa de Mensagem

• Classe JOptionPane Classe JOptionPane – Método JOptionPane.showMessageDialog

• Método estático: não requer a instanciação de um objeto

• Argumentos

– Primeiro usado para posicionamento na tela

» Null para colocar a caixa no centro da tela do frame default

– Segundo é a String a apresentar

// Imprime linhas na caixa de dialogo// Imprime linhas na caixa de dialogo

import javax.swing.JOptionPane; // importa classe JOptionPane import javax.swing.JOptionPane; // importa classe JOptionPane

public class Dialog1 { public class Dialog1 {

public static void main( String args[] ) { public static void main( String args[] ) {

// apresenta um dialogo com a mensagem// apresenta um dialogo com a mensagem

JOptionPane.showMessageDialog( null, « Bem vindo\na\JOptionPane.showMessageDialog( null, « Bem vindo\na\nJava" ); nJava" );

} }

} }

Page 57: Introdução à Linguagem Java com JCreator

57

Caixa de Dialogo: Caixa de MensagemCaixa de Dialogo: Caixa de Mensagem

• Classe JOptionPane Classe JOptionPane – Método JOptionPane.showMessageDialog

• Argumentos

– Primeiro usado para posicionamento na tela

» Null para colocar a caixa no centro da tela do frame default

– Segundo é a String a apresentar

– Terceiro é o titulo da janela

– Quarto é o tipo de mensagem

// Imprime linhas na caixa de dialogo// Imprime linhas na caixa de dialogo

import javax.swing.JOptionPane; // importa classe JOptionPane import javax.swing.JOptionPane; // importa classe JOptionPane

public class Dialog2 { public class Dialog2 {

public static void main( String args[] ) { public static void main( String args[] ) {

// apresenta um dialogo com a mensagem// apresenta um dialogo com a mensagem

JOptionPane.showMessageDialog( null, JOptionPane.showMessageDialog( null, ""Bem vindo\na\Bem vindo\na\nJavanJava"" ,  ,

""TituloTitulo"", , JOptionPane.INFORMATION_MESSAGEJOptionPane.INFORMATION_MESSAGE); );

} }

} }

Page 58: Introdução à Linguagem Java com JCreator

58

Caixa de Dialogo: Digitando textoCaixa de Dialogo: Digitando texto

• Classe JOptionPane Classe JOptionPane – Método JOptionPane.showInputDialog

import javax.swing.JOptionPane; import javax.swing.JOptionPane;

public class BoasVindas {public class BoasVindas {

public static void main( String args[] ) { public static void main( String args[] ) {

// solicita a digitação do nome// solicita a digitação do nome

String nome = JOptionPane.showInputDialog("Qual é seu String nome = JOptionPane.showInputDialog("Qual é seu nome?" ); nome?" );

// cria a mensagem // cria a mensagem

String mensagem = String.format("Bem vindo, %s, a String mensagem = String.format("Bem vindo, %s, a Desenvolvimento Desenvolvimento

orientado a objetos!", nome ); orientado a objetos!", nome );

// Apresenta a mensagem de boas vindas // Apresenta a mensagem de boas vindas

JOptionPane.showMessageDialog( null, mensagem ); JOptionPane.showMessageDialog( null, mensagem );

}}

}}

Page 59: Introdução à Linguagem Java com JCreator

59

Caixa de Dialogo: Digitando textoCaixa de Dialogo: Digitando texto

• Método showInputDialog()Método showInputDialog()– Variáveis informadas aos programas Java são sempre

Strings que devem ser convertidas.

– Erros de entradas inesperadas (tipos incompatíveis com as conversões) devem ser tratados pelo usuário (veremos como em tratamento de exceções).

import javax.swing.JOptionPane; import javax.swing.JOptionPane;

public class EntradaInteiro {public class EntradaInteiro {

public static void main( String args[] ) { public static void main( String args[] ) {

// solicita a digitação do nome// solicita a digitação do nome

String sInt = JOptionPane.showInputDialog(« Digite Inteiro?" String sInt = JOptionPane.showInputDialog(« Digite Inteiro?" ); );

// cria a mensagem // cria a mensagem

int numero = int numero = Integer.parseInt( sInt);Integer.parseInt( sInt);

}}

}}

Page 60: Introdução à Linguagem Java com JCreator

60

ExercíciosExercícios

1.1. Modifique o programa de adição de maneira a utilizar entradas Modifique o programa de adição de maneira a utilizar entradas baseada em diálogos com JOptionPane em vez da entrada baseada em diálogos com JOptionPane em vez da entrada baseada em consolebaseada em console

2.2. Escreva uma instrução (ou comentário) para realizar cada uma Escreva uma instrução (ou comentário) para realizar cada uma das seguintes tarefas: das seguintes tarefas: a) Declarar que um programa calculará o produto de três inteiros

b) Declarar as variáveis x,y e z e resultado como tipo int

c) Declarar as variáveis xVal, yVal e zVal como do tipo String

d) Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em xVal

e) Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em yVal

f) Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em zVal

g) Converter xVal em um int e armazenar o resultado na variável x

h) Converter yVal em um int e armazenar o resultado na variável y

i) Converter zVal em um int e armazenar o resultado na variável z

j) Computar o produto dos três inteiros contidos em x,y e z e atribuir o resultado à variável resultado

k) Exibir um diálogo contendo a mensagem “O Produto é” seguindo do valor da variável resultado

l) Retornar um valor a partir do programa para indicar que o mesmo foi finalizado com sucesso.