Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de...

63
Conte Conte ú ú do do : Introdu : Introdu ç ç ão ao Java ão ao Java Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições dos profs. Leandro A. F. Fernandes e Luiz André P. P. Leme Programa Programa ç ç ão de Computadores II ão de Computadores II TCC TCC - - 00.174/Turma A 00.174/Turma A - - 1 1 Professor Leandro A. F. Fernandes Professor Leandro A. F. Fernandes http://www.ic.uff.br/~laffernandes http://www.ic.uff.br/~laffernandes

Transcript of Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de...

Page 1: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ConteConteúúdodo: Introdu: Introduçção ao Javaão ao Java

Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage

com contribuições dos profs. Leandro A. F. Fernandes e Luiz André P. P. Leme

ProgramaProgramaçção de Computadores IIão de Computadores IITCCTCC--00.174/Turma A00.174/Turma A--11

Professor Leandro A. F. FernandesProfessor Leandro A. F. Fernandes

http://www.ic.uff.br/~laffernandeshttp://www.ic.uff.br/~laffernandes

Page 2: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

HistHistóóricorico

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 22

19911991

InIníício em cio em 19911991: : Pequeno grupo de projeto da Pequeno grupo de projeto da Sun MicrosystemsSun Microsystems, denominado , denominado GreenGreen..

O projeto visava oO projeto visava o desenvolvimento de software para uma ampla variedade de desenvolvimento de software para uma ampla variedade de dispositivosdispositivos de rede e sistemas embutidos.de rede e sistemas embutidos.

James GoslingJames Gosling, decide pela cria, decide pela criaçção de uma nova linguagem de programaão de uma nova linguagem de programaçção que fosse ão que fosse

simplessimples, , portportáátil e ftil e fáácil de ser programadacil de ser programada. .

Surge a linguagem Surge a linguagem interpretada interpretada OakOak (carvalho em inglês), mais tarde rebatizada como (carvalho em inglês), mais tarde rebatizada como JavaJava devido a problemas de direitos autorais.devido a problemas de direitos autorais.

Page 3: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

HistHistóóricorico

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 33

19911991

MudanMudançça de foco para a de foco para aplicaaplicaçção na Internetão na Internet..((visãovisão: um meio popular de transmissão de texto, som, v: um meio popular de transmissão de texto, som, víídeo).deo).

Projetada para Projetada para transferência de contetransferência de conteúúdo de mdo de míídia dia em redes com dispositivos em redes com dispositivos heterogêneos. heterogêneos.

TambTambéém possui capacidade m possui capacidade de transferir de transferir ““comportamentoscomportamentos””, junto com o conte, junto com o conteúúdo. do.

((HTML por si sHTML por si sóó não faz issonão faz isso))

Em Em 19941994::

Jonathan Payne Jonathan Payne e e Patrick Naughton Patrick Naughton desenvolveram o programa navegador desenvolveram o programa navegador WebRunnerWebRunner..

19941994

Page 4: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

HistHistóóricorico

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 44

19911991

No No SunWorldSunWorld’’95 95 a a SunSun apresenta formalmente apresenta formalmente o navegador o navegador HotJavaHotJava e a linguagem e a linguagem JavaJava..

Poucos meses depois a Poucos meses depois a Netscape Corp. Netscape Corp. lanlançça o seu navegador capaz de fazer download e a o seu navegador capaz de fazer download e executar pequenos cexecutar pequenos cóódigos digos JavaJava chamados de chamados de AppletsApplets..

Imediatamente a Imediatamente a SunSun decide disponibilizar o decide disponibilizar o JavaJava gratuitamente gratuitamente para a comunidade de para a comunidade de desenvolvimento de softwares e assim surge o desenvolvimento de softwares e assim surge o Java DeveloperJava Developer´́s Kit 1.0 (JDK 1.0)s Kit 1.0 (JDK 1.0)..

InicialmenteInicialmente: : Sun Solaris Sun Solaris e e Microsoft Windows 95/NTMicrosoft Windows 95/NT. . Progressivamente surgiram kits para outras plataformas Progressivamente surgiram kits para outras plataformas como como LinuxLinux e e Apple MacintoshApple Macintosh..

19941994 19951995

Page 5: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 55

Page 6: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

ÉÉ de de ffáácil aprendizadocil aprendizado..

PuramentePuramente orientada a objetos:orientada a objetos:Permite o desenvolvimento de sistemas de uma forma Permite o desenvolvimento de sistemas de uma forma

mais natural.mais natural.

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 66

Simples e orientada a objetosSimples e orientada a objetos

Page 7: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

Projetada para trabalhar em Projetada para trabalhar em ambiente de redesambiente de redes..

Não Não éé uma linguagem para uma linguagem para programaprogramaçção distribuão distribuíídada: : Oferece Oferece bibliotecas para facilitar bibliotecas para facilitar o processo de o processo de comunicacomunicaççãoão..

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 77

DistribuDistribuíídada

Page 8: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

ÉÉ uma uma linguagem interpretadalinguagem interpretada e existe uma grande e existe uma grande discussão quanto a sua performance. discussão quanto a sua performance.

FatoFato: As melhorias na tecnologia de compila: As melhorias na tecnologia de compilaçção, tem ão, tem aproximado o desempenho ao deaproximado o desempenho ao delinguagens como C e C++.linguagens como C e C++.

Ex.Ex.: Benchmarks mostram melhor: Benchmarks mostram melhordesempenho em alguns casos edesempenho em alguns casos epior em outros, caracterizandopior em outros, caracterizando““empate tempate téécnicocnico””..

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 88

Alta PerformanceAlta Performance

http://blog.cfelde.com/2010/06/c-vs-java-performance/

Page 9: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

As seguintes caracterAs seguintes caracteríísticas contribuem para tornar a sticas contribuem para tornar a linguagem mais robusta e segura:linguagem mais robusta e segura:

��ÉÉ fortemente tipadafortemente tipada;;

��Não possui aritmNão possui aritméética de ponteiros;tica de ponteiros;

��Possui mecanismo de Possui mecanismo de coleta de lixocoleta de lixo;;

��Possui Possui verificaverificaçção rigorosa ão rigorosa em tempo de compilaem tempo de compilaçção;ão;

��Possui mecanismos para Possui mecanismos para verificaverificaçção em tempo de execuão em tempo de execuççãoão;;

��Possui Possui gerenciador de segurangerenciador de seguranççaa..

SeguranSeguranççaa: possui mecanismos de seguran: possui mecanismos de segurançça que evitam a que evitam operaoperaçções no sistema de arquivos da mões no sistema de arquivos da mááquina alvo.quina alvo.

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 99

Robusta e SeguraRobusta e Segura

Page 10: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

Bytecodes Bytecodes executam em qualquer mexecutam em qualquer mááquina que quina que possua uma JVM, permitindo que o cpossua uma JVM, permitindo que o cóódigo em Java digo em Java possa ser escrito possa ser escrito independente da plataformaindependente da plataforma..

A caracterA caracteríística de ser stica de ser neutra em relaneutra em relaçção ão ààarquiteturaarquitetura permite uma grande permite uma grande portabilidadeportabilidade..

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1010

Interpretada, Neutra, PortInterpretada, Neutra, Portáávelvel

Page 11: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1111

Interpretada, Neutra, PortInterpretada, Neutra, Portáávelvel

myProgram.javamyProgram.java

myProgram.classmyProgram.class

compiladorcompiladorcompilador

InterpretadorInterpretadorInterpretador

My My ProgramProgram

00101101000010110100

Page 12: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1212

Interpretada, Neutra, PortInterpretada, Neutra, Portáávelvel

myProgram.javamyProgram.java

Java APIJava API

Java Virtual MachineJava Virtual Machine

HardwareHardware--Based PlataformBased Plataform

Page 13: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1313

Interpretada, Neutra, PortInterpretada, Neutra, Portáávelvel

compiladorcompiladorcompilador

Page 14: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

O Ambiente O Ambiente JavaJava

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1414

ByteCodesByteCodesByteCodes

JVM

JJVVMM

JC

JJCC

JVM

JJVVMM

JC

JJCC

JVM

JJVVMM

JC

JJCC

JVM

JJVVMM

JC

JJCC

Win95/98Win95/98Win95/98 WinNTWinNTWinNT LinuxLinuxLinux SolarisSolarisSolaris

Page 15: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

O Ambiente O Ambiente JavaJava

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1515

EditorEditorEditor

.java.java.java CompiladorCompiladorCompilador

.class.class.class CarregadorCarregadorCarregador

ByteCodesByteCodesVerificadorVerificadorVerificador

ByteCodesByteCodes

InterpretadorInterpretadorInterpretador

Page 16: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

CaracterCaracteríísticas da Linguagem sticas da Linguagem JavaJava

ResoluResoluçção de referências em tempo de execuão de referências em tempo de execuçção:ão:

flexibilidade performance.flexibilidade performance.

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1616

Dinâmica e MultithreadDinâmica e Multithread

suporte para suporte para mmúúltiplas threads de execultiplas threads de execuççãoão, que , que podem tratar diferentes tarefas concorrentemente.podem tratar diferentes tarefas concorrentemente.

Page 17: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

O Ambiente O Ambiente de Desenvolvimentode Desenvolvimento

Java possui um ambiente de desenvolvimento de software Java possui um ambiente de desenvolvimento de software denominado denominado Java SDKJava SDK..

((Software Development KitSoftware Development Kit –– antigamente denominado JDK). antigamente denominado JDK).

Não Não éé um ambiente integrado um ambiente integrado de desenvolvimento, não oferecendo de desenvolvimento, não oferecendo editores ou ambiente de programaeditores ou ambiente de programaçção. ão.

O Java SDK O Java SDK contcontéém um amplo conjunto de APIsm um amplo conjunto de APIs..

(Application Programing Interface(Application Programing Interface).).

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1717

Page 18: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

O Ambiente O Ambiente de Desenvolvimentode Desenvolvimento

Algumas ferramentas do Java SDK:Algumas ferramentas do Java SDK:

��o o compiladorcompilador Java (javac) Java (javac)

��o o interpretadorinterpretador de aplicade aplicaçções Java (java)ões Java (java)

��oo interpretador de applets interpretador de applets Java (appletsviewer) Java (appletsviewer)

��javadoc (um gerador de javadoc (um gerador de documentadocumentaççãoão para programas Java) para programas Java)

��JJar (o manipulador de ar (o manipulador de arquivos comprimidos arquivos comprimidos no formato Java Archive)no formato Java Archive)

��jdb (um jdb (um depurador depurador de programas Java)de programas Java)

��etc.etc.

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1818

Page 19: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

PackagesPackages

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 1919

Os arquivos Java serão armazenados Os arquivos Java serão armazenados fisicamente em uma pasta.fisicamente em uma pasta.

No nosso exemplo ao lado estes arquivos No nosso exemplo ao lado estes arquivos estão no diretestão no diretóório jplay.rio jplay.

Cada arquivo representa uma Cada arquivo representa uma classeclasse Java.Java.

Com o uso de Com o uso de packages packages podemos organizar podemos organizar de forma fde forma fíísica algo lsica algo lóógico.gico.(um grupo de classes em comum)(um grupo de classes em comum)

Page 20: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

PackagesPackages

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2020

Para indicar que as definiPara indicar que as definiçções de um arquivo fonte Java ões de um arquivo fonte Java fazem parte de um determinado pacote, a primeira linha de fazem parte de um determinado pacote, a primeira linha de ccóódigo deve ser a declaradigo deve ser a declaraçção de pacote:ão de pacote:

package nomedopacote;package nomedopacote;

Caso tal declaraCaso tal declaraçção não esteja presente, as classes farão ão não esteja presente, as classes farão parte do parte do ““pacote defaultpacote default””, que est, que estáá mapeado para o mapeado para o diretdiretóório corrente.rio corrente.

Page 21: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

PackagesPackages

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2121

Referenciando uma classe de um pacote no cReferenciando uma classe de um pacote no cóódigo fonte:digo fonte:

import nomedopacote.Xyz ou simplesmenteimport nomedopacote.Xyz ou simplesmente

import nomedopacote.*import nomedopacote.*

Com isso a classe Xyz pode ser referenciada sem o prefixo Com isso a classe Xyz pode ser referenciada sem o prefixo nome_do_pacote no restante do cnome_do_pacote no restante do cóódigo.digo.

A A úúnica excenica exceçção refereão refere--se se ààs classes do pacote java.lang.s classes do pacote java.lang.

Page 22: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ClasspathClasspath

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2222

O ambiente Java normalmente utiliza a especificaO ambiente Java normalmente utiliza a especificaçção de ão de uma uma varivariáável de ambiente CLASSPATHvel de ambiente CLASSPATH..

CLASSPATH define uma CLASSPATH define uma lista de diretlista de diretóórios rios que contque contéém os m os arquivos de classes Java.arquivos de classes Java.

No exemplo anteriorNo exemplo anterior: se o arquivo Xyz.class estiver no : se o arquivo Xyz.class estiver no diretdiretóório rio /home/java/nomedopacote/home/java/nomedopacote, então o diret, então o diretóório rio /home/java /home/java deve estar includeve estar incluíído lista de diretdo lista de diretóórios definida rios definida por CLASSPATH.por CLASSPATH.

Page 23: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2323

•• OrganizaOrganizaçção da ão da memmemóóriaria

–– Bit: Bit:

•• menor unidademenor unidade

•• armazena 0 ou 1armazena 0 ou 1

–– Byte:Byte:

•• seqseqüüência de 8 bitsência de 8 bits

0 1 2 3 4 5 6 7

1 0 0 1 1 1 0 0 1 0

1 1 1 0 0 1 1 1 0

2 0 1 1 1 0 0 1 0

3 0 0 0 0 0 0 0 0

2 0 1 1 1 0 1 0 1 0

1 0 0 0 0 0 0 0 0

2 1 1 1 1 1 1 1 1

3 0 0 0 0 0 0 0 0

Page 24: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2424

Bits Valor

000 0

001 1

010 2

011 3

100 4

101 5

110 6

111 7

Byte Valor

00000000 0

00000001 1

00000010 2

00000011 3

… …

11111101 253

11111110 254

11111111 255

Page 25: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2525

Bits Valor

011 3

010 2

001 1

000 0

101 -1

110 -2

111 -3

Com sinal

O valor de uma posição de memória depende do

tipo que estáarmazenado lá!

Page 26: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2626

IEEE standart 754 Floating Point

s eeee…eeee mmmmmmmmm…mmmmmm

051526263

Precisão dupla (double)

310123456.456.123 ×=

s eeeeeeee mmmmmmmm…mmmmmm

022233031

Precisão simples (float)

mantissaexpoente

Page 27: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2727

111 105 32 61 110 61 0

'i''o' ' ' 'a' 'a''n' ‘\0'

"oi ana"

Page 28: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2828

Page 29: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 2929

Podem ser agrupados em quatro categorias:Podem ser agrupados em quatro categorias:

Tipos Inteiros:Tipos Inteiros:Byte, Inteiro Curto, Inteiro e Inteiro Longo.Byte, Inteiro Curto, Inteiro e Inteiro Longo.

Tipos Ponto Flutuante: Tipos Ponto Flutuante: Ponto Flutuante Simples, Ponto Flutuante Duplo.Ponto Flutuante Simples, Ponto Flutuante Duplo.

Tipo Caractere:Tipo Caractere:Caractere.Caractere.

Tipo LTipo Lóógico:gico:Booleano.Booleano.

Page 30: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

2012.12012.1 ProgramaProgramaçção de Computadores IIão de Computadores II 3030

InteirosInteiros

--2.147.483.648 a +2.147.483.647 2.147.483.648 a +2.147.483.647 intint--9.223.372.036.854.775.808 a 9.223.372.036.854.775.808 a +9.223.372.036.854.775.807 +9.223.372.036.854.775.807 longlong

--32.768 a +32.767 32.768 a +32.767 short short

--128 a +127 128 a +127 bytebyte

FaixasFaixasTipos de Dados InteirosTipos de Dados Inteiros

O valor default de todos O valor default de todos éé 0 (zero).0 (zero).

Page 31: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 3131

Ponto FlutuantePonto Flutuante

FaixasFaixasTipos de Dados em Tipos de Dados em Ponto FlutuantePonto Flutuante

de de ±± 4.94065645841246544 x 104.94065645841246544 x 10--324324

atatéé ±± 1.79769313486231570 x 101.79769313486231570 x 10+308+308doubledouble

de de ±± 1.40282347 x 101.40282347 x 10--4545

atatéé ±± 3.40282347 x 103.40282347 x 10+38+38floatfloat

Exemplos: Exemplos:

1.44E6 1.44E6 éé equivalente a 1.44 x 10equivalente a 1.44 x 1066 = 1.440.000. = 1.440.000. 3.4254e3.4254e--2 representa 3.4254 x 102 representa 3.4254 x 10--22 =0.034254. =0.034254.

O valor default de ambos O valor default de ambos éé 0 (zero).0 (zero).

Page 32: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 3232

CaractereCaractere

O tipo O tipo char char permite a representapermite a representaçção de ão de caracteres individuaiscaracteres individuais..

Ocupa Ocupa 16 bits internamente 16 bits internamente permitindo atpermitindo atéé 32.768 caracteres diferentes.32.768 caracteres diferentes.

O valor default O valor default éé 0 (zero).0 (zero).

Caracteres de controle e outros caracteres cujo uso Caracteres de controle e outros caracteres cujo uso éé reservado pela reservado pela linguagem devem ser usados precedidos por linguagem devem ser usados precedidos por \\ ..

Page 33: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 3333

CaractereCaractere

\\bb backspacebackspace

\\tt TTabulaabulaçção horizontalão horizontal

\\nn newlinenewline

\\ff form feedform feed

\\rr carriage returncarriage return

\\”” aspasaspas

\\’’ aspas simplesaspas simples

\\\\ contrabarracontrabarra

\\xxxxxx o caracter com co caracter com cóódigo de valor octal xxx, que digo de valor octal xxx, que pode assumir valores entre 000 e 377.pode assumir valores entre 000 e 377.

\\uxxxxuxxxx o caro carááter com cter com cóódigo de valor hexadecimal xxxx, digo de valor hexadecimal xxxx, que pode assumir valores entre 0000 e ffff.que pode assumir valores entre 0000 e ffff.

Page 34: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Tipos PrimitivosTipos Primitivos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 3434

BooleanoBooleano

ÉÉ representado pelo tipo lrepresentado pelo tipo lóógico gico booleanboolean. .

Assume os valores Assume os valores falsefalse (falso) ou (falso) ou truetrue (verdadeiro).(verdadeiro).

O valor default O valor default éé falsefalse..

Ocupa 1 bit.Ocupa 1 bit.

Diferente da linguagem C, onde ocupa 1 byte.Diferente da linguagem C, onde ocupa 1 byte.

Page 35: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Palavras reservadasPalavras reservadas

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 3535

abstractabstract continuecontinue finallyfinally interfaceinterface publicpublic throwthrow

booleanboolean defaultdefault floatfloat longlong returnreturn throwsthrows

breakbreak dodo forfor nativenative shortshort transienttransient

bytebyte doubledouble ifif newnew staticstatic truetrue

casecase elseelse implementsimplements nullnull supersuper trytry

catchcatch extendsextends importimport packagepackage switchswitch voidvoid

charchar falsefalse instanceofinstanceof privateprivate synchronizesynchronize

ddwhilewhile

classclass finalfinal intint protectedprotected thisthis

usadas pela linguagemusadas pela linguagem

Page 36: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Palavras reservadasPalavras reservadas

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 3636

constconst futurefuture genericgeneric gotogoto innerinner operatoroperator

outerouter restrest varvar volatilevolatile

NÃONÃO usadas pela linguagemusadas pela linguagem

Page 37: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

DeclaraDeclaraçção de Varião de Variááveisveis

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 3737

Uma variUma variáável vel não pode utilizar como nome uma palavra não pode utilizar como nome uma palavra reservada reservada da linguagem.da linguagem.

SintaxeSintaxe::Tipo nome1 [, nome2 [, nome3 [..., nomeN]]];Tipo nome1 [, nome2 [, nome3 [..., nomeN]]];

ExemplosExemplos::intint i;i;

floatfloat total, preco;total, preco;

bytebyte mascara;mascara;

doubledouble valormedio; valormedio;

Page 38: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

DeclaraDeclaraçção de Varião de Variááveisveis

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 3838

Embora Embora não seja de uso obrigatnão seja de uso obrigatóóriorio, existe a conven, existe a convençção padrão ão padrão para atribuir nomes em Java, como:para atribuir nomes em Java, como:

��Nomes de classes são iniciados por letras maiNomes de classes são iniciados por letras maiúúsculas;sculas;

��Nomes de mNomes de méétodos, atributos e varitodos, atributos e variááveis são iniciados por letras minveis são iniciados por letras minúúsculas;sculas;

��Em nomes compostos, cada palavra do nome Em nomes compostos, cada palavra do nome éé iniciada por letra maiiniciada por letra maiúúscula, as scula, as palavras não são separadas por nenhum spalavras não são separadas por nenhum síímbolo.mbolo.

Documento: Code Conventions for the JavaTM Programming Language.Documento: Code Conventions for the JavaTM Programming Language.

Page 39: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ComentComentááriosrios

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 3939

ExemplosExemplos::

// coment// comentáário de uma linhario de uma linha

/* coment/* comentáário derio de

mmúúltiplas linhas */ltiplas linhas */

/** coment/** comentáário de documentario de documentaççãoão

* que tamb* que tambéém podem pode

* possuir m* possuir múúltiplas linhasltiplas linhas

*/*/

Page 40: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ComentComentááriosrios

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4040

/** Classe destinada ao armazenamento/** Classe destinada ao armazenamento

* de dados relacionados a arquivos ou* de dados relacionados a arquivos ou

* diret* diretóórios.rios.

* <p> Pode ser usada para armazenar * <p> Pode ser usada para armazenar áárvores de diretrvores de diretóórios.rios.

* @author Joao Jr.* @author Joao Jr.

* @see java.io.File* @see java.io.File

*/*/

Page 41: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Operadores AritmOperadores Aritmééticosticos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4141

++ AdiAdiççãoão a+ba+b

-- SubtraSubtraççãoão aa--bb

** MultiplicaMultiplicaççãoão a*ba*b

// DivisãoDivisão a/ba/b

%% Resto da divisão Resto da divisão inteirainteira

a%ba%b

-- -- UnUnááriorio --aa

++ + Un+ Unááriorio +a+a

++++ Incremento Incremento

unitunitááriorio++a ou a++++a ou a++

---- Decremento Decremento unitunitááriorio

----a ou aa ou a----

Page 42: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Operadores RelacionaisOperadores Relacionais

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4242

==== IgualIgual a==ba==b

!=!= DiferenteDiferente a!=ba!=b

>> Maior queMaior que a>ba>b

>=>= Maior ou igual aMaior ou igual a a>=ba>=b

<< Menor queMenor que aa<b<b

<=<= Menor ou igual aMenor ou igual a a<=ba<=b

Page 43: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Operadores LOperadores Lóógicosgicos

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4343

&&&& E lE lóógico gico (and)(and) a&&ba&&b

|||| Ou lOu lóógico gico (or)(or) aa||b||b

!! NegaNegaçção ão (not)(not) !a!a

Page 44: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Programa JavaPrograma Java

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4444

public class HelloJavaClass {

}

public class public class HelloJavaClass {HelloJavaClass {

}}

import java.util.*;importimport java.util.*;java.util.*;PacotesPacotes

MMéétodostodos

ClassesClasses

VariVariááveisveis

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

System.out.println(System.out.println(““Hello, JavaHello, Java””););

Date d = Date d = newnew Date();Date();

System.out.println(System.out.println(““Date: Date: ““+d.toString());+d.toString());

}}

Todos os programas em Java possuem quatro elementos bTodos os programas em Java possuem quatro elementos báásicos:sicos:

Page 45: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4545

Normalmente Normalmente sequencialsequencial..

Comandos de controle de fluxo permitem Comandos de controle de fluxo permitem modificar essa ordem modificar essa ordem naturalnatural de execude execuçção:ão:

if if (condi(condiçção) {ão) {

bloco_comandosbloco_comandos

}}

Page 46: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4646

switch switch (vari(variáável) {vel) {

casecase valor1:valor1:

bloco_comandosbloco_comandos

break;break;

casecase valor2:valor2:

bloco_comandosbloco_comandos

break;break;

......

casecase valorn:valorn:

bloco_comandosbloco_comandos

break;break;

defaultdefault::

bloco_comandosbloco_comandos

}}

while while (condi(condiçção) {ão) {

bloco_comandosbloco_comandos

}}

do do {{

bloco_comandosbloco_comandos

} } while while (condi(condiçção);ão);

for for (inicializa(inicializaçção; condião; condiçção; incremento) {ão; incremento) {

bloco_comandosbloco_comandos

}}

Page 47: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4747

Desvio de fluxoDesvio de fluxo

If If e e SwitchSwitch

Exemplo: IfExemplo: If

public class ExemploIf {

public static void main(String args[]) {

if (args.length > 0) {

for (int j=0; j<Integer.parseInt(args[0]); j++) {

System.out.print(j + “ “);

}

System.out.println(“\nFim da contagem”);

}

System.out.println(“Fim do programa”);

}

}

Page 48: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4848

Desvio de fluxoDesvio de fluxo

public class ExemploSwitch {

public static void main(String args[]) {

if (args.length > 0) {

switch (args[0].charAt(0)) {

case ‘a’:

case ‘A’: System.out.println(“Vogal A”); break;

case ‘e’:

case ‘E’: System.out.println(“Vogal E”); break;

case ‘i’:

case ‘I’: System.out.println(“Vogal I”); break;

case ‘o’:

case ‘O’: System.out.println(“Vogal O”); break;

case ‘u’:

case ‘U’: System.out.println(“Vogal U”); break;

default: System.out.println(“Não é uma vogal”);

}

}

else {

System.out.println(“Argumentos não fornecidos”);

}

}

}

If If e e SwitchSwitch

Exemplo: SwitchExemplo: Switch

Page 49: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 4949

Estruturas de repetiEstruturas de repetiççãoão

RepetiRepetiçção simples:ão simples: forfor

Exemplo: Exemplo:

public class ExemploFor {

public static void main(String args[]) {

for (int j=0; j<10; j++) {

System.out.println(“O valor de j é ” + j);

}

}

}

Page 50: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5050

Estruturas de repetiEstruturas de repetiççãoão

RepetiRepetiçção condicional:ão condicional: whilewhile ee do whiledo while

Exemplo: whileExemplo: while

public class ExemploWhile {

public static void main(String args[]) {

int j = 10;

int n = Integer.parseInt(args[0]);

while (j > n) {

System.out.println(“O valor de j é ” + j);

j--;

}

}

}

Page 51: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5151

Estruturas de repetiEstruturas de repetiççãoão

RepetiRepetiçção condicional:ão condicional: whilewhile ee do whiledo while

Exemplo: do whileExemplo: do while

public class ExemploDoWhile {

public static void main(String args[]) {

int min = Integer.parseInt(args[0]);

int max = Integer.parseInt(args[1]);

do {

System.out.println(min + “ < ” + max);

min++;

max--;

} while (min < max);

System.out.println(min + “ >= ” + max);

}

}

Page 52: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5252

Controle de ErroControle de Erro

Diretiva Diretiva TryTry -- CatchCatch::

try try {{

Fluxo normal do sistemaFluxo normal do sistema

}}

catch catch (Exce(Exceçção1) {ão1) {

Diretiva do tratamento do erro 1Diretiva do tratamento do erro 1

}}

catch catch (Exce(Exceçção2) {ão2) {

Diretiva do tratamento do erro 2Diretiva do tratamento do erro 2

}}

Page 53: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5353

Controle de ErroControle de Erro

RepetiRepetiçção condicional:ão condicional: trytry ee catchcatch

Exemplo: 1 exceExemplo: 1 exceççãoão

public class ExemploTryCatch1 {

public static void main(String args[]) {

try {

int j = 10;

int n = Integer.parseInt(args[0]);

while (j > n) {

System.out.println(“O valor de j é ” + j);

j--;

}

}

catch (ArrayIndexOutOfBoundsException e) {

System.err.println(“Não foi fornecido um argumento.”);

}

}

}

Page 54: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5454

Controle de ErroControle de Erro

RepetiRepetiçção condicional:ão condicional: trytry ee catchcatch

Exemplo: 2 exceExemplo: 2 exceççõesões

public class ExemploTryCatch2 {

public static void main(String args[]) {

try {

int j = 10;

int n = Integer.parseInt(args[0]);

while (j > n) {

System.out.println(“O valor de j é ” + j);

j--;

}

}

catch (ArrayIndexOutOfBoundsException e) {

System.err.println(“Não foi fornecido um argumento.”);

}

catch (NumberFormatException e) {

System.err.println(“O argumento fornecido não é um número inteiro.”);

}

}

}

Page 55: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

Fluxo de execuFluxo de execuççãoão

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5555

Controle de ErroControle de Erro

Diretiva Diretiva TryTry -- CatchCatch -- FinallyFinally::

try try {{

Fluxo normal do sistemaFluxo normal do sistema

}}

catch catch (Exce(Exceçção1) {ão1) {

Diretiva do tratamento do erro 1Diretiva do tratamento do erro 1

}}

finally finally {{

Fluxo que serFluxo que seráá sempre executado, independente dasempre executado, independente da

ocorrência da exceocorrência da exceçção ou não.ão ou não.

LiberaLiberaçção de recursos. Ex: Fechamento de arquivos.ão de recursos. Ex: Fechamento de arquivos.

}}

Page 56: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ArraysArrays

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5656

O propO propóósito de um array sito de um array éé permitir o permitir o armazenamento e manipulaarmazenamento e manipulaççãoão de uma de uma grande quantidade de dados de mesmo tipo.grande quantidade de dados de mesmo tipo.

ExemplosExemplos::��Notas de alunosNotas de alunos��NucleotNucleotíídeos em uma cadeia de DNAdeos em uma cadeia de DNA��Frequência de um sinal de Frequência de um sinal de ááudioudio

Page 57: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ArraysArrays

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5757

Page 58: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ArraysArrays

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5858

Os elementos de um array são identificados Os elementos de um array são identificados atravatravéés de s de ííndicesndices..

Arrays cujos elementos são indicados por um Arrays cujos elementos são indicados por um úúnico nico ííndice são denominados arrays ndice são denominados arrays unidimensionaisunidimensionais..

UnidimensionaisUnidimensionais

Page 59: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ArraysArrays

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 5959

Um elemento em uma posiUm elemento em uma posiçção indicada por um ão indicada por um ííndice i, ndice i, em um array A, em um array A, éé acessado atravacessado atravéés do identificador do s do identificador do array seguido do array seguido do ííndice i entre chaves.ndice i entre chaves.

UnidimensionaisUnidimensionais

A[0]A[0] A[1]A[1] A[2]A[2] A[3]A[3] …… A[nA[n--2]2] A[nA[n--1]1]

Page 60: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ArraysArrays

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 6060

A criaA criaçção de um array em Java requer 3 passos:ão de um array em Java requer 3 passos:

1.1.DeclaraDeclaraçção do nome do array e seu tipoão do nome do array e seu tipo2.2.AlocaAlocaçção do arrayão do array3.3.InicializaInicializaçção de seus valoresão de seus valores

UnidimensionaisUnidimensionais

double[] a;double[] a;

a = new double[10];a = new double[10];

for (int i = 0; i<10;i++)for (int i = 0; i<10;i++)

a[i] = 0.0;a[i] = 0.0;

Page 61: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ArraysArrays

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 6161

O O nnúúmero de elementos mero de elementos de um array em Java pode ser de um array em Java pode ser determinado atravdeterminado atravéés do atributo lengths do atributo length

ExemploExemplo::a.lengtha.length

Arrays em Java são Arrays em Java são objetosobjetos..(mais detalhes serão vistos posteriormente)(mais detalhes serão vistos posteriormente)

Arrays em Java tem Arrays em Java tem ííndice base igual a zerondice base igual a zero..

UnidimensionaisUnidimensionais

Page 62: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ArraysArrays

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 6262

Arrays em Java podem ser Arrays em Java podem ser inicializados em tempo de inicializados em tempo de compilacompilaççãoão..

ExemplosExemplos::String[ ] naipe = {String[ ] naipe = {““copascopas””,,””ourosouros””, , ““pauspaus””,,””espadasespadas””};};

double[ ] temperaturas = {45.0,32.0,21.7,28.2,27.4};double[ ] temperaturas = {45.0,32.0,21.7,28.2,27.4};

UnidimensionaisUnidimensionais

Page 63: Programa ção de Computadores IIilaim/Aula01Java.pdfHistórico 28/8/2014 Programa ção de Computadores II 3 1991 Mudan ça de foco para aplica ção na Internet. (visão: um meio

ArraysArrays

28/8/201428/8/2014 ProgramaProgramaçção de Computadores IIão de Computadores II 6363

Arrays multidimensionais representam agregados homogêneos Arrays multidimensionais representam agregados homogêneos cujos cujos elementos são especificados por mais de um elementos são especificados por mais de um ííndicendice..

Em Java Em Java éé muito simples especificar um array multidimensional.muito simples especificar um array multidimensional.

ExemploExemplo: : array contendo as notas de 3 provas de 30 alunosarray contendo as notas de 3 provas de 30 alunosint[][] notas = new int[30][3];int[][] notas = new int[30][3];

MultidimensionaisMultidimensionais