apostila java

437
DIREITOS AUTORAIS Todos os direitos são reservados para ???. Nenhuma parte deste material poderá ser reproduzida, extraída, copiada ou transmitida de qualquer forma em qualquer língua sem prévia autorização por escrito. A Violação destes direitos é protegida pela Lei 5988 de 14/12/1973 e é tratado como crime no art. 184 e parágrafos, do Código Penal, CF Lei Nº 6895 de 17/12/1980. PW 02 Introdução ao Java Versão: 2.0.0

Upload: jonassena2

Post on 20-Oct-2015

50 views

Category:

Documents


0 download

TRANSCRIPT

  • 1AnotaesDIREITOS AUTORAISTodos os direitos so reservados para ???. Nenhuma parte deste material poder ser reproduzida, extrada, copiada outransmitida de qualquer forma em qualquer lngua sem prvia autorizao por escrito.

    A Violao destes direitos protegida pela Lei 5988 de 14/12/1973 e tratado como crime no art. 184 e pargrafos, doCdigo Penal, CF Lei N 6895 de 17/12/1980.

    PW 02Introduo ao Java

    Verso: 2.0.0

  • 2Anotaes

    Desenvolvimento do Material:Arnaldo Gonalves de Sousa

    Java Certification- Sun Certified Programmer For Java[Tm] 2 Platform- Sun Certified Instructor For Java[Tm] 2 Platform (T3 Basic)- Sun Certified Instructor For Java[Tm] 2 Platform (T3 Advanced)- IBM Certified Instructor For Web Services (T3 Webservices For J2EE Developers)- ICS Java Developer - Prometric Test Center Recognize

    Experincia Como DocenteIBM Corporation (Desde 2002) - ibm.com/services/learning/brSun Microsystems (Desde 1999) - sun.com.brUniversidade Presbiteriana Mackenzie (Desde 2003) - mackenzie.br

    Editorao:Elza F. Domingues

    Reviso:Arnaldo Gonalves de Sousa

    Direitos Autorais:Todos os direitos so reservados para ???. Nenhuma parte deste material poder serreproduzida, extrada, copiada ou transmitida de qualquer forma em qualquer lngua sem prviaautorizao por escrito.

    A Violao destes direitos protegida pela Lei 5988 de 14/12/1973 e tratado como crime noart. 184 e pargrafos, do Cdigo Penal, CF Lei N 6895 de 17/12/1980.

    Expediente:

  • 3Anotaes

    Apresentao

  • 4Anotaes

    Introduo

  • 5Anotaes

    Nossa Metodologia

  • 6Anotaes

    Descrio

    Este curso fornece ao aluno conhecimento sobre como entender as regras e as estruturas deProgramao da Linguagem Java bem como suas principais APIs e a Implementao dos Concei-tos da Orientao a Objetos na Linguagem.Durao

    A durao deste curso de 40 horas dividido em mdulos de 4 ou 8 horas dirias.

    Pblico Alvo

    Programadores que j possuam conhecimentos em Orientao a Objetos e pretendam trabalharcom a tecnologia Java. Esse curso considerado o treinamento fundamental para aqueles quedesejam aprender Java.Pr-requisitos do Aluno

    exigido do aluno conhecimento gerais sobre: Lgica de Programao. Conhecimentos bsicos de orientao a objetos. Operaes bsicas com arquivos texto (abrir, criar, salvar e etc.). Ter feito PW01 ou ter conhecimentos equivalentes.

    O no atendimento ou omisso destes pr requisitos isentam a FastTraining de qualquer respon-sabilidade por no aproveitamento.

    Objetivo do CursoAo final deste curso voc estar apto para:

    Conhecer os conceitos de portabilidade Java. Avaliar as inmeras aplicaes de sistemas em Java. Fazer comparativo com outras linguagens orientadas a objetos. Aplicar as converses de variveis (primitive casting). Uso de identificadores, palavras-chaves e tipos de dados. Entendendo as expresses e as estruturas de controle de fluxo. Trabalhando com Arrays. (*) Aprender a fazer converses entre bases numricas (decimal, binria, octal, hexadecimal). (**) Estudar profundamente os operadores da linguagem Java. Desenvolver programas Java orientados a objetos, utilizando recursos de herana, classes

    abstratas, interface, polimorfismo. Conhecer recursos de File I/O. Compilar e rodar programas grficos (API AWT) com painis, botes, ttulos, campos de

    texto e reas de texto. Desenvolver programas com uso de Frames e Menus, bem como fazer o tratamento de

    eventos. (**) Utilizar a API de Thread, para construir aplicativos com mltiplas linhas de execuo. Aplicar os conceitos de comunicao por Sockets em uma rede TCP/IP. (**) Conhecer o Java 2 Collections Framework e implementar collection.

    Certificaes

    Se seu objetivo a certificao PCP JAVA, dever fazer tambm os cursos PW01, PW02 ePW100 e o exame oficial 310-035.

    Se seu objetivo a certificao DCP JAVA dever fazer tambm os cursos PW01, PW02,PW100, PW03 e PW04 e os exames oficiais 310-035 e 320-027.

    Se seu objetivo a certificao ACCP JAVA dever fazer os cursos PW01, PW02, PW100,PW03, PW04, PW05, PW06 e PW08 e os exames oficiais 310-035, 320-027 e 310-051.

    Observe que os cursos so cumulativos e voc poder ter 3 certificaes Microsoft ao concluir os8 cursos da formao ACCP JAVA.

    Objetivo do Curso

    Legenda:(*) Item no visto em outroscursos do mercado, mas quefazem parte da prova decertificao.(**) Maior contedo do merca-do em um curso.

  • 7Anotaes

    ndice

    Apresentao ............................................................................................................................ 3

    Introduo ................................................................................................................................. 4

    Nossa Metodologia ................................................................................................................... 5

    Objetivo do Curso .................................................................................................................... 6

    Introduo ao Java ................................................................................................................. 13

    Captulo 1: A Plataforma Java ................................................................................................. 15Comparando Java com Outras Linguagens ..................................................................... 16Java Virtual Machine ......................................................................................................... 17JVM for Devices ................................................................................................................ 19Garbage Collector ............................................................................................................. 21Acrnimos Importantes Java ............................................................................................. 23Edies Java 2 Platform ................................................................................................... 24

    Hello World Java ......................................................................................................... 25Portabilidade ...................................................................................................................... 27

    Captulo 2:I ntroduo a Object Oriented com Java ............................................................ 29Introduo a Object Oriented com Java ............................................................................ 30

    Classe ......................................................................................................................... 30Objeto .......................................................................................................................... 32Mtodo ......................................................................................................................... 34

    Ilustrando o Emprego de Classe, Objeto e Mtodo ........................................................... 36Classe ......................................................................................................................... 36Objeto .......................................................................................................................... 38Atributos ...................................................................................................................... 39Mtodos ....................................................................................................................... 42Mtodos de Inicializao de Atributos .......................................................................... 42Mtodos de Impresso de Atributos ............................................................................ 43Resumindo Nosso Exemplo ....................................................................................... 44

    Laboratrio 1 - Captulo 2: Introduo a Object Oriented com Java.................................. 47

    Captulo 3: Aprofundando Conceitos Iniciais ....................................................................... 53Aprofundando Conceitos Iniciais ........................................................................................ 54

    Construtor ................................................................................................................... 54

  • 8Anotaes

    Construtor Default ....................................................................................................... 56Encapsulamento ......................................................................................................... 57Java API Documentation ............................................................................................ 59Packages .................................................................................................................... 61Imports ........................................................................................................................ 63Fully Qualified Name - FQN ........................................................................................ 65CLASSPATH................................................................................................................ 67

    Laboratrio 2 - Captulo 3: Aprofundando Conceitos Iniciais ............................................ 69

    Captulo 4: Sintaxe Java 2 Platform ...................................................................................... 75Sintaxe Java 2 Platform..................................................................................................... 76

    Comentrios................................................................................................................ 76Identificadores Vlidos................................................................................................. 78Keywords Java ............................................................................................................ 79Variveis Primitivas ..................................................................................................... 81Casting de Primitivas .................................................................................................. 84Casting de Passagem por Refncia ........................................................................... 88Passagem por Valor .................................................................................................... 90

    Laboratrio 3 - Captulo 4: Sintaxe Java 2 Platform ............................................................ 93

    Captulo 5:Usando Operadores Java .................................................................................... 99Usando Operadores Java ............................................................................................... 100Tipos de Operadores ....................................................................................................... 102Operadores Aritimticos .................................................................................................. 104Promoes Automticas ................................................................................................. 108Operadores Incremento ................................................................................................... 109OperadoRelacionais ........................................................................................................ 113

    O Operador == quando usado em Objetos .............................................................. 114O Mtodo Equals() .................................................................................................... 114

    O Operador Instanceof .................................................................................................... 118Operadores Boolean........................................................................................................ 122Bitwise Operators ............................................................................................................ 124Shift Operator .................................................................................................................. 126Bitwise Shifting Operator .................................................................................................. 128Ternary Operator ............................................................................................................. 131Short cut Assigment Operators ....................................................................................... 132Outros Operadores ......................................................................................................... 134

    Bases Numricas ..................................................................................................... 137Converso de Base 2 para Base 16 ......................................................................... 140

  • 9Anotaes

    Laboratrio 4 - Captulo 5: Usando Operadores Java ...................................................... 141

    Captulo 6: Controle de Fluxo.............................................................................................. 145Controle de Fluxo ............................................................................................................. 146

    Laboratrio 5 - Captulo 6: Controle de Fluxo ................................................................... 151

    Captulo 7: Arrays ................................................................................................................. 157Arrays .............................................................................................................................. 158

    Acesso aos Elementos do Arrays ............................................................................. 160Arrays Multidimendionais ................................................................................................. 162

    Laboratrio 6 - Captulo 7: Arrays ....................................................................................... 165

    Captulo 8: Programao Avanada ..................................................................................... 169Interface ........................................................................................................................... 170

    Regras para a Interface ............................................................................................ 171Herana ........................................................................................................................... 172

    Regras para Herana ................................................................................................ 173Generalizao .................................................................................................................. 174

    Regras para a Generalizao ................................................................................... 175Polimorfismo.................................................................................................................... 176

    Regra Bsica para o Polimorfismo ........................................................................... 177Overloading de Construtores .......................................................................................... 178

    Regra para o Overloading de Construtores .............................................................. 178Overloading de Mtodos .................................................................................................. 180

    Regra para o Overloading de Mtodos ..................................................................... 180Overriding ........................................................................................................................ 182

    Regras para o Overriding .......................................................................................... 182Encapsulamento .............................................................................................................. 184

    Acesso aos Membros ............................................................................................... 186Membros Static ......................................................................................................... 188Membros Final ........................................................................................................... 191Access Modifiers ...................................................................................................... 193

    Laboratrio 7 - Captulo 8: Programao Avanada .......................................................... 195

    Captulo 9: Java Exceptions e Operaes de I/O .............................................................. 203Java Exceptions .............................................................................................................. 204Hierarquia de Classes ..................................................................................................... 208Java I/O ........................................................................................................................... 211

  • 10

    Anotaes

    Laboratrio 8 - Captulo 9: Java Exceptions e Operaes de I/O .................................... 217

    Captulo 10: Java Collections Framework .......................................................................... 221Java Collections Framework ........................................................................................... 222

    As Collection Interfaces e Classes ........................................................................... 224Hierarquias ................................................................................................................ 225Implementaes de Collection .................................................................................. 226Collection Interface ................................................................................................... 228Mtodos Bsicos da Interface Collection .................................................................. 230Grupo de Elementos ................................................................................................. 232A Interface Iterator ..................................................................................................... 234ListIterator Interface ................................................................................................... 236Set interface .............................................................................................................. 238List Interface.............................................................................................................. 241Map interface ............................................................................................................ 246Os Mtodos de Map .................................................................................................. 247Importantes Informaes sobre a Interface Map ...................................................... 248

    Laboratrio 9 - Captulo 10: Java Collections Framework................................................ 253

    Captulo 11: Threads ............................................................................................................. 259Threads ........................................................................................................................... 260

    Como Criar Threads ................................................................................................. 262Estendendo a Classe Thread.................................................................................... 263Implementando a Interface Runnable ....................................................................... 266O Ciclo de Vida de uma Thread ................................................................................ 269Escalonamento da JVM ............................................................................................ 270

    Escalonamento Preemptivo ............................................................................................ 270Escalonamento Circular ............................................................................................ 271Prioridades de Thread ............................................................................................... 272Sincronizao de Threads ........................................................................................ 275Agrupamento de Threads .......................................................................................... 282

    Laboratrio 10 - Captulo 11: Threads ................................................................................. 285

    Captulo 12: Aplicaes Grficas com AWT ........................................................................ 293Aplicaes Grficas com AWT ........................................................................................ 294

    A Classe AWT Compoment ....................................................................................... 300Java Container .......................................................................................................... 302Gerenciadores de Layout .......................................................................................... 304Frame........................................................................................................................ 306

  • 11

    Anotaes

    Panel ......................................................................................................................... 308List ............................................................................................................................. 310TextArea .................................................................................................................... 312TextField .................................................................................................................... 314

    Laboratrio 11 - Captulo 12: Aplicaes Grficas com AWT ............................................ 317

    Captulo 13: Eventos ............................................................................................................ 321Eventos ............................................................................................................................ 322Classes de Eventos......................................................................................................... 324

    Listeners ................................................................................................................... 325Tabela de Interface e Mtodos ......................................................................................... 327

    Classes Adaptadoras ................................................................................................ 328Componentes e Eventos Suportados .............................................................................. 330

    Dialog ........................................................................................................................ 333Menu ......................................................................................................................... 336

    Laboratrio 12 - Captulo 13: Eventos ................................................................................ 339

    Gabaritodos dos Laboratrios ............................................................................................ 345

    Gabarito Laboratrio 1 - Captulo 2: Introduo a Object Oriented com Java ......................... 347Gabarito Laboratrio 2 - Captulo 3: Aprofundando Conceitos Iniciais ..................................... 355Gabarito Laboratrio 3 - Captulo 4: Sintaxe Java 2 Platform ................................................. 361Gabarito Laboratrio 4 - Captulo 5: Usando Operadores Java .............................................. 367Gabarito Laboratrio 5 - Captulo 6: Controle de Fluxo............................................................ 371Gabarito Laboratrio 6 - Captulo 7: Arrays ............................................................................. 379Gabarito Laboratrio 7 - Captulo 8: Programao Avanada ................................................. 385Gabarito Laboratrio 8 - Captulo 9: Java Exceptions e Operadores de I/O ........................... 399Gabarito Laboratrio 9 - Captulo 10: Java Collections Framework ........................................ 405Gabarito Laboratrio 10 - Captulo 11: Threads ....................................................................... 415Gabarito Laboratrio 11 - Captulo 12: Aplicaes Grficas com AWT .................................... 423Gabarito Laboratrio 12 - Captulo 13: Eventos ....................................................................... 429

  • 12

    Anotaes

  • 13

    Anotaes

    Introduo ao Java

    O incio do desenvolvimento da plataforma Java iniciou-se em 1991.Em 1994 foi lanado o primeiro grande projeto feito totalmente em Java,um web browser chamado HotJava. Alm de um importante marco paraa plataforma Java, o HotJava tambm foi a primeira grande demonstra-o do potencial Java como uma linguagem de desenvolvimento.

    A inteno deste projeto era apresentar o Java como sendo algo mo-derno e com grande potencialidade para web, mas Java enfrentou umoutro obstculo, pois ficou conhecido na poca como uma linguagem ques era utilizada no mbito da internet, e at hoje muitos ainda tem estaconcepo errada de Java, a realidade que Java pode ser utilizado paradesenvolver qualquer tipo de sistema, seja ele client-side, server-side, oudevice application.

    Histrico cronolgico de Java. O HotJava. As possibilidades de desenvolvimento com Java. O Green Team. The next wave in computing.

  • 14

    Anotaes

    Em 23 de maio de 1995, John Gage, director of the Science Officefor Sun Microsystems, e Marc Andreessen, co-fundador e vice presiden-te executivo da Netscape, anunciou em audincia para a SunWorldTMque JavaTM technology era real, oficial, e seria incorporado ao NetscapeNavigatorTM. Ainda em 1995 foi lanado o primeiro release comercialdo Java, a primeira beta version disponvel foi a jdk1.0.2a .

    O grupo criador de Java, chamado Green Team, era formado por 13pessoas da Sun, sua finalidade era antecipar e planejar o plano que eleschamaram de next wave in computing. Suas metas eram criar uma con-vergncia de controles digitais para controlar devices e computers.

    Entre os membros e colaboradores do Green Team esto:

    Al Frazier, Joe Palrang, Mike Sheridan, Ed Frank, Don Jackson, FayeBaxter, Patrick Naughton, Chris Warth, James Gosling, Bob Weisblatt,David Lavallee, and Jon Payne. Missing in action: Cindy Long, ChuckClanton, Sheueling Chang, and Craig Forrest.

    O projeto foi iniciado por Patrick Naughton, Mike Sheridan, e JamesGosling.

  • 15

    Anotaes

    Captulo 1:

    A Plataforma Java

  • 16

    Anotaes

    Comparando Java com Outras Linguagens

    Java SmallTalk TCL Perl Shells C C++

    Simples

    OrientaoObjetos

    Robusta

    Segura

    Interpretada

    Dinmica

    Portvel

    Neutra

    Threads

    GarbageCollection

    Exceptions

    Alto Mdio Baixo Mdio Baixo Alto HighPerf

    ormance

    Caracterstica Existente

    Caracterstica Parcialmente ExistenteCaracterstica no Existe

    Captulo 1: A Plataforma Java

  • 17

    Anotaes

    Java Virtual Machine

    A Java Virtual Machine (JVM) na verdade um emulator para umamquina real. A JVM prove todas as especificaes para que o cdigopr-compilado Java (byte code) seja independente de plataforma.

    A JVM totalmente dependente de plataforma, por exemplo, existeuma JVM para Microsoft Windows, outra para o Linux e, assim pordiante. Quando dizemos que Java independente de plataforma, isto noest completamente correto, vlido dizer que os bytes code Java soindependentes de plataforma, mas dependentes de uma JVM.

    Captulo 1: A Plataforma Java

    A Java Virtual Machine (JVM) na verdade umemulator para uma mquina real. O byte code. A JVM prove todas as especificaes para o

    cdigo pr-compilado Java (byte code). A independncia de plataforma.

  • 18

    Anotaes

    Java/OS

    JVM forWindows

    JVM forMAC/OS

    JVM forLinux

    JVM forSolaris

    Captulo 1: A Plataforma Java

    O exemplo abaixo ressalta a idia da JVM:

  • 19

    Anotaes

    JVM for Devices

    Aplicaes voltadas para dispositivos eletrnicoscom Java. A portabilidade dos byte codes nas JVMs dos

    Devices. Java Cards, Java Concept Car, Java Mobile etc.

    Java tambm foi construdo para desenvolver aplicaes voltadas paradispositivos eletrnicos, perifricos, cartes, enfim, poderamos at dizerque existe a possibilidade de construir aplicaes Java para qualquer coisaeletrnica e, o que torna isto possvel justamente a concepo da JVM,uma vez que somente disto que um byte code necessita para ser inter-pretado.

    O exemplo a seguir mostra a aplicao da JVM para dispositivoseletrnicos:

    Captulo 1: A Plataforma Java

  • 20

    Anotaes

    JVM for Windows CE

    JVM forJava Concept Car

    JVM for Java Cards

    JVM for Printer

    Captulo 1: A Plataforma Java

    Arnaldo Gonalves de Sousa 2654 484 654564 56.56.

    Credit Card Club

  • 21

    Anotaes

    Garbage Collector

    O Garbage Collector se resume basicamente em uma Thread embaixa prioridade, que por sua vez lanada para coletar objetos damemria que no so mais necessrios para sua aplicao.

    Em C++ necessrio que o programador faa o de-allocating dosobjetos. Atravs de cdigos escritos em C++, o programador retira osobjetos que no so mais necessrios, antes que haja um estouro dememria ou memory overflow, ou seja, o programa fica sem recursosnecessrios para que o programa possa continuar a sua execuo.

    O Garbage Collector se resume em uma Threadem baixa prioridade. Em Java a responsabilidade pelo de-allocating fica

    totalmente a critrio da JVM. Apenas os objetos da memria que no so mais

    necessrios para sua aplicao so coletados. Em C++ necessrio que o programador faa o

    de-allocating dos objetos. Memory overflow. Forando o Garbage Collector com o mtodo gc()

    das classes System e Runtime.

    Captulo 1: A Plataforma Java

  • 22

    Anotaes

    Captulo 1: A Plataforma Java

    Em Java a responsabilidade pelo de-allocating fica totalmente acritrio da JVM. Embora existam mtodos como gc() nas classes Systeme Runtime, que podem ser chamados com o intuito de coletar objetos,isto funcionar apenas como uma sugesto de coleta de objeto, e nocomo a coleta concreta do mesmo.

    Abaixo um exemplo de funcionamento do Garbage Collector:

    StackMemory

    HeapMemory

    0xAFF2 0xAFF3

    0xAFF4 0xAFF5

    X0xAFF20xAFF3

    0xAFF5

    Este objeto pode ser coletado a qualquermomento pelo Garbage Collector

  • 23

    Anotaes

    Acrnimos Importantes Java

    JRE Java Runtime Environment.

    JDK Java Development Kit.

    J2SDK Java 2 Platform, Software DeveloperS Kit.

    API Application Programming Interface.

    OOP Object Oriented Programming.

    OO Object Oriented.

    Captulo 1: A Plataforma Java

    JRE. JDK. J2SDK. API. OOP. OO.

  • 24

    Anotaes

    Captulo 1: A Plataforma Java

    Edies Java 2 Platform

    J2SE Java 2 Platform, Standard Edition. Para Standalone Application e Applets.

    J2ME Java 2 Platform, Micro Edition. Atende a mobile devices.

    J2EE Java 2 Platform, Enterprise Edition. Atende B2B Application. Atende B2C Application.

    J2SE Java 2 Platform, Standard Edition. J2ME Java 2 Platform, Micro Edition. J2EE Java 2 Platform, Enterprise Edition.

  • 25

    Anotaes

    Captulo 1: A Plataforma Java

    Hello World Java

    No poderamos deixar de aprender uma linguagem de programaosem comear por um Hello World, lembre sempre que Java case-sensitive.

    O editor de cdigos usado neste curso um freeware, que pode serbaixado em http://www.crimsoneditor.com/

    Exemplo de um simples programa feito em Java:

  • 26

    Anotaes

    Procedimentos para realizar este exemplo: O nome do arquivo seria HelloWorldJava.java. A compilao seria javac HelloWorldJava.java, que resulta em um

    HelloWorldJava.class, que nosso byte code file. E por fim, a execuo assim:- java HelloWorldJava.

    Sada:

    Captulo 1: A Plataforma Java

  • 27

    Anotaes

    Abaixo segue o exemplo para a distribuio do nosso primeiro pro-grama feito em Java:

    HelloWorldJava.class

    JVMfor

    Windows

    JVMfor

    MAC/OS

    JVMfor

    Linux

    JVMfor

    Solaris

    Java/OS

    Hello World!

    Hello World!

    Hello World!

    Hello World! Hello World!

    Captulo 1: A Plataforma Java

    Portabilidade

  • 28

    Anotaes

    Captulo 1: A Plataforma Java

  • 29

    Anotaes

    Captulo 2:

    Introduo a ObjectOriented com Java

  • 30

    Anotaes

    Introduo a Object Oriented com Java

    Podemos pensar em uma classe como se fosse uma frma para umbolo, assim como a frma para bolos, o molde da forma ir ditar o for-mato do bolo, e este ltimo poderamos associar a objetos.

    Todas as especificaes, comportamento e atributos dos objetos es-to no design da classe. Portanto correto afirmar que a classe umapea fundamental em uma programao orientada a objetos, pois voc irempregar na classe os mecanismos de operaes que a mesma pode exe-cutar atravs de mtodos a cada solicitao feita pelos objetos.

    Podemos ver uma classe como sendo asespecificaes de um objeto. Dentro da classe teremos todas as operaes. Classe realmente uma frma de bolo para um

    objeto.

    Classe

    Captulo 2: Introduo a Object Oriented com Java

  • 31

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Itens que voc deve sempre recordar: Uma classe uma definio de como iro ser os objetos. Podemos

    ver uma classe como sendo as especificaes de um objeto. Dentro da classe teremos todas as operaes, ou seja, todos os

    comportamentos que um objeto poder ter. Como podemos observar, uma classe realmente a frma para um

    objeto e, este por sua vez dever obedecer s regras definidas naclasse.

  • 32

    Anotaes

    Dentro do paradigma de programao orientado a objetos, temos oobjeto como o centro das atenes. possvel definir um objeto comoalgo que tenha atributos que sero manipulados.

    Objetos podem ser: Uma caneta, suas propriedades seriam cor da tinta, peso e di-

    menses.

    Um funcionrio, com as propriedades nome, idade, endereo etc.

    O paradigma de programao orientado a objetos. Objeto, o centro das atenes possvel definir um objeto como algo que tenha

    atributos que sero manipulados. Objetos podem ser: Uma caneta, suas propriedades seriam cor datinta, peso e dimenses. Um funcionrio, com as propriedades nome, idade,endereo etc.

    Objeto

    Captulo 2: Introduo a Object Oriented com Java

  • 33

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Cdigo de exemplo de objeto:

    Sada para o exemplo anterior:

  • 34

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    So considerados mtodos, as funes que sero aplicadas em um oumais objetos, ou seja, os mtodos serviro para manipular os atributosdos objetos, o mtodo o equivalente a uma funo em uma linguagem deprogramao procedural.

    atravs dos mtodos que os objetos se comunicam e, utilizam atroca de mensagens para isto, que se d com a chamada de mtodos.

    Mtodo

    No paradigma procedural tnhamos funes, no OOtemos mtodos. Podemos afirmar que o mtodo o equivalente a uma

    funo em uma linguagem procedural, por exemplo, alinguagem de programao Pascal . Os mtodos serviro para manipular os atributos dos

    objetos. atravs dos mtodos que os objetos se comunicam.

  • 35

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Exemplo do uso de mtodo:

  • 36

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Ilustrando o Emprego de Classe, Objeto e Mtodo

    Neste exemplo, fugiremos um pouco dos tradicionais exemplos queutilizam uma classe Pessoa para explicar o significado de classe, objeto emtodos, pois, num mundo real iremos nos deparar com inmeras situa-es onde nem sempre tudo completamente concreto. Faremos entouma anlise em uma classe com um nvel de abstrao maior que a classePessoa, utilizando para isto uma classe denominada Comemorao.

    Classe

    Classe Definimos a classe comemorao. Nesta classeficaro mtodos, atributos e objetos.

  • 37

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Observe a seqncia de exemplos:

    definido ento a classe comemorao. na classe que ficammtodos, atributos e objetos:

    Classe: Comemorao

  • 38

    Anotaes

    Uma instncia da classe comemorao poderia ser usada para repre-sentar o natal, j que o natal uma comemorao.

    Objeto: Natal ( uma comemorao)

    Objeto

    Objeto Uma instncia da classe comemorao poderia serusada para representar o natal, j que o natal umacomemorao.

    Captulo 2: Introduo a Object Oriented com Java

  • 39

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Atributos

    Atributos Caractersticas dos objetos. Particularidades dos objetos.

    Uma classe pode ter inmeros atributos, estes atributos descrevem ascaractersticas de cada instncia (objeto).

    Cada palavra identificadora que possa atribuir ao objeto uma particu-laridade um atributo do mesmo.

  • 40

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    O segundo atributo a ser preenchido o personagem da comemora-o, como se fosse uma mascote:

    Atributo 2 - PERSONAGEM: Papai Noel

    O primeiro atributo a ser preenchido o smbolo da comemorao:

    Atributo 1 - SMBOLO: rvore de Natal.

  • 41

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    O terceiro, e mais importante atributo o significado da comemorao:

    Atributo 3 - SIGNIFICADO: Nascimento de Jesus Cristo de Nazar,filho de Deus segundo o cristianismo.

  • 42

    Anotaes

    Mtodos

    Mtodos Agora o momento de estabelecer onde ficaria o mtodonesta nossa histria. Partindo-se do princpio bsico de queo mtodo o responsvel por manipular os atributos.

    Captulo 2: Introduo a Object Oriented com Java

    Agora o momento de estabelecer onde ficaria o mtodo nesta nossahistria. Partindo-se do princpio bsico de que o mtodo o responsvelpor manipular os atributos:

    Mtodos de Inicializao de Atributos

    - inserirAtributoSimbolo (rvore de Natal).- inserirAtributoPersonagem (Papai Noel).- inserirAtributoSignificado (Nascimento de Jesus).

  • 43

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Mtodos de Impresso de Atributos

    - imprimeAtributoSimbolo ( ) >>> imprime rvore de Natal.- imprimeAtributoPersonagem (Papai Noel) >>> imprime Papai

    Noel.- imprimeAtributoSignificado (Nascimento de Jesus) >>> imprime

    Nascimento de Jesus Cristo.

  • 44

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Resumindo Nosso Exemplo

    Fazendo a contabilidade de nossa classe, podemos contar: 1 classe. 3 atributos. 6 mtodos.

    Porm deve-se ficar muito claro que uma classe pode ter inmerosatributos e mtodos.

    Resumo: Classe: Comemorao. Atributo 1 SMBOLO: rvore de Natal. Atributo 2 PERSONAGEM: Papai Noel. Atributo 3 SIGNIFICADO: Nascimento deJesus Cristo. Mtodos de inicializao de atributos. Mtodos de impresso de atributos.

  • 45

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Resumindo nosso exemplo teremos: Classe: Comemorao. Atributo 1 SMBOLO: rvore de Natal. Atributo 2 PERSONAGEM: Papai Noel. Atributo 3 SIGNIFICADO: Nascimento de Jesus Cristo. Mtodos de inicializao de atributos. Mtodos de impresso de atributos.

  • 46

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

  • 47

    Anotaes

    Laboratrio 1:

    Captulo 2: Introduo aObject Oriented com Java

    Concluir o(s) exerccio(s) proposto(s) pelo instrutor. O instrutor lheapresentar as instrues para a concluso do mesmo.

  • 48

    Anotaes

    Laboratrio 1 - Captulo 2

    1) Compile e rode o exemplo da pgina 33 (cdigo de exemplo de objeto).

  • 49

    Anotaes

    Laboratrio 1 - Captulo 2: Introduo a Object Oriented com Java

    2) Compile e rode o exemplo da pgina 35 (exemplo do uso de mtodo).

  • 50

    Anotaes

    Laboratrio 1 - Captulo 2: Introduo a Object Oriented com Java

    3) Implemente o cdigo para a anlise feita durante o mdulo, contendoos itens abaixo:

    Classe: Comemoracao.

    Atributo 1 - SMBOLO: rvore de Natal.

    Atributo 2 - PERSONAGEM: Papai Noel.

    Atributo 3 - SIGNIFICADO: Nascimento de Jesus Cristo.

    Mtodos de inicializao de atributos.

    Mtodos de impresso de atributos.

  • 51

    Anotaes

    Laboratrio 1 - Captulo 2: Introduo a Object Oriented com Java

    4) Repita o exerccio anterior, s que deste teste usando caractersticas decomemorao da pscoa, para analisar se este cdigo tambm pode serusado para outras comemoraes.

  • 52

    Anotaes

    Laboratrio 1 - Captulo 2: Introduo a Object Oriented com Java

  • 53

    Anotaes

    Captulo 3:

    Aprofundando ConceitosIniciais

  • 54

    Anotaes

    Aprofundando Conceitos Iniciais

    O construtor funciona como um Inicializador de atributos.

    Embora possamos colocar em um construtor quase tudo o que pode-mos colocar em um mtodo, no correto dizer que o construtor tambm um mtodo, j que existe uma diferena crucial entre este dois elementosda programao orientada a objetos, o mtodo retorna um valor e oconstrutor nunca retorna, e nem mesmo declara um tipo de retorno.

    Construtor

    Inicializador de atributos. O Mtodo e o construtor. No retorna valor.

    Captulo 3: Aprofundando Conceitos Iniciais

  • 55

    Anotaes

    Captulo 3: Aprofundando Conceitos Iniciais

    Exemplo: Construtor

  • 56

    Anotaes

    O construtor default o construtor que existe implicitamente dentrode uma classe, ou seja, caso voc no defina nenhum construtor dentro deuma classe, ento Java ir prover um para voc.

    Caso o exemplo anterior no tivesse definido nenhum construtor, Javairia definir o seguinte construtor automaticamente:

    public Construtor (){super (); // Esta keyword ser estudada posteriormente.

    }

    Construtor Default

    Captulo 3: Aprofundando Conceitos Iniciais

    O construtor que existe implicitamente. Provido pelo prprio Java. Caso voc faa um construtor, o construtor default

    no existir.

  • 57

    Anotaes

    Captulo 3: Aprofundando Conceitos Iniciais

    Quando dizemos que estamos Encapsulando um determinado atributode um objeto, na verdade estamos protegendo uma ou mais informaesque existem dentro de uma classe porque no queremos compartilh-la.

    Um bom exemplo de aplicao de encapsulamento seria sobre atribu-tos, pois assim foraria seu acesso atravs de mtodos ou construtores,pois desta forma conseguiramos avaliar um determinado valor antes deatribu-lo.

    Tambm possvel aplicar encapsulamento a construtores, mtodos eclasses internas.

    Encapsulamento

    Protegendo uma ou mais informaes. Encapsulamento de atributos. Encapsulamento de mtodos. Encapsulamento de construtores. Encapsulamento de classes internas.

  • 58

    Anotaes

    Abaixo encontraremos um exemplo de encapsulamento de atributos:

    Captulo 3: Aprofundando Conceitos Iniciais

  • 59

    Anotaes

    Captulo 3: Aprofundando Conceitos Iniciais

    Iremos encontrar dentro da API todas as informaes sobre ferra-mentas, recursos, bibliotecas, links importantes etc, disponveis para umadeterminada edio Java.

    Java API Documentation

    Ferramentas. Recursos. Bibliotecas. Links importantes. Verso on-line.

  • 60

    Anotaes

    Captulo 3: Aprofundando Conceitos Iniciais

    Esta documentao est disponvel no site da Sun Microsystems paradownload, alm de uma verso on-line para consulta.

    API - Application Programming Interface

  • 61

    Anotaes

    Packages

    Captulo 3: Aprofundando Conceitos Iniciais

    Organiza classes. Agrupamento lgico e fsico das classes. Otimizar o deployment.

  • 62

    Anotaes

    Os pacotes servem para organizar classes atravs de um agrupamentolgico e fsico, alm de melhorar o desing de uma aplicao e otimizar odeployment da mesma.

    Vamos observar abaixo:

    Captulo 3: Aprofundando Conceitos Iniciais

    Quando definimos o pacote acima como empresa.departamento, de-vemos obrigatoriamente colocar esta classe dentro do diretrio empre-sa\departamento.

    Por exemplo:C:\empresa\departamento\RH.class

  • 63

    Anotaes

    O import serve para importarmos uma determinada classe dentro deum package, ou para importarmos todas as classes dentro de um pacote.

    importante dizer que no importa quantas classes nos importamos,somente sero carregadas as que utilizarmos, em outras palavras, s serocarregadas aquelas que forem instanciadas.

    Imports

    Captulo 3: Aprofundando Conceitos Iniciais

    Importao de uma Classe. Importao de todo o pacote de classes. Importao versus Carregamento de classes.

  • 64

    Anotaes

    Exemplo: importando pacotes necessrios.

    Captulo 3: Aprofundando Conceitos Iniciais

  • 65

    Anotaes

    Captulo 3: Aprofundando Conceitos Iniciais

    Fully Qualified Name - FQN

    Usando o nome totalmente qualificado, no necessitamos fazer imports,porm esta forma mais cansativa. A grande vantagem de se usar FQN abolir ambigidade.

    Usando FQN no necessitamos fazer imports. Usado para abolir ambigidade.

  • 66

    Anotaes

    Captulo 3: Aprofundando Conceitos Iniciais

    Veja o exemplo:

  • 67

    Anotaes

    CLASSPATH

    O CLASSPATH uma varivel de ambiente que define qual ser oponto de incio de busca por pacotes ou classes.

    Exemplo:

    SET CLASSPATH=.; C:\

    A definio acima indica que a procura por pacotes ou classes deveser a partir do diretrio atual ( . ), ou a partir do diretrio raiz (C:\).

    Captulo 3: Aprofundando Conceitos Iniciais

    O CLASSPATH uma varivel de ambiente quedefine qual ser o ponto de incio de busca porpacotes ou classes.Exemplo:SET CLASSPATH=.; C:\ A definio acima indica que a procura por pacotes

    ou classes deve ser a partir do diretrio atual ( . ), ou apartir do diretrio raiz (C:\ ).

  • 68

    Anotaes

    Captulo 3: Aprofundando Conceitos Iniciais

  • 69

    Anotaes

    Laboratrio 2:

    Captulo 3: AprofundandoConceitos Iniciais

    Concluir o(s) exerccio(s) proposto(s) pelo instrutor. O instrutor lheapresentar as instrues para a concluso do mesmo.

  • 70

    Anotaes

    Laboratrio 2 - Captulo 3:

    1) Implemente um construtor e o conceito de encapsulamento naquesto 2 do captulo anterior.

  • 71

    Anotaes

    Laboratrio 2 - Captulo 3: Aprofundando Conceitos Iniciais

    2) Compile e rode o exemplo de pacotes da pgina 62.

  • 72

    Anotaes

    3) Compile e rode o exemplo de import da pgina 64.

    Laboratrio 2 - Captulo 3: Aprofundando Conceitos Iniciais

  • 73

    Anotaes

    Laboratrio 2 - Captulo 3: Aprofundando Conceitos Iniciais

    4) Compile e rode o exemplo de FQN do captulo 3, da pgina 66. Apsfazer isso retire os FQNs (linhas 9 e 11) e, compile o cdigo novamentepara analisar o resultado desta alterao.

  • 74

    Anotaes

    Laboratrio 2 - Captulo 3: Aprofundando Conceitos Iniciais

  • 75

    Anotaes

    Captulo 4:

    Sintaxe Java 2 Platform

  • 76

    Anotaes

    Comentrios

    Sintaxe Java 2 Platform

    Captulo 4: Sintaxe Java 2 Platform

    Podem estar em qualquer parte do cdigo. // Comentrio de linha. /* Comentrio de vrias linhas */. /** Comentrio de documentao javadoc.

  • 77

    Anotaes

    Exemplo:

    Captulo 4: Sintaxe Java 2 Platform

  • 78

    Anotaes

    Identificadores Vlidos

    Os nomes dados das variveis, mtodos, objetos etc,so denominados identificadores. Existem regras para a aplicao dos mesmos.

    Os identificadores em Java devem seguir as seguintes regras:

    1 A primeira posio dever ser com uma letra, ( _ ) ou ( $ ).

    2 Ser formado por caracteres UNICODE.

    3 No ser uma palavra reservada: goto e const.

    4 No ser igual a literal: null.

    5 No ser repetido dentro do seu escopo.

    6 No podem ser as keywords ou as Boolean Literais: true e false.

    7 No pode ser uma keword Java: int, byte, class etc.

    Observaes: O item 4 est de acordo comJava Language SpeficationSection 3.10.7. O item 6 est de acordo comJava Language SpeficationSection 3.10.3.

    Captulo 4: Sintaxe Java 2 Platform

  • 79

    Anotaes

    Keywords Java

    A cada nova verso do Java, novas keywords soadicionadas ao JDK. No podem ser utilizadas como identificadores. As keywords goto e const, embora sejam keywords

    Java, no possuem implementao em Java.

    Captulo 4: Sintaxe Java 2 Platform

    As keywords Java existem com mltiplas finalidades, que sero estu-dadas ao longo do curso. A cada nova verso do Java, novas keywordsso adicionadas ao JDK.

    Uma das caractersticas mais importantes das keywords Java o fatode que as mesmas no podem ser utilizadas como identificadores.

    As keywords goto e const, embora sejam keywords Java, nopossuem nenhuma implementao em Java. Em C++, de onde goto econst foram herdadas, o uso normal.

  • 80

    Anotaes

    abstract double int strictfp assertboolean else interface superbreak extends long switch

    byte final native synchronizedcase finally new thiscatch float package throwchar for private throwsclass goto protected transient

    const if public trycontinue implements return void

    default import short volatiledo instanceof static while

    Captulo 4: Sintaxe Java 2 Platform

    Tabela de Identificadores:

  • 81

    Anotaes

    Captulo 4: Sintaxe Java 2 Platform

    Variveis Primitivas

    Tipos integrais. Ponto flutuante. Tipo caractere. Escape sequences.

    Tipo lgico.

    Abaixo sero apresentadas as variveis comuns, ou seja, no soobjetos.

    Tipos Integrais: constitudo por tipos numricos inteiros.

    Inicializao Automtica: 0 (zero).Tipo Tamanho em bits Faixa

    byte 8 -128 at +127

    short 16 -32,768 at +32,767

    int 32 -2,147,483,648 at+2,147,483,647

    long 64 -9,223,372,036,854,775,808 at+9,223,372,036,854,775,807

  • 82

    Anotaes

    Ponto Flutuante: constitudo por tipos numricos reais.

    Tipo Tamanho Faixaem bits

    float 32 -3.40292347E+38 at +3.40292347E+38double 64 -1.79769313486231570E+308 at +1.79769313486231570E+308

    Inicializao Automtica:float - 0.0F (zero + F).double - 0.0D (zero + D).

    Exemplos:float f = 10.44F; ou 10.44f (no case-sensitive).double d = 1.24; ou 1.24D ou 1.24d (no case-sensitive).

    Tipo Caractere:

    Tipo Tamanho em bits Faixa

    char 16 UNICODE - 65535 caracteres possveis

    Exemplos:byte b = 10; // Inicializao Automtica: 0 (zero).short s = 5; // Inicializao Automtica: 0 (zero).int i = 80; // Inicializao Automtica: 0 (zero).// Inicializao Automtica: 0L (zero+L).long l = 800l; ou 800L (no case-sensitive)

    Captulo 4: Sintaxe Java 2 Platform

  • 83

    Anotaes

    Escape Sequences:

    \u0000 a \uFFFF Caracteres Unicode\b retrocesso\t tab\n avano de linha\f form feed\r retorno de carro\ double quote\ single quote\\ barra invertida

    Captulo 4: Sintaxe Java 2 Platform

    Inicializao Automtica:char \u0000

    Exemplo:char c = a ou A;char c = \n;

    Tipo Lgico:

    Tipo Faixa

    boolean true ou false

    Inicializao Automtica:boolean - false

    Exemplo:boolean b = false;boolean b = true;

  • 84

    Anotaes

    Casting de Primitivas

    Captulo 4: Sintaxe Java 2 Platform

    Casting implcito. Casting explcito. Promoes automticas.

  • 85

    Anotaes

    Captulo 4: Sintaxe Java 2 Platform

    8 bytes, floating point

    4 bytes, floating point

    8 bytes, signed integer

    4 bytes, signed integer

    2 bytes, signed integer

    2 bytes, unsigned integer

    1 byte, signed integer

    double

    float

    long

    int

    short char

    byte

    Na figura anterior, considere casting automtico entre os tipo que vode baixo para cima, ou seja do byte ao double e do char ao double.

    Quando necessitamos atribuir o valor de uma varivel a uma outra e,elas no so compatveis, como em tamanho (bits), por exemplo, entonecessitamos fazer um casting. Abaixo segue um detalhamento sobrecasting de variveis.

  • 86

    Anotaes

    long int:discarta quatro bytes:

    range -2147483648 2147483647 so preservados.

    int short:discarta dois bytes:

    range -32768 32767 so preservados.

    short byte:discarta um byte:

    range -128 127 so preservados.

    int char:discarta dois bytes:

    range 0 65535 so preservados.

    char short e short char:no precisa fazer nada, porm:

    somente nmeros no range 0 32767 so preservados.

    byte char:discarta dois bytes:

    somente nmeros no range de 0 127 so preservados.

    double float:

    O resultado calculado por aproximao. nmeros muito maior que sua capacidade iro ser mapeadospara POSITIVE_INFINITY ou NEGATIVE_INFINITY.

    double or float any integer number type: A parte fractional discartada.

    Captulo 4: Sintaxe Java 2 Platform

  • 87

    Anotaes

    Captulo 4: Sintaxe Java 2 Platform

    Exemplo: Casting// Operao vlidalong bigval = 6;

    // Operao invlida porque so de tipos diferentes.int smallval = 99L;float z = 12.414F; // Operao vlida

    // Operao invlida porque est tentando atribuir um valor double.float zp = 12.414;

  • 88

    Anotaes

    Captulo 4: Sintaxe Java 2 Platform

    Passagem por Referncia

  • 89

    Anotaes

    Captulo 4: Sintaxe Java 2 Platform

    Sada:

  • 90

    Anotaes

    Passagem por Valor

    Captulo 4: Sintaxe Java 2 Platform

  • 91

    Anotaes

    Captulo 4: Sintaxe Java 2 Platform

    Sada:

  • 92

    Anotaes

    Captulo 4: Sintaxe Java 2 Platform

  • 93

    Anotaes

    Laboratrio 3:

    Captulo 4: Sintaxe Java 2Platform

    Concluir o(s) exerccio(s) proposto(s) pelo instrutor. O instrutor lheapresentar as instrues para a concluso do mesmo.

  • 94

    Anotaes

    Laboratrio 3 - Captulo 4:

    1) Teste os identificadores conforme a tabela que foi apresentada napgina , a seguir segue uma cpia da mesma:

    1 A primeira posio dever ser com uma letra, _ ou $.2 Ser formado por caracteres UNICODE.

    3 No ser uma palavra reservada: goto e const.

    4 No ser igual a literal: null.

    5 No ser repetido dentro do seu escopo.

    6 No podem ser as keywords ou as Boolean Literais: true e false.7 No pode ser uma keword Java: int, byte, class etc.

  • 95

    Anotaes

    2) Teste os tipos de variveis estudados neste captulo, so elas:

    - Tipos Integrais:- Ponto Flutuante:- Tipo Caractere:- Dgrafos:- Tipo Lgico:

    Laboratrio 3 - Captulo 4: Sintaxe Java 2 Platform

  • 96

    Anotaes

    Laboratrio 3 - Captulo 4: Sintaxe Java 2 Platform

    3) Compile e rode o exemplo de Passagem por Referncia da pgina 88.

  • 97

    Anotaes

    Laboratrio 3 - Captulo 4: Sintaxe Java 2 Platform

    4) Compile e rode o exemplo de Passagem por Valor da pgina 90.

  • 98

    Anotaes

    Laboratrio 3 - Captulo 4: Sintaxe Java 2 Platform

  • 99

    Anotaes

    Captulo 5:

    Usando Operadores Java

  • 100

    Anotaes

    Usando Operadores Java

    Caracterstica de funcionamento muito parecida aC/C++. Instanceof no existe em C++. Incremento e decremento so de comportamento

    idnticos aos de C/C++.

    Captulo 5: Usando Operadores Java

    Neste captulo sero apresentados os operadores Java. Muitos des-tes operadores tem sua caracterstica de funcionamento muito parecida aC/C++.

    Um grande destaque para este captulo de operadores exatamente ooperador instanceof que no existe em C++, ou muito menos em C, queno orientado a objetos.

    O operador instaceof serve exclusivamente para testar tipos de obje-tos, e um operador muito eficiente. Existe a possibilidade de uso desteoperador at mesmo em objetos que esto em polimorfismo.

  • 101

    Anotaes

    Captulo 5: Usando Operadores Java

    J os operadores extremamente versteis e importantes como os deincremento e decremento so de comportamento idnticos aos de C/C++.

    Outro grande destaque entre os operadores o ternary, que permiteuma excelente e elegante forma de inicializar variveis e objetos.

  • 102

    Anotaes

    Captulo 5: Usando Operadores Java

    Tipos de Operadores

    Operator Notao unary prefix binary postfix ternary infix

    Um operador pode executar uma funo em um, dois ou trs operandos.Um operador que requer apenas um operando, chamado de unaryoperator. Por exemplo, ++ um unary operator que incrementa um valorde um operando em 1. Um operador que requer dois operandos chama-do de binary operator. Por exemplo, = um binary operator, que atribuio valor que est no lado direito para o operando que est no lado esquer-do. E por ltimo, o ternary operator que requer trs operandos. Esteltimo operador, um modo curto do if-else.

    O unary operator suporta qualquer notao de prefixo ou sufixo.A notao do prefixo significa que o operador aparece antes de seuoperando:

  • 103

    Anotaes

    Captulo 5: Usando Operadores Java

    Na notao prefix, o operador antecede o operando:

    op x

    A notao postfix significa que o operador aparece aps seu operando:

    op x

    Todos os operadores binrios usam a notao de infix, que significaque o operador aparece entre seus operandos:

    op1 x op2

    O operador ternrio tambm infix; cada componente do operadoraparece entre operandos:

    op1 ? op2 : op3

    Alm a executar a operao, um operador retorna um valor. O valordo retorno e seu tipo dependem do operador e do tipo de seus operandos.Por exemplo, os operadores aritmticos, que executam operaes aritm-ticas bsicas tais como a adio e a subtrao, retornam nmeros resul-tantes da operao aritmtica. O tipo de dados retornado por um opera-dor aritmtico depende do tipo de seus operandos.

  • 104

    Anotaes

    Captulo 5: Usando Operadores Java

    Operadores Aritimticos

    Adio. Subtrao. Multiplicao. Diviso. Mdulo.

    Java suporta vrios operadores aritmticos para todos os nmerosfloating-point e do inteiro. Estes operadores so + (adio), - (subtra-o), * (multiplicao), / (diviso), e % (mdulo). A tabela seguinte suma-ria as operaes aritmticas binrias na lngua de programao de Java.

    Operador Uso Descrio

    + op1 + op2 Adiciona op1 e op2

    - op1 - op2 Subtrai op2 de op1

    * op1 * op2 Multiplica op1 por op2

    / op1 / op2 Divide op1 por op2

    % op1 % op2 Resto de op1 / op2

  • 105

    Anotaes

    Captulo 5: Usando Operadores Java

    No exemplo, ArithmeticTest, que definimos dois inteiros, dois nme-ros double e usamos os cinco operadores aritmticos executar operaesaritmticas diferentes. Este programa usa tambm + para concatenarStrings.

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

    int i = 30;int j = 22;double x = 19.55;double y = 6.44;System.out.println(Valores de variaveis...);System.out.println( i = + i);System.out.println( j = + j);System.out.println( x = + x);System.out.println( y = + y);

    //AdioSystem.out.println(Adicao...);System.out.println( i + j = + (i + j));System.out.println( x + y = + (x + y));

    //SubtraoSystem.out.println(Subtracao...);System.out.println( i - j = + (i - j));System.out.println( x - y = + (x - y));

    //MultiplicaoSystem.out.println(Multiplicacao...);System.out.println( i * j = + (i * j));System.out.println( x * y = + (x * y));

  • 106

    Anotaes

    //DivisoSystem.out.println(Divisao...);System.out.println( i / j = + (i / j));System.out.println( x / y = + (x / y));

    //Resto da divisoSystem.out.println(Resto da divisao...);System.out.println( i % j = + (i % j));System.out.println( x % y = + (x % y));

    //Tipos mistosSystem.out.println(Tipos mistos...);System.out.println( j + y = + (j + y));System.out.println( i * x = + (i * x));

    }}

    Sada:

    Valores de variaveis... i = 30 j = 22 x = 19.55 y = 6.44Adicao... i + j = 52 x + y = 25.990000000000002Subtracao... i - j = 8 x - y = 13.11Multiplicacao... i * j = 660 x * y = 125.90200000000002

    Captulo 5: Usando Operadores Java

  • 107

    Anotaes

    Divisao... i / j = 1 x / y = 3.0357142857142856Resto da divisao... i % j = 8 x % y = 0.22999999999999954Tipos mistos... j + y = 28.44 i * x = 586.5

    Captulo 5: Usando Operadores Java

  • 108

    Anotaes

    Promoes Automticas

    Os operadores + ou em variveis byte, shortou char.

    Exemplo:

    byte b = 10;b = -b; // erro de compilao!

    int i = -b; // compilao ok

    Caso sejam aplicados os operadores + ou em variveis byte, shortou char, ir ocorrer uma promoo do valor resultante para int.

    Exemplo:

    byte b = 10;b = -b; // erro de compilao!

    int i = -b; // compilao ok

    Captulo 5: Usando Operadores Java

  • 109

    Anotaes

    Operadores Incremento

    Incremento (++). Decremento (). Pr-incremento. Pr-decremento.

    Em Java temos os operadores de incremento (++) e decremento ().O operador de incremento aumenta o operando em um. O operador dedecremento diminui o valor de seu operando em um. Por exemplo:

    Operador Uso Descrio

    ++ var++ Usa a varivel e depois incrementa.++var Incrementa a varivel e depois usa.

    var Usa a varivel e depois faz o decremento.var Faz o decremento depois usa a varivel.

    Captulo 5: Usando Operadores Java

  • 110

    Anotaes

    A expresso x = x + 1; teria o mesmo efeito das expresses abaixo:

    x++;++x;x+=1;

    Similarmente, poderamos escrever: x = x - 1; que equivalente a:x;x;x-=1;

    Estes operadores so nicos e, como podemos observar, estes opera-dores podem aparecer como prefixo e tambm sufixo.

    Os operadores ++ ou so implementados de diferentes formas.Quando usado como prefixo teremos um pr-decremento (ex.: var), oupr-incremento (ex.: ++var). Usando-o como sufixo, teremos um pr-incremento (ex.: ++var) ou um pr-decremento (ex.:var).

    A tabela abaixo demonstra o uso dos operadores como prefixo ousufixo:

    Captulo 5: Usando Operadores Java

  • 111

    Anotaes

    Pr-Decremento

    int a, b;

    a = 10;b = a;

    Aps isso os valores seriam:

    a fica com o valor 9b fica com o valor 9

    Ps-Decremento

    int a, b;

    a = 7;b = a;

    Aps isso os valores seriam:

    a fica com o valor 6b fica com o valor 7

    Pr-Incremento

    int a, b;

    a = 5;b = ++a;

    Aps isso os valores seriam:

    a fica com o valor 6b fica com o valor 6

    Ps-Incremento

    int a, b;

    a = 2;b = a++;

    Aps isso os valores seriam:

    a fica com o valor 3b fica com o valor 2

    Vamos declarar duas variveis:

    A classe abaixo ir testar as condies de uso dos operadores ++ e :

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

    int a = 23;int b = 5;System.out.println(a & b : + a + + b);a += 30;b *= 5;System.out.println(Novas atribuicoes para a & b: +a+ +b);a++;b;System.out.println(Apos incremento & decremento a & b: +a+ +b);

    Captulo 5: Usando Operadores Java

  • 112

    Anotaes

    System.out.println(a />>/ b : + a + />>/ + b);

    System.out.println(a++ />>/ ++b : + a++ + />>/ + ++b);

    }}

    Sada:

    a & b : 23 5Novas atribuicoes para a & b: 53 25Apos incremento & decremento a & b: 54 24a />>/ b : 54 />>/ 23a++ />>/ ++b : 53 />>/ 24

    Captulo 5: Usando Operadores Java

  • 113

    Anotaes

    Operadores Relacionais

    Os operadores relacionais Java. O mtodo equals(). O uso do operador == em objetos. Caractersticas e exemplos de uso do mtodo

    equals().

    Estes operadores foram formulados para efetuar comparaes entrevalores. Lembrando que para efetuar comparaes entre objetos, Javadisponibiliza tambm outros recursos como o mtodo equals e o instanceofpor exemplo, que sero estudados neste curso.

    Captulo 5: Usando Operadores Java

  • 114

    Anotaes

    O Operador == quando usado em Objetos

    Retorna true objetos estiverem apontando para a mesma rea dememria, ou seja, duas referncias iguais.

    Se dois objetos tiverem dados idnticos o operador == ir retornarfalse, pelo fato de residirem em diferentes reas de memria.

    Uma mesma referncia pode ter identificadores diferentes.

    O Mtodo Equals()

    O mtodo equals() se encontra na classe Object e faz a mesmacoisa que o operador ==, porm deve ser usado apenas objetos.Este herdado da classe Object.

    Algumas classe da API fazem overriding no mtodo equals, casonecessrio voc tambm pode fazer, este tipo de implementao visafacilitar a comparao de dados em diferentes objetos.

    Operador Exemplo Descrio

    == A == B Verifica se A igual a B

    != A != B Verifica se A diferente de B

    < A < B Verifica se A menor que B

    > A > B Verifica se A maior que B

    = B Verifica se A maior ou igual a B

    Captulo 5: Usando Operadores Java

  • 115

    Anotaes

    As classes abaixo fazem overriding no mtodo equals():

    String (em testes).Todas as Wrappers (em testes).Date (se a data e a hora forem iguais).BitSet (se tiver a mesma seqncia de bits).File (se o relative path name forem iguais. ).

    Exemplo:

    Boolean b1 = new Boolean(true);Boolean b2 = new Boolean(true);

    System.out.println( Test: + b1.equals( b2 ) ); = trueSystem.out.println( Test: + ( b1 == b2 ) ); = false

    O exemplo abaixo mostra o uso de Operadores Relacionais:

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

    int i = 27;int j = 22;int k = 22;System.out.println(Valores de Variaveis...);System.out.println( i = + i);System.out.println( j = + j);System.out.println( k = + k);

    //Maior queSystem.out.println(Maior que...);System.out.println( i > j = + (i > j)); //falseSystem.out.println( j > i = + (j > i)); //trueSystem.out.println( k > j = + (k > j)); //false, eles so iguais

    Captulo 5: Usando Operadores Java

  • 116

    Anotaes

    //Maior ou igualSystem.out.println(Maior ou igual...);System.out.println( i >= j = + (i >= j)); //falseSystem.out.println( j >= i = + (j >= i)); //trueSystem.out.println( k >= j = + (k >= j)); //true

    //Menor queSystem.out.println(Menor que...);System.out.println( i < j = + (i < j)); //trueSystem.out.println( j < i = + (j < i)); //falseSystem.out.println( k < j = + (k < j)); //false

    //Menor ou igualSystem.out.println(Menor ou igual...);System.out.println( i

  • 117

    Anotaes

    Sada:

    Valores de Variaveis...i = 27j = 22k = 22

    Maior que...i > j = truej > i = falsek > j = false

    Maior ou igual...i >= j = truej >= i = falsek >= j = true

    Menor que...i < j = falsej < i = truek < j = false

    Menor ou igual...i

  • 118

    Anotaes

    O Operador Instanceof

    instanceof que no existe em C ou C++. Usado para testar instncias de classes. Uso permitido em objetos que estejam em

    polimorfismo.

    Um grande destaque para este captulo de operadores exatamente ooperador instanceof que no existe em C++, ou muito menos em C, queno orientado a objetos.

    O operador instaceof serve exclusivamente para testar instancias declasses, e um operador muito eficiente. Existe a possibilidade de usodeste operador at mesmo em objetos que esto em polimorfismo.

    Captulo 5: Usando Operadores Java

  • 119

    Anotaes

    instanceof Testa se um objeto: uma instncia de uma determinada classe ou subclasse.Ou se implementa uma interface.

    Notas:Todos os objetos so instncias da classe Object.Todas as numeric wrappers so instncias da classe Number.Todos os applets so instncias da classe Applet.Qualquer classe que implemente uma determinada interface umainstncia desta interface.Qualquer classe que seja uma subclasse de uma outra classe instnciadesta classe.

    Exemplos:System.out.println( (new Integer(5)) instanceof Number) );

    Sada:true

    Motivo:Todas as wrappers classes extends Number class.

    Captulo 5: Usando Operadores Java

  • 120

    Anotaes

    Operadores relacionais condicionais. Construir expresses mais elaboradas. O operadores binrios &&, ||, &, |, ^ . O operador unrio ( ! ).

    Os operadores relacionais abaixo so tambm operadores con-dicionais. Estes operadores servem para construir expresses maiselaboradas.

    Abaixo encontraremos uma lista com seis operadores, sendo quecinco deles so operadores binrios (&&, ||, &, |, ^ ) e um unrio ( ! ).

    Captulo 5: Usando Operadores Java

  • 121

    Anotaes

    Op Exemplo Tipo Descrio

    && (Exp1) && (Exp2) binrio Se Exp1 e Exp2 forem verdadeiros, estacondicional ir retornar true. A expressoExp2 no ser avaliada se a Exp2 for falsa.

    || (Exp1)||(Exp2) binrio Se Exp1 ou Exp2 for true, esta condicionalretornar true. A expresso Exp2 no seravaliada se a Exp1 for true.

    ! !(Exp) unrio O valor boolean invertido. Se Exp for truecom este operador o retorno ser false evice-versa.

    & (Exp1) & (Exp2) binrio Se Exp1 e Exp2 forem verdadeiras, estacondicional ir retornar true. A expressoExp2 sempre avaliada.

    | (Exp1) | (Exp2) binrio Se Exp1 ou Exp2 for true, esta conditionalretornar true. A expresso Exp2 sempre avaliada.

    ^ (Exp1) ^ (Exp2) binrio O nico momento em que teremos o retornode true ser quando a Exp1 e a Exp2 foremdiferentes, caso contrrio retornar false.ento retornaremos true e, se Exp1.

    Captulo 5: Usando Operadores Java

  • 122

    Anotaes

    Operadores Boolean

    Boolean AND. Boolean OR. Short Circuit AND. Short Circuit OR.

    Os tipos so boolean e, os resultados so boolean tambm. Todas ascondies sero avaliadas da esquerda para a direita.

    Exemplo OR:int x = 0;if (true | (x) == 5);results: x = 6

    Exemplo AND:int x = 3;if (false | (x) == 5);results: x = 2

    Captulo 5: Usando Operadores Java

  • 123

    Anotaes

    Short Circuit Logical Boolean - AND/OR

    Os tipos so boolean e, os resultados so boolean tambm. Todas ascondies sero avaliadas da esquerda para a direita.

    Exemplo AND:int z = 0;if (false && (z++) == 5);results: z = 0

    Exemplo OR:int s = 0;if (true || (s++) == 5);results: s = 0

    Captulo 5: Usando Operadores Java

  • 124

    Anotaes

    Bitwise Operators

    Bitwise & (AND). Bitwise | (OR). Bitwise ~ (reverse bits). Bitwise ^ (XOR - eXclusive OR).

    Os bitwise operators so aplicados a nmeros inteiros. Ambos oslados so avaliados.

    Operador Exemplo Operao

    & A & B bitwise and

    | A | B bitwise or^ A ^ B bitwise xor

    ~ ~A bitwise complement

    Captulo 5: Usando Operadores Java

  • 125

    Anotaes

    Bitwise - AND/OR

    Os tipos so inteiros. O Resultado inteiro.int Y = ( 1 | 2 ); Resultado: Y = 300010010-

    0011 = 3 base 10

    Exemplos:(4 & 3) + (2 | 1) = 3 (na base 10)4 = 1000 2 = 00103 = 0011 1 = 0001AND OR 0000 + 0011 0 + 3 = 3 Base 10

    Bitwise ~ reverse bits. Ele ir retornar o complemento

    Ex: int i = 0x00000008; i = ~i; Resultado i = 0xFFFFFF7Why: Binary 0000 = 0 reverse bits to 1111 = FWhy: Binary 1000 = 8 reverse bits to 0111 = 7.

    Bitwise ^ - exclusive or XOR

    Retorna true se o valor Boolean das expresses forem diferentes.

    ( true ^ false ); Retorna true!( true ^ true ); Retorna false!( false ^ false ); Retorna false!

    ObservaoMath.pow (double a, double b) Este mtodo calcula raizquadrada. Onde a a base eb o expoente. Algumas lingua-gens usam ^ mas no o Java.

    Captulo 5: Usando Operadores Java

  • 126

    Anotaes

    Shift Operator

    Shift aritmtico. Shift aritmtico direita. Shift aritmtico esquerda. Shift lgico.

    A tabela abaixo mostra o uso do shift operator aritmtico e lgico:

    Operador Exemplo Descrio

    >> X >> 2 shift de 2 bits no valor de X.> Z >>> 4 shift de 4 bits no valor de Z, deslocando logicamente.

    Captulo 5: Usando Operadores Java

  • 127

    Anotaes

    Os operadores que fazem a manipulao de bits em um determinadodado, so chamados de shift operators. Estas manipulaes deslocambits para a direita ou para a esquerda. As operaes com shift aritmticosso feitas mantendo o bit de sinal (bit responsvel por definir um determi-nado nmero como positivo ou negativo).

    Temos ainda um shift operator lgico que faz o deslocamento de bitsdesprezando o sinal o sinal.

    Na composio de uma expresso que faz o deslocamento de bits,temos o operando seguido do operador de shift e o nmero de posiesque sero deslocadas. O shift sempre ocorre no sentido indicado pelooperador.

    Exemplo:A seguinte expresso indica que o nmero 13 ser deslocado uma

    casa a direita:

    13 >> 1

    A representao binria do nmero 13 1101. O resultado da opera-o 1101 shifted a direita em uma posio 110, ou 6 em decimal. Obits da direita so preenchidos por zero.

    Captulo 5: Usando Operadores Java

  • 128

    Anotaes

    Bitwise Shifting Operator

    >> - Bits shift para a direita (incluindo o bit de sinal). >> - Bits shift para a direita. Bitwise Shifting. Regras para Negativos em Binrio.

    Captulo 5: Usando Operadores Java

  • 129

    Anotaes

    BitwiseShifting:

    Bitwise Shifting:>> - Bits shift para a direita (incluindo o bit de sinal).>> - Bits shift para a direita.

    Bitwise shifting retorna um int. Se voc fizer um cast para um valormenor, estar perdendo bits.

    Exemplos:var = 0010 0011var = var >> 1 , resultado = 0001 0001var = var >> 1, resultado = 0001 0001

    Quando aplicamos >> e >>> a nmeros negativos, temos resultados dife-renciados.

    number = -811111111111111111111111111111000 = -8number = number >> 1 (-4)11111111111111111111111111111100 = -4Note que o bit de sinal esquerda permanece em 1.number = number >> 101111111111111111111111111111100 = 2147483644

    Note que o bit de sinal foi alterado para 0.

    Esta a diferena entre >> e >>>.>> - o bit de sinal permanece em 1.>>> - o bit de sinal sempre 0.

    Exemplos:int i = 0x00000021; int y = 0; y = i >>2;Resultado in base 10: i = 33 and y = 8Resultado in base 2: i=0010 0001, y=0000 1000

    Captulo 5: Usando Operadores Java

  • 130

    Anotaes

    Negativosem Binrio

    Regras para Negativos em BinrioSe o bit de sinal for 1, ento o nmero negativo.

    Passos para converter um nmero negativo em 32 bytes em binrio. Aplicamos o complemento de byte. Para fazer isso voc deve inver-

    ter o bit. Todos os 1s se tornam 0s e todos os 0s se tornam 1s. Adicionamos 1 byte.

    Exemplos:Integer(32 bits)-1

    -2

    -3

    Binary

    1111111111111111111111111111111100000000000000000000000000000000 (2s compliment)00000000000000000000000000000001 Soma 100000000000000000000000000000001 Igual 1Resposta: -1 (Mantm o sinal).

    11111111111111111111111111111110 00000000000000000000000000000001 (2s compliment)00000000000000000000000000000001 Soma 100000000000000000000000000000010 Igual 2Resposta: -2 (Mantm o sinal).

    1111111111111111111111111111110100000000000000000000000000000010 (2s compliment)00000000000000000000000000000001 Soma 100000000000000000000000000000011 Igual 3Resposta: -3 (Mantm o sinal).

    Captulo 5: Usando Operadores Java

  • 131

    Anotaes

    Ternary Operator

    Este operador usa a notao infix. Usado para inicializar variveis ou objetos.

    Outro grande destaque entre os operadores o ternary, que permiteuma excelente e elegante forma de inicializar variveis e objetos.

    Operador:?:( ? : )

    Exemplo:Expresso lgica ? v_1 : v_2

    Descrio:Caso a expresso lgica seja verdade o v_1 ser retornado, caso con-

    trrio ser retornado v_2.

    Captulo 5: Usando Operadores Java

  • 132

    Anotaes

    Short cut Assigment Operators

    Operadores +=

    -=

    *=

    /= %= &= |= ^=

  • 133

    Anotaes

    Operador Expresso Reduzida Expresso Expandida

    += A += B A = A + B

    -= A -= B A = A - B

    *= A *= B A = A * B

    /= A /= B A = A / B

    %= A %= B A = A % B

    &= A &= B A = A & B

    |= A |= B A = A | B^= A ^= B A = A ^ B

    > B

    >>>= A >>>= B A = A >>> B

    Captulo 5: Usando Operadores Java

  • 134

    Anotaes

    Outros Operadores

    Operadores dissolvidos ao longo do curso: [] .

    (params) (type)

    Abaixo temos uma tabela onde encontramos outros operadoressuportados por Java, estes operadores so estudados conforme emsuas respectivas sees:

    Captulo 5: Usando Operadores Java

  • 135

    Anotaes

    Operador Descrio Seo Pertinente

    [] Usado para declarar arrays, Este operador estudadcriar arrays, e acessar elementos o no mdulo de arrays de um array.

    . Usado para nomes qualificados. Este operador visto na seo que trata FQN

    ( params ) Delimitao para lista de Estudamos este operador parmetros, separados juntamente com mtodos por virgulas. e construtores

    ( type ) Casts (coero) de valores Este operador visto em para os tipos especificados casting de variveis

    new Criao de novos objetos Visto desde Passagempor Referncia

    Captulo 5: Usando Operadores Java

  • 136

    Anotaes

    Tabela completa de Operators Java.

    Operador

    () [] .++

    + -

    ~

    !

    ()* / %

    +

    -

    > >>>

    < > =

    instanceof

    == !=

    &

    ^

    |&&

    ||( ? : )=, +=, /=%=, +=, -==, >>>=&=, ^=, ~=

    Precedncia

    1

    2

    2

    2

    2

    2

    3

    4

    4

    5

    6

    6

    7

    8

    9

    10

    11

    12

    13

    14

    Associatividade

    ESQUERDA para DIREITADIREITA para ESQUERDADIREITA para ESQUERDADIREITA para ESQUERDADIREITA para ESQUERDADIREITA para ESQUERDAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITAESQUERDA para DIREITADIREITA para ESQUERDADIREITA para ESQUERDA

    Captulo 5: Usando Operadores Java

  • 137

    Anotaes

    Bases Numricas

    A converso entre bases, e operaes entre elas, como as que acon-tecem com bitwise operators so muito importantes, pois ela um dositens avaliados na prova de certificao para programadores Java. Seravaliado na prova se voc sabe fazer converses entre bases numricas,por exemplo, transforma decimal em binrio.

    O motivo pelo qual as bases numricas so itens de prova o fatode que a linguagem de programao tem diversos recursos voltados sbases octal, binria e hexadecimal. Os entendimentos destes itens tam-bm so importantes para o conhecimento das variveis primitivas, jque os tipos integrais suportam nmeros em hexadecimal e octal.

    Este curso no ir se aprofundar em bases numricas, o objetivo ensinar itens cruciais e elementares para a prova e entendimento da lin-guagem.

    O nome da base representa como os dgitos so representados emum sistema numrico.

    Por exemplo:

    Base 10 tem 10 dgitos (0-9)Base 2 tem 2 (0-1)Base 8 tem 8 (0-7)Base 16 tem 16 (0-9, e A-F).

    Como podemos ver a partir destes exemplos, a representao dabase no inclui o digito da prpria base para represent-lo. Por exem-plo, a base octal no tem o nmero oito como representao, assimcomo a base decimal no tem o digito 10 na sua grafia.

    Nota:Lembrem-se, converses eoperaes entre bases bin-rias tambm so avaliados naprova de certificao Java.

    Captulo 5: Usando Operadores Java

  • 138

    Anotaes

    Exemplo dos nmeros usados em quarto bases numricas:

    Agora contando em diferentes bases:

    Base 2 0,1

    Base 8 0,1,2,3,4,5,6,7

    Base 10 - 0,1,2,3,4,5,6,7,8,9

    Base 16 - 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

    Base 2 0,1,10,11,100,101,110,111, etc..

    Base 8 - 0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21, 22,23,24,25,26,27,30, etc...

    Base 10 - 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 19,20, etc...

    Base 16 - 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20, etc...

    Por exemplo, temos a seguinte converso de Base 16 to Base 10: A=10, B=11, C=12, D=13, E=14, F=15.

    Um item que podemos observar o fato de que a representao nu-mrica para todas as bases zero.

    A seguir temos algumas tabelas de converses de nmeros paraa base 10:

    Captulo 5: Usando Operadores Java

  • 139

    Anotaes

    Tabela 1:

    10 (Base 10) = 10 (Base 10) Frmula: (1*10) + (0*1) = 1010 (Base 2) = 2 (Base 10) Frmula: (1*2) + (0*1) = 210 (Base 8) = 8 (Base 10) Frmula: (1*8) + (0*1) = 810 (Base 16) = 16 (Base 10) Frmula: (1*16) + (0*1) = 16

    Tabela 2:

    21 (Base 10) = 10 (Base 10) Frmula: (2*10) + (1*1) = 21101 (Base 2) = 5 (Base 10) Frmula: (1*4) + (0*2) + (1*1) = 521 (Base 8) = 8 (Base 10) Frmula: (2*8) + (1*1) = 1721 (Base 16) = 16 (Base 10) Frmula: (2*16) + (1*1) = 33

    Tabela 3:

    1010 (Base 2) = 10 (Base 10) Frmula: (1*8)+(0*4)+(1*2) + (0*1) = 101111 (Base 2) = 15 (Base 10) Frmula: (1*8)+(1*4)+(1*2) + (1*1) = 151 0000 (Base 2) = 16 (Base 10) Frmula: (1*16)+(0*8)+(0*4)+(0*2) + (0*1) = 16A (Base 16) = 10 (Base 10) Frmula: (10*1) = 10FF (Base 16) = 255 (Base 10) Frmula: (15*16)+(15*1) = 255100 (Base 16) = 256 (Base 10) Frmula: (1*256) (0*16)+(0*1) = 255

    Captulo 5: Usando Operadores Java

  • 140

    Anotaes

    Base 10 Base 2 Base 16

    0 0000 0

    1 0001 1

    2 0010 2

    3 0011 3

    4 0100 4

    5 0101 5

    6 0110 6

    7 0111 7

    Base 10 Base 2 Base 16

    8 1000 8

    9 1001 9

    10 1010 A

    11 1011 B

    12 1100 C

    13 1101 D

    14 1110 E

    15 1111 F

    Tabela de converso da Base 10 e 16

    Captulo 5: Usando Operadores Java

    Converso de Base 2 para Base 16

    Para converter a Base 2 (binria) para a Base 16 (hexadecimal), faagrupos de 4 bits e, ento use a tabela abaixo para converter para base 16.Voc pode usar o mesmo princpio para converter base 16 para a base 2.

  • 141

    Anotaes

    Laboratrio 4:

    Captulo 5: UsandoOperadores Java

    Concluir o(s) exerccio(s) proposto(s) pelo instrutor. O instrutor lheapresentar as instrues para a concluso do mesmo.

  • 142

    Anotaes

    Laboratrio 4 - Captulo 5

    1) Analise e encontre o erro no cdigo abaixo:

    public class exemplo03 {public static void main (String args[]){int x =10;int y =3;

    System.out.println(x = + x);System.out.println(y = + y);System.out.println(-x = + (-x));System.out.println(x/y= + (x/y));System.out.println(Resto de x por y= + (x/y));System.out.println(inteiro de x por y = + (x/y));System.out.println(x +1 = + (x++));}

    }

  • 143

    Anotaes

    Laboratrio 4 - Captulo 5: Usando Operadores Java

    2) Crie um programa que inicialize uma varivel double de acordo com oresto de uma diviso qualquer, desde que esse seja mpar, caso contrrioinicialize com 1000. Utilize para isto o operador ternary.

  • 144

    Anotaes

    Laboratrio 4 - Captulo 5: Usando Operadores Java

    3) Faa a converso dos nmeros que esto na Base 16 para a Base 2 epara Base 10.

    21 (base 16) = _____ _____ (base 2) = _____ (base 10)08 (base 16) = _____ _____ (base 2) = _____ (base 10)FF (base 16) = _____ _____ (base 2) = _____ (base 10)1A3 (base 16) = _____ _____ _____ (base 2) = _____ (base 10)0xFEDC123 (base 16)= _____ _____ _____ _____ _____ _____ _____ (Base 2)

  • 145

    Anotaes

    Captulo 6:

    Controle de Fluxo

  • 146

    Anotaes

    A sintaxe dos comandos de controle de fluxo para Java se assemelhamuitos aos de C/C++.

    if / else if / else

    Controle de Fluxo

    Captulo 6: Controle de Fluxo

  • 147

    Anotaes

    Captulo 6: Controle de Fluxo

    while

  • 148

    Anotaes

    do

  • 149

    Anotaes

    for

  • 150

    Anotaes

    Captulo 6: Controle de Fluxo

    switch/case/default

    int op = 3switch (op){case 1:

    //entra aqui se op for igual a 1break; // termina o loop

    case 2://entra aqui se op for igual a 2break; // termina o loop

    case n:

    //entra aqui se op for igual a nbreak; // termina o loop

    default://entra aqui se op for diferente de 2 e 2

    }

  • 151

    Anotaes

    Laboratrio 5:

    Captulo 6: Controle deFluxo

    Concluir o(s) exerccio(s) proposto(s) pelo instrutor. O instrutor lheapresentar as instrues para a concluso do mesmo.

  • 152

    Anotaes

    Laboratrio 5 - Captulo 6

    1) Faa um programa Java que imprima na tela todos os nmeros mparesem uma contagem at 25, use o loop for.

  • 153

    Anotaes

    Laboratrio 5 - Captulo 6: Controle de Fluxo

    2) Faa um programa Java que imprima na tela todos os nmeros paresem uma contagem at 25, use o loop do.

  • 154

    Anotaes

    Laboratrio 5 - Captulo 6: Controle de Fluxo

    3) Faa um programa Java que imprima na tela todos os nmeros em umacontagem at 25 exceto os nmeros 8, 17, 21, use o loop while.

  • 155

    Anotaes

    4) Faa um programa Java que imprima na tela:

    - Bom dia- Boa tarde- Boa noite

    Use para isto uma varivel int, com horas inteiras apenas. Implemente ocdigo com if/else/elseif.

    Exemplo:

    - 00:00 as 11:00 - Bom dia- 12:00 as 17:00 - Boa tarde- 18:00 as 23:00 - Boa noite

    Laboratrio 5 - Captulo 6: Controle de Fluxo

  • 156

    Anotaes

    5) Repita o exerccio anterior, porm ao invs de usar if, use switch. Usecomo seletor uma varivel char conforme exemplo abaixo:

    - D- Bom dia- T- Boa tarde- N- Boa noite

    Laboratrio 5 - Captulo 6: Controle de Fluxo

  • 157

    Anotaes

    Captulo 7:

    Arrays

  • 158

    Anotaes

    Arrays

    Os arrays, como a maioria dos tipos manipulveis em Java, soobjetos. Objetos arrays no podem ser redimensionados, caso seja ne-cessrio ter um array maior, deve-se ento criar um novo array maior ecopiar o contedo para este novo.

    Assim como em C/C++ o ndice inicia em 0.

    Array Java so objetos. Objetos arrays no podem ser redimensionados. Assim como em C/C++ o ndice inicia em 0. O mtodo main l strings da linha de comando.

    Captulo 7: Arrays

  • 159

    Anotaes

    Captulo 7: Arrays

    Declarao / Criao / Inicializao de Atributos

  • 160

    Anotaes

    Acesso aos Elementos do Array

    possvel ler String diretamente da linha de comando. O primeiropasso para isso preparar nosso programa para receber e manipular osargumentos passados. Java uma o array de Strings recebidos pelo