apostila java
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