Introdução ao JAVA - PW02 - 437 pag

Embed Size (px)

Citation preview

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    1/436

    1

    Anotaes DIREITOSAUTORAISTodos os direitos so reservados para??? . Nenhuma parte deste material poder ser reproduzida, extrada, copiadatransmitida 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 pargraCdigo Penal, CF Lei N 6895 de 17/12/1980.

    PW 02Introduo ao Java

    Verso: 2.0.0

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    2/436

    2

    Anotaes

    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:

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    3/436

    3

    Anotaes

    Apresentao

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    4/436

    4

    Anotaes

    Introduo

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    5/436

    5

    Anotaes

    Nossa Metodologia

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    6/436

    6

    Anotaes

    Descrio

    Este curso fornece ao aluno conhecimento sobre como entender as regras e as estruturas deProgramao da Linguagem Java bem como suas principaisAPIs 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 feitoPW01 ou ter conhecimentos equivalentes.

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

    Objetivo do Curso

    Ao 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 (primitivecasting ). 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 deFile I/O. Compilar e rodar programas grficos (API AWT) com painis, botes, ttulos, campos de

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

    eventos. (**) Utilizar aAPI de Thread , para construir aplicativos com mltiplas linhas de execuo. Aplicar os conceitos de comunicao porSockets em uma redeTCP/IP. (**) Conhecer o Java 2 Collections Framework e implementarcollection .

    Certificaes

    Se seu objetivo a certificaoPCP JAVA, dever fazer tambm os cursosPW01, PW02ePW100e o exame oficial310-035.

    Se seu objetivo a certificaoDCP JAVA dever fazer tambm os cursosPW01, PW02,PW100, PW03 e PW04 e os exames oficiais310-035e 320-027.

    Se seu objetivo a certificaoACCP JAVA dever fazer os cursosPW01, PW02, PW100,PW03, PW04, PW05, PW06e PW08 e os exames oficiais310-035, 320-027e 310-051.

    Observe que os cursos so cumulativos e voc poder ter 3 certificaes Microsoft ao concluir os8 cursos da formaoACCP 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.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    7/436

    7

    Anotaes

    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 ......................................................................................................... 17

    JVM 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 ........................................................................................ 54Construtor ................................................................................................................... 54

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    8/436

    8

    Anotaes

    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 ............................................................................................................ 79

    Variveis 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 ....................................................................................... 132

    Outros Operadores ......................................................................................................... 134Bases Numricas ..................................................................................................... 137Converso de Base 2 para Base 16 ......................................................................... 140

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    9/436

    9

    Anotaes

    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.....................................................................................169

    Interface ........................................................................................................................... 170Regras 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 .............................................................. 203

    Java Exceptions .............................................................................................................. 204Hierarquia de Classes ..................................................................................................... 208Java I/O ........................................................................................................................... 211

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    10/436

    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 ............................................................................................................ 246

    Os 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 ....................................................................................... 300

    Java Container .......................................................................................................... 302Gerenciadores de Layout .......................................................................................... 304Frame ........................................................................................................................ 306

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    11/436

    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 ........................................................................................................................ 333

    Menu ......................................................................................................................... 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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    12/436

    12

    Anotaes

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    13/436

    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 Jumweb browser chamado HotJava . Alm de um importante marco paraa plataforma Java , o HotJava tambm foi a primeira grande demonstrao do potencial Java como uma linguagem de desenvolvimento.

    A inteno deste projeto era apresentar o Java como sendo algo mderno e com grande potencialidade para web, mas Java enfrentou outro obstculo, pois ficou conhecido na poca como uma linguagems era utilizada no mbito dainternet , e at hoje muitos ainda tem estaconcepo errada de Java , a realidade que Java pode ser utilizado pardesenvolver qualquer tipo de sistema, seja eleclient-side , server-side , oudevice application .

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    14/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    15/436

    15

    Anotaes

    Captulo 1:

    A Plataforma Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    16/436

    16

    Anotaes

    Comparando Java com Outras Linguagens

    Java SmallTalk TCL Perl Shells C C++

    Simples

    Orientao Objetos

    Robusta

    Segura

    Interpretada

    Dinmica

    Portvel

    Neutra

    Threads

    Garbage Collection

    Exceptions

    Alto Mdio Baixo Mdio Baixo Alto High P e r

    f o r m a n c

    e

    Caracterstica Existente

    Caracterstica Parcialmente Existente

    Caracterstica no Existe

    Captulo 1: A Plataforma Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    17/436

    17

    Anotaes

    Java Virtual Machine

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

    AJVM totalmente dependente de plataforma, por exemplo, exiumaJVM para Microsoft Windows , outra para o Linux e, assim pordiante. Quando dizemos que Java independente de plataforma, isto noest completamente correto, vlido dizer que osbytes code Java soindependentes de plataforma, mas dependentes de umaJVM.

    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.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    18/436

    18

    Anotaes

    Java/OS

    JVM for

    Windows

    JVM for MAC/OS

    JVM for Linux

    JVM for Solaris

    Captulo 1: A Plataforma Java

    O exemplo abaixo ressalta a idia daJVM:

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    19/436

    19

    Anotaes

    JVMfor Devices

    Aplicaes voltadas para dispositivos eletrnicoscom Java .

    A portabilidade dosbyte codes nas JVMsdos Devices .

    Java Cards, Java Concept Car, Java Mobile etc.

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

    O exemplo a seguir mostra a aplicao daJVMpara dispositivoseletrnicos:

    Captulo 1: A Plataforma Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    20/436

    20

    Anotaes

    JVM for Windows CE

    JVM for Java Concept Car

    JVM for Java Cards

    JVM for Printer

    Captulo 1: A Plataforma Java

    Arnaldo Gonalves de Sousa2654 484 654564 56.56.

    Credit Card Club

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    21/436

    21

    Anotaes

    Garbage Collector

    O Garbage Collector se resume basicamente em umaThread em

    baixa prioridade, que por sua vez lanada para coletar objetosmemria que no so mais necessrios para sua aplicao.

    EmC++ necessrio que o programador faa ode-allocating dosobjetos. Atravs de cdigos escritos emC++, o programador retira osobjetos que no so mais necessrios, antes que haja um estouromemria oumemory overflow , ou seja, o programa fica sem recursosnecessrios para que o programa possa continuar a sua execuo.

    O Garbage Collector se resume em umaThread em baixa prioridade.

    Em Java a responsabilidade pelode-allocating ficatotalmente a critrio daJVM.

    Apenas os objetos da memria que no so maisnecessrios para sua aplicao so coletados.

    EmC++ necessrio que o programador faa ode-allocating dos objetos.

    Memory overflow .Forando oGarbage Collector com o mtodogc()

    das classesSystem e Runtime .

    Captulo 1: A Plataforma Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    22/436

    22

    Anotaes

    Captulo 1: A Plataforma Java

    Em Java a responsabilidade pelode-allocating fica totalmente acritrio daJVM. Embora existam mtodos comogc() nas classesSysteme 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 doGarbage Collector :

    StackMemory

    HeapMemory

    0xAFF2 0xAFF3

    0xAFF4 0xAFF5

    X0xAFF2

    0xAFF3

    0xAFF5

    Este objeto pode ser coletado a qualquermomento pelo Garbage Collector

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    23/436

    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.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    24/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    25/436

    25

    Anotaes

    Captulo 1: A Plataforma Java

    Hello World Java

    No poderamos deixar de aprender uma linguagem de programa

    sem 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 :

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    26/436

    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 nossobyte code file . E por fim, a execuo assim:- java HelloWorldJava .

    Sada:

    Captulo 1: A Plataforma Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    27/436

    27

    Anotaes

    Abaixo segue o exemplo para a distribuio do nosso primeiro p

    grama feito emJava :

    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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    28/436

    28

    Anotaes

    Captulo 1: A Plataforma Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    29/436

    29

    Anotaes

    Captulo 2:

    Introduo a Object Oriented com Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    30/436

    30

    Anotaes

    Introduo a Object Oriented com Java

    Podemos pensar em uma classe como se fosse uma frma para um

    bolo, 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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    31/436

    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. Podem

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

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

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    32/436

    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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    33/436

    33

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Cdigo de exemplo de objeto:

    Sada para o exemplo anterior:

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    34/436

    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, noOOtemos mtodos.

    Podemos afirmar que o mtodo o equivalente a umafuno em uma linguagem procedural, por exemplo, alinguagem de programao Pascal .

    Os mtodos serviro para manipular os atributos dosobjetos.

    atravs dos mtodos que os objetos se comunicam.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    35/436

    35

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Exemplo do uso de mtodo:

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    36/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    37/436

    37

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Observe a seqncia de exemplos:

    definido ento a classe comemorao. na classe que fica

    mtodos, atributos e objetos:Classe:Comemorao

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    38/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    39/436

    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 descrevemcaractersticas de cada instncia (objeto).

    Cada palavra identificadora que possa atribuir ao objeto uma partilaridade um atributo do mesmo.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    40/436

    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.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    41/436

    41

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    O terceiro, e mais importante atributo o significado da comemora

    Atributo 3 - SIGNIFICADO:Nascimento de Jesus Cristo de Nazar

    filho de Deus segundo o cristianismo.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    42/436

    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 responsvel

    por manipular os atributos:

    Mtodos de Inicializao de Atributos

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    43/436

    43

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

    Mtodos de Impresso de Atributos

    - imprimeAtributoSimbolo ( ) >>> imprime rvore de Natal.

    - imprimeAtributoPersonagem (Papai Noel) >>> imprime PaNoel.

    - imprimeAtributoSignificado (Nascimento de Jesus) >>> impriNascimento de Jesus Cristo.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    44/436

    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.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    45/436

    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.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    46/436

    46

    Anotaes

    Captulo 2: Introduo a Object Oriented com Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    47/436

    47

    Anotaes

    Laboratrio 1:

    Captulo 2: Introduo aObject Oriented com Java

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    48/436

    48

    Anotaes

    Laboratrio 1 - Captulo 2

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    49/436

    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 mto

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    50/436

    50

    Anotaes

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

    3) Implemente o cdigo para a anlise feita durante o mdulo, contendo

    os 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.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    51/436

    51

    Anotaes

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

    4) Repita o exerccio anterior, s que deste teste usando caracterstica

    comemorao da pscoa, para analisar se este cdigo tambm podeusado para outras comemoraes.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    52/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    53/436

    53

    Anotaes

    Captulo 3:

    Aprofundando ConceitosIniciais

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    54/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    55/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    56/436

    56

    Anotaes

    O construtordefault 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 (); // Estakeyword 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 construtordefault

    no existir.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    57/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    58/436

    58

    Anotaes

    Abaixo encontraremos um exemplo de encapsulamento de atributos:

    Captulo 3: Aprofundando Conceitos Iniciais

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    59/436

    59

    Anotaes

    Captulo 3: Aprofundando Conceitos Iniciais

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

    Java APIDocumentation

    Ferramentas.Recursos.Bibliotecas. Links importantes.Versoon-line .

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    60/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    61/436

    61

    Anotaes

    Packages

    Captulo 3: Aprofundando Conceitos Iniciais

    Organiza classes.Agrupamento lgico e fsico das classes.Otimizar odeployment .

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    62/436

    62

    Anotaes

    Os pacotes servem para organizar classes atravs de um agrupamentolgico e fsico, alm de melhorar odesing 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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    63/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    64/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    65/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    66/436

    66

    Anotaes

    Captulo 3: Aprofundando Conceitos Iniciais

    Veja o exemplo:

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    67/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    68/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    69/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    70/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    71/436

    71

    Anotaes

    Laboratrio 2 - Captulo 3: Aprofundando Conceitos Iniciais

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    72/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    73/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    74/436

    74

    Anotaes

    Laboratrio 2 - Captulo 3: Aprofundando Conceitos Iniciais

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    75/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    76/436

    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 .

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    77/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    78/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    79/436

    79

    Anotaes

    Keywords Java

    A cada nova verso do Java , novaskeywords soadicionadas aoJDK.

    No podem ser utilizadas como identificadores.Askeywords goto e const , embora sejamkeywords

    Java , no possuem implementao em Java .

    Captulo 4: Sintaxe Java 2 Platform

    Askeywords Java existem com mltiplas finalidades, que sero estudadas ao longo do curso. A cada nova verso do Java , novaskeywordsso adicionadas aoJDK.

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

    As keywords goto e const , embora sejamkeywords Java , nopossuem nenhuma implementao em Java . EmC++, de ondegoto econst foram herdadas, o uso normal.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    80/436

    80

    Anotaes

    abstract double int strictfp assert

    boolean else interface super

    break extends long switch

    byte final native synchronized

    case finally new this

    catch float package throw

    char for private throws

    class goto protected transient

    const if public try

    continue implements return void

    default import short volatiledo instanceof static while

    Captulo 4: Sintaxe Java 2 Platform

    Tabela de Identificadores:

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    81/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    82/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    83/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    84/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    85/436

    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, considerecasting automtico entre os tipo que vode baixo para cima, ou seja dobyte ao double e dochar aodouble .

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    86/436

    86

    Anotaes

    long int :discarta quatrobytes :

    range -2147483648 2147483647 so preservados.

    int short :discarta doisbytes :

    range -32768 32767 so preservados.

    short byte :discarta umbyte :

    range -128 127 so preservados.

    int char :discarta doisbytes :

    range 0 65535 so preservados.

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

    somente nmeros norange 0 32767 so preservados.

    byte char :discarta doisbytes :

    somente nmeros norange de 0 127 so preservados.

    double float :

    O resultado calculado por aproximao. nmeros muito maior que sua capacidade iro ser mapeadosparaPOSITIVE_INFINITYouNEGATIVE_INFINITY.

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

    Captulo 4: Sintaxe Java 2 Platform

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    87/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    88/436

    88

    Anotaes

    Captulo 4: Sintaxe Java 2 Platform

    Passagem por Referncia

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    89/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    90/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    91/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    92/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    93/436

    93

    Anotaes

    Laboratrio 3:

    Captulo 4: Sintaxe Java 2 Platform

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    94/436

    94

    Anotaes

    Laboratrio 3 - Captulo 4:

    1) Teste os identificadores conforme a tabela que foi apresentada na

    pgina , a seguir segue uma cpia da mesma:

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

    2 Ser formado por caracteresUNICODE.3 No ser uma palavra reservada: goto e const .4 No ser igual a literal: null .5 No ser repetido dentro do seuescopo.

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

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    95/436

    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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    96/436

    96

    Anotaes

    Laboratrio 3 - Captulo 4: Sintaxe Java 2 Platform

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    97/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    98/436

    98

    Anotaes

    Laboratrio 3 - Captulo 4: Sintaxe Java 2 Platform

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    99/436

    99

    Anotaes

    Captulo 5:

    Usando Operadores Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    100/436

    100

    Anotaes

    Usando Operadores Java

    Caracterstica de funcionamento muito parecida aC/C++. Instanceof no existe em C++.

    Incremento e decremento so de comportamentoidnticos 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 ooperadorinstanceof que no existe emC++, ou muito menos emC, queno orientado a objetos.

    O operadorinstaceof 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.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    101/436

    101

    Anotaes

    Captulo 5: Usando Operadores Java

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

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    102/436

    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 deunaryoperator. Por exemplo,++ umunary operator que incrementa um valorde um operando em 1. Um operador que requer dois operandos chama-do debinary operator. Por exemplo,= umbinary operator, que atribuio valor que est no lado direito para o operando que est no lado esquer-do. E por ltimo, oternary operator que requer trs operandos. Esteltimo operador, um modo curto doif-else .

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    103/436

    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 operand

    op x

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

    op1 x op2

    O operador ternrio tambminfix; cada componente do operadoraparece entre operandos:

    op1 ? op2 : op3

    Alm a executar a operao, um operador retorna um valor. O vado retorno e seu tipo dependem do operador e do tipo de seus operanPor exemplo, os operadores aritmticos, que executam operaes aritticas bsicas tais como a adio e a subtrao, retornam nmeros retantes da operao aritmtica. O tipo de dados retornado por um opdor aritmtico depende do tipo de seus operandos.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    104/436

    104

    Anotaes

    Captulo 5: Usando Operadores Java

    Operadores Aritimticos

    Adio.Subtrao.Multiplicao.Diviso.Mdulo.

    Java suporta vrios operadores aritmticos para todos os nmeros floating-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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    105/436

    105

    Anotaes

    Captulo 5: Usando Operadores Java

    No exemplo,ArithmeticTest , que definimos dois inteiros, dois nmerosdouble e usamos os cinco operadores aritmticos executar operaaritmticas diferentes. Este programa usa tambm+ para concatenar

    Strings .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));

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    106/436

    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 = 30j = 22x = 19.55y = 6.44

    Adicao...i + j = 52x + y = 25.990000000000002

    Subtracao...i - j = 8x - y = 13.11

    Multiplicacao...i * j = 660x * y = 125.90200000000002

    Captulo 5: Usando Operadores Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    107/436

    107

    Anotaes

    Divisao...i / j = 1x / y = 3.0357142857142856

    Resto da divisao...i % j = 8x % y = 0.22999999999999954

    Tipos mistos...j + y = 28.44i * x = 586.5

    Captulo 5: Usando Operadores Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    108/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    109/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    110/436

    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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    111/436

    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+ +ba++;b;System.out.println(Apos incremento & decremento a & b: +a+

    Captulo 5: Usando Operadores Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    112/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    113/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    114/436

    114

    Anotaes

    O Operador == quando usado em Objetos

    Retornatrue objetos estiverem apontando para a mesma rea dememria, ou seja, duas referncias iguais. Se dois objetos tiverem dados idnticos o operador == ir retornar

    false , pelo fato de residirem em diferentes reas de memria. Uma mesma referncia pode ter identificadores diferentes.

    O MtodoEquals ()

    O mtodoequals () se encontra na classeObject e faz a mesma

    coisa que o operador ==, porm deve ser usado apenas objetos.Este herdado da classeObject . Algumas classe daAPIfazemoverriding no mtodoequals , caso

    necessrio 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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    115/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    116/436

    116

    Anotaes

    //Maior ou igualSystem.out.println(Maior ou igual...);System.out.println( i >= j = + (i >= j)); //false

    System.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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    117/436

    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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    118/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    119/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    120/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    121/436

    121

    Anotaes

    Op Exemplo Tipo Descrio && (Exp1) && (Exp2) binrio Se Exp1 e Exp2 forem verdadeiros, esta

    condicional ir retornartrue . A expresso

    Exp2 no ser avaliada se a Exp2 for falsa.|| (Exp1)||(Exp2) binrio Se Exp1 ou Exp2 fortrue , esta condicionalretornartrue . A expresso Exp2 no seravaliada se a Exp1 fortrue .

    ! !(Exp) unrio O valorboolean invertido. Se Exp fortruecom este operador o retorno ser false evice-versa.

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

    | (Exp1) | (Exp2) binrio Se Exp1 ou Exp2 for true, esta conditionalretornartrue . 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 retornaremostrue e, se Exp1.

    Captulo 5: Usando Operadores Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    122/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    123/436

    123

    Anotaes

    Short Circuit Logical Boolean - AND/OR

    Os tipos soboolean e, os resultados so boolean tambm. Todas a

    condies 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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    124/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    125/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    126/436

    126

    Anotaes

    Shift Operator

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

    A tabela abaixo mostra o uso doshift operator aritmtico e lgico:

    Operador Exemplo Descrio>> X >> 2 shift de 2bits no valor deX.> Z >>> 4 shift de 4bits no valor deZ, deslocando logicamente.

    Captulo 5: Usando Operadores Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    127/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    128/436

    128

    Anotaes

    Bitwise Shifting Operator

    >> - Bits shift para a direita (incluindo obitde sinal).>> - Bits shift para a direita.

    Bitwise Shifting .Regras para Negativos em Binrio.

    Captulo 5: Usando Operadores Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    129/436

    129

    Anotaes

    BitwiseShifting:

    Bitwise Shifting:

    >> - Bits shift para a direita (incluindo obit de sinal).

    >> - Bits shift para a direita. Bitwise shifting retorna umint . Se voc fizer umcast para um valormenor, estar perdendobits .

    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 = -8

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

    Note que obit 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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    130/436

    130

    Anotaes

    Negativosem Binrio

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

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

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

    Exemplos:Integer(32 bits)-1

    -2

    -3

    Binary

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

    1111111111111111111111111111111000000000000000000000000000000001 (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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    131/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    132/436

    132

    Anotaes

    Short cut Assigment Operators

    Operadores += -= *= /= %= &= |= ^=

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    133/436

    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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    134/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    135/436

    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 operadorparmetros, separados juntamente com mtodospor virgulas. e construtores

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

    new Criao de novos objetos Visto desde Passagempor Referncia

    Captulo 5: Usando Operadores Java

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    136/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    137/436

    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 doitens avaliados na prova de certificao para programadores Java. Seravaliado na prova se voc sabe fazer converses entre bases numricapor 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 bases octal, binria e hexadecimal. Os entendimentos destes itens tambm 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 linguagem.

    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 exemplo, 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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    138/436

    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,7Base 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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    139/436

    139

    Anotaes

    Tabela 1:

    10 (Base 10) = 10 (Base 10) Frmula: (1*10) + (0*1) = 10

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

    10 (Base 16) = 16 (Base 10) Frmula: (1*16) + (0*1) = 16

    Tabela 2:

    21 (Base 10) = 10 (Base 10) Frmula: (2*10) + (1*1) = 21

    101 (Base 2) = 5 (Base 10) Frmula: (1*4) + (0*2) + (1*1) = 5

    21 (Base 8) = 8 (Base 10) Frmula: (2*8) + (1*1) = 17

    21 (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) = 10

    1111 (Base 2) = 15 (Base 10) Frmula: (1*8)+(1*4)+(1*2) + (1*1) = 15

    1 0000 (Base 2) = 16 (Base 10) Frmula: (1*16)+(0*8)+(0*4)+(0*2) + (0*1) = 16

    A (Base 16) = 10 (Base 10) Frmula: (10*1) = 10

    FF (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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    140/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    141/436

    141

    Anotaes

    Laboratrio 4:

    Captulo 5: UsandoOperadores Java

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    142/436

    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++));}

    }

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    143/436

    143

    Anotaes

    Laboratrio 4 - Captulo 5: Usando Operadores Java

    2) Crie um programa que inicialize uma variveldouble de acordo com o

    resto de uma diviso qualquer, desde que esse seja mpar, caso contrinicialize com 1000. Utilize para isto o operadorternary .

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    144/436

    144

    Anotaes

    Laboratrio 4 - Captulo 5: Usando Operadores Java

    3) Faa a converso dos nmeros que esto na Base 16 para a Base 2 e

    para 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)

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    145/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    146/436

    146

    Anotaes

    A sintaxe dos comandos de controle de fluxo para Java se assemelha

    muitos aos deC/C++.if / else if / else

    Controle de Fluxo

    Captulo 6: Controle de Fluxo

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    147/436

    147

    Anotaes

    Captulo 6: Controle de Fluxo

    while

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    148/436

    148

    Anotaes

    do

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    149/436

    149

    Anotaes

    for

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    150/436

    150

    Anotaes

    Captulo 6: Controle de Fluxo

    switch/case/default

    int op = 3

    switch (op){case 1:

    //entra aqui seop for igual a1break ; // termina oloop

    case 2: //entra aqui seop for igual a2break ; // termina oloop

    case n: //entra aqui seop for igual an

    break ; // termina oloopdefault :

    //entra aqui seop for diferente de2e2}

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    151/436

    151

    Anotaes

    Laboratrio 5:

    Captulo 6: Controle deFluxo

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    152/436

    152

    Anotaes

    Laboratrio 5 - Captulo 6

    1) Faa um programa Java que imprima na tela todos os nmeros mpares

    em uma contagem at 25, use oloop for .

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    153/436

    153

    Anotaes

    Laboratrio 5 - Captulo 6: Controle de Fluxo

    2) Faa um programa Java que imprima na tela todos os nmeros pare

    em uma contagem at 25, use oloop do .

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    154/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    155/436

    155

    Anotaes

    4) Faa um programa Java que imprima na tela:

    - Bom dia- Boa tarde- Boa noite

    Use para isto uma varivelint , com horas inteiras apenas. Implemente ocdigo comif/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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    156/436

    156

    Anotaes

    5) Repita o exerccio anterior, porm ao invs de usarif , useswitch . Use

    como seletor uma varivelchar conforme exemplo abaixo:- D- Bom dia- T- Boa tarde- N- Boa noite

    Laboratrio 5 - Captulo 6: Controle de Fluxo

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    157/436

    157

    Anotaes

    Captulo 7:

    Arrays

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    158/436

    158

    Anotaes

    Arrays

    Os arrays , como a maioria dos tipos manipulveis em Java , soobjetos. Objetosarrays no podem ser redimensionados, caso seja ne-cessrio ter umarray maior, deve-se ento criar um novoarray maior e

    copiar o contedo para este novo.Assim como emC/C++o ndice inicia em 0.

    Array Java so objetos.Objetosarrays no podem ser redimensionados.Assim como emC/C++o ndice inicia em 0.O mtodomain l strings da linha de comando.

    Captulo 7: Arrays

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    159/436

    159

    Anotaes

    Captulo 7: Arrays

    Declarao / Criao / Inicializao de Atributos

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    160/436

    160

    Anotaes

    Acesso aos Elementos do Array

    possvel lerString diretamente da linha de comando. O primeiropasso para isso preparar nosso programa para receber e manipular osargumentos passados. Java uma oarray deStrings recebidos pelo mto-do main.

    Captulo 7: Arrays

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    161/436

    161

    Anotaes

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

    // vamos verificar a quantidade de elementos no array // atravs da varivel lengthint tamanho = args.length;System.out.println(Tamanho do Array: + tamanho);for (int i=0; ijavac TestMain.java

    C:\test>java TestMain Testamos o main

    Tamanho do Array: 3Elemento N 1 = TestamosElemento N 2 = oElemento N 3 = main

    Captulo 7: Arrays

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    162/436

    162

    Anotaes

    Em Java feita uma simulao dearrays multidimensionais.

    Temosarrays multidimensionais de objetos e de primitivas:double arrayMulti [][] = new double[4][];arrayMulti [0] = new double[4];arrayMulti [1] = new double[4];arrayMulti [2] = new double[4];arrayMulti [3] = { 0, 1, 2, 3 };

    Captulo 7: Arrays

    Arrays Multidimendionais

    Em Java feita uma simulao dearraysmultidimensionais.

    Temosarrays multidimensionais de objetos e deprimitivas:

    double arrayMulti [][] = new double[4][]; arrayMulti [0] = new double[4];

    arrayMulti [1] = new double[4]; arrayMulti [2] = new double[4]; arrayMulti [3] = { 0, 1, 2, 3 };

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    163/436

    163

    Anotaes

    Temos uma simulao dearrays multidimensionais em Java , atra-vs da criaoarrays dearrays .

    double arrayMulti[][] = new double[4][4];Outra maneira de fazer a mesma declarao :double arrayMulti [][] = new double[4][];arrayMulti [0] = new double[4];arrayMulti [1] = new double[4];arrayMulti [2] = new double[4];arrayMulti [3] = { 0, 1, 2, 3 };

    Tambm podemos criararrays de multidimensionais usando objetos:

    String [][]s = new String [2][2];s[0][0] = Ola;s[0][1] = java;s[1][0] = 2;s[1][1] = Platform;

    E para acessa-los:

    System.out.println(s[0][0]); //OlaSystem.out.println(s[0][1]); //javaSystem.out.println(s[1][0] ); //2System.out.println(s[1][1] ); // Platform

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    164/436

    164

    Anotaes

    Captulo 7: Arrays

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    165/436

    165

    Anotaes

    Laboratrio 6:

    Captulo 7: Arrays

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

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    166/436

    166

    Anotaes

    Laboratrio 6 - Captulo 7

    1) Compile e rode o exemplo da pgina 161.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    167/436

    167

    Anotaes

    Laboratrio 6 - Captulo 7: Arrays

    2) Faa um programa que leia um argumento da linha de comand

    imprima na tela os itens:- Quantos caracteres possuem este argumento.- A palavra em maisculo.- A primeira letra da palavra.- A palavra sem as vogais.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    168/436

    168

    Anotaes

    Laboratrio 6 - Captulo 7: Arrays

    3) Faa um programa que leia um argumento da linha de comando, crie um

    segundoarray e coloque nele todo o contedo doarray anterior, maisuma cpia de cada elemento em maisculo. Use o mtodoSystem.arraycopy () da API Java como auxlio.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    169/436

    169

    Anotaes

    Captulo 8:

    Programao Avanada

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    170/436

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    171/436

    171

    Anotaes

    Captulo 8: Programao Avanada

    Regras para as Interfaces

    No pode ser instanciada.

    Umainterface pode implementar outrasinterfaces . Todos os atributos dentro de uma interface so obrigatoriame

    public , final estatic . Todos os mtodos devem ser o mais acessvel possvel, ou se

    devem ser public . Todos os mtodos em umainterface so obrigatoriamente abstra-

    tos, mesmo que no seja aplicada akeyword abstract . Todos os mtodos de uma interface devem sofrer overriding na c

    se a qual foi implementada.

    Exemplo - Interface

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    172/436

    172

    Anotaes

    Herana

    A herana uma das caractersticas bsicas de uma linguagem orienta-da a objetos. A herana foi inventada principalmente com o intuito dereutilizao de cdigo.

    possvel construir grandes aplicaes em um tempo muito hbil, uti-lizando a herana para reaproveitar funcionalidades rotineiras.

    Java possui uma enorme quantidade de dispositivos para fazer o con-trole de herana, para podermos delimitar e selecionar o que devemos e oque no devemos reaproveitar destro do escopo de reuso de cdigos.

    A herana possibilita a reutilizao de cdigo. Java possui uma enorme quantidade de dispositivos

    para fazer o controle de herana.Regra para herana: Java trabalha com herana simples, diferentementedeC++, que por sua vez suporta herana mltipla. permitida a herana quando uma destas duas per-

    guntas pode ser respondida:- um? ou um tipo de? Construtores no so herdados. Herana simples.

    Captulo 8: Programao Avanada

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    173/436

    173

    Anotaes

    Exemplo - Herana

    Java trabalha com herana simples, diferentemente deC++, que porsua vez suporta herana mltipla. Isso implica em dizer que uma cla

    Java no pode ter duas super classes simultaneamente. Em Java const

    tores no so herdados.

    Regra para Herana

    Java trabalha com herana simples, diferentemente deC++, que porsua vez suporta herana mltipla.

    permitida a herana quando uma destas duas perguntas poderespondida:- um? ou um tipo de?

    Construtores no so herdados.

    Herana simples.

    Captulo 8: Programao Avanada

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    174/436

    174

    Anotaes

    Generalizao

    A generalizao est entre os pontos mais fortes de uma linguagem

    orientada a objetos, e claro que Java tem este conceito muito bemclaro e excelentemente aproveitado.

    A generalizao em Java feita atravs da utilizao de classesabstratas e conseqentemente apoiada no conceito de abstrao atra-vs dasinterfaces Java .

    Captulo 8: Programao Avanada

    A generalizao em Java feita atravs da utiliza-o de classes abstratas e conseqentemente apoiadano conceito de abstrao atravs dasinterfaces Java .

    Regras para a generalizao: A generalizao em Java aplicada atravs dakeyword abstract ; Uma classe abstrata deve obedecer ao conceitode abstrao, ou seja, o conceito de generalizao; Uma classe abstrata no pode ser instanciada; Classes abstratas podem ter mtodos concretos,ou abstratos.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    175/436

    175

    Anotaes

    Exemplo - Generalizao

    Captulo 8: Programao Avanada

    Regras para a Generalizao

    A generalizao em Java aplicada atravs dakeyword abstract .

    Uma classe abstrata deve obedecer ao conceito de abstrao,seja, o conceito de generalizao.

    Uma classe abstrata no pode ser instnciada. Classes abstratas podem ter mtodos concretos, ou abstratos.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    176/436

    176

    Anotaes

    Este conceito com certeza o conceito mais poderoso de uma lin-guagem orientada a objetos e, conseqentemente o item mais complexotambm.

    O polimorfismo permite a um objeto ter vrias formas, ou seja, o mes-mo objeto pode ter mais de um comportamento, dependendo da situaoque este se encontre durante oruntime .

    Devido ao fato de um objeto em polimorfismo ser avaliado durante oruntime , j que o mesmo pode tomar formas dependendo de interaesdinmicas, isto pode ocasionar problemas durante a utilizao do siste-ma ao qual este objeto esteja agregado.

    Polimorfismo

    Captulo 8: Programao Avanada

    O polimorfismo permite a um objeto ter vriasformas.

    O polimorfismo avaliado durante oruntime .Regra bsica para o polimorfismo: Um objeto se torna polimrfico quando declarado como uma de suas super classes ese instancia uma de suas sub-classes.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    177/436

    177

    Anotaes

    Exemplo - Polimorfismo

    Captulo 8: Programao Avanada

    Regra Bsica para o Polimorfismo

    Um objeto se torna polimrfico quando declarado como uma

    suas super classes e se instancia uma de suas sub-classes.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    178/436

    178

    Anotaes

    Overloading de Construtores

    Atravs uma sobrecarga de construtores possvel fazer umainicializao dinmica de uma classe.

    O que motiva fazer umoverloading de contrutores a necessidadede ter uma inicializao variada para os atributos.

    O uso deoverloading ira permitir que tenhamos quantas opes fo-rem necessrias para inicializar uma classe.

    Regra para o Overloading de Construtores A lista de argumentos deve ser diferente.

    Captulo 8: Programao Avanada

    Inicializao dinmica de uma classe.Supri a necessidade de ter uma inicializao variada

    para os atributos.Pemiti que tenhamos quantas opes forem neces-

    srias para inicializar uma classe.Regra para ooverloading de construtores.

    A lista de argumentos deve ser diferente.

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    179/436

    179

    Anotaes

    Exemplo -Overloading de Construtores

    Captulo 8: Programao Avanada

  • 8/6/2019 Introduo ao JAVA - PW02 - 437 pag

    180/436

    180

    Anotaes

    Overloading de Mtodos

    Atravs uma sobrecarga de mtodos possvel fazer uma chamadadinmica. Sua finalidade ter o que podemos chamar de Atendimentosobre Medida, ou seja, voc passa como argumento os elementos quetem em Mos, e a chamada baseada na quantidade ou tipos recebidos.

    Regra para o Overloading de Mtodos A lista de argumentos deve ser diferente. Caracteriza-seoverloading , mtodos de lista de argumentos dife-

    rentes que estejam na mesma classe, ou ate mesmo em uma de suassuper classes.

    Ca