Upload
anderson-marques-neto
View
242
Download
0
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