Sei sulla pagina 1di 31

Introduo a Orientao a

Objetos
- 2
Sumrio
Introduo a orientao a objetos.............................................................................................. 3
1.1. Introduo....................................................................................................................... 4
1.2. Respondendo os porqus................................................................................................ 5
1.2.1. Acessibilidade........................................................................................................................ 7
1.2.2. Mtodos !et e set................................................................................................................ 1"
1.2.3. A direti#a return.................................................................................................................. 12
1.2.4. Mtodos construtores.......................................................................................................... 12
1.3. Re$erncia t%is.............................................................................................................. 14
1.4. Me&bros est'ticos........................................................................................................ 15
1.5. (onstantes.................................................................................................................... 1)
1.*. +o&enclatura de classes.............................................................................................. 1)
1.7. (lasses ,rapper........................................................................................................... 1-
1.7.1. .alue/$................................................................................................................................ 22
1.7.2. (on#erso de classes 0rappers...........................................................................................23
1.7.3. 1arse23345 6 #alue/$45......................................................................................................... 25
1.7.4. to7trin!45............................................................................................................................. 25
1.7.5. / que bo3in!..................................................................................................................... 2*
1.7.*. / que autobo3in!.............................................................................................................. 2*
....................................................................................................................................................... 2*
1.7.7. 83e&plos de uso de autobo3in!.......................................................................................... 27
1.7.). Autobo3in! e& atribuio.................................................................................................... 2)
1.). (onsidera9es :nais..................................................................................................... 2-
1.-. Re$erncias biblio!r':cas............................................................................................. 31
ndice de tabelas
ndice de Figuras
Introduo a orientao a objetos - 3
Introduo a orientao a objetos
Introduo a orientao a objetos - 4
1.1. Introduo
+as apostilas anteriores; #oc praticou co& #'rios c<di!os e& =a#a $ornecidos
por n<s; &as at ento no $oi discutido &ais a $undo o porqu de criar&os as classes
se!uindo al!u&as re!ras. Isso $oi proposital; pois se $oc'sse&os de&ais no in>cio do
curso o porqu de cada ponto e #>r!ula; o porqu de cada c%a#e ou estruturas no
c<di!o do pro!ra&a tornar>a&os os pri&eiros contatos co& a lin!ua!e& al!o
cansati#o? A ideia $oi dei3ar #oc @brincarA co& os c<di!os para ir se $a&iliariBando
co& a lin!ua!e& !radati#a&ente.
(o& certeBa; durante o anda&ento do curso #oc de#e ter se questionado o
porqu do c<di!o estar dentro de u&a classe e porque e3iste& os &odi:cadores de
acessos na classe; nos atributos e &todos. /utra per!unta que pode ter sur!ido C
se&pre precisarei inserir u& &todo main dentro da &in%a classeD
+essa apostila; #a&os e3plicar &el%or sobre os retornos nos &todos; $alar
&ais sobre o operador new; e3plicar sobre construtores para&etriBados; sobre
pala#raEc%a#e this; co&o $aBer co&parao entre objetos; &ostrar &ais e3e&plo de
arraF de objetos e e3plicar sobre as classes Wrappers; e u&a introduo sobre
bo3in! e autobo3in!.
Introduo a orientao a objetos - 5
1.2. Respondendo os porqus
1ara iniciar as e3plica9es; #a&os $alar sobre as classes. G&a classe u&
&odelo de:nido pelo desen#ol#edor para u& no#o tipo de objeto; e que relaciona as
caracter>sticas e $uncionalidades que pode& representar u&a entidade real ou
abstrata. A classe Heste u&a i&ple&entao &in>&a de u&a classeC
class Teste { // declarao de uma classe
// corpo da classe
}
Sugere-se que cada classe seja salva em um arquivo prprio.
Hodas as $uncionalidades necess'rias :ca& dentro do corpo da classe atra#s
de #ari'#eisE&e&bro ou atributos e de &todos 4$un9es ou subErotina5. (abe ao
desen#ol#edor de:nir quais $uncionalidades ter' a classe. Al& de ser poss>#el
reutiliBar de inI&eras classes j' de:nidas pela A1I do =a#a.
Jualquer objeto u&a instKncia de u&a classe; a partir da qual se $abrica&
objetos desse tipo. A instanciao 4criao de objetos5 en#ol#e o operador new e u&a
c%a&ada a u& construtor; que u& &todo especial que possui o no&e da classe.
Introduo a orientao a objetos - 6
83e&plo; bai3e o c<di!o Hora.java no MoodleC
Sada: Iicio: !"#$%m!%s
As #ari'#eis de instKncia so usadas para &anter re$erncias dos objetos
criados atra#s da instanciao. 8ssas #ari'#eis pode& receber o #alor null para
indicar que no esto inicialiBadas; isto ; no re$erencia& objetos #'lidos. L in#'lido
acessar #ari'#eis de instKncia no inicialiBadas.
Introduo a orientao a objetos - 7
1.2.1. Acessibilidade
/utra coisa que curiosa quando se aprende =a#a so os especi:cadores de
acessibilidade. /bser#e no c<di!o Hora.java a pala#ra public e & class; nos
atributos hor; min; seg e no &todo main 4pro!ra&a principal5. Isto te& u&
si!ni:cado? 8 o que #a&os entender a!ora...
.oc pode entender acessibilidade co&o #isibilidade e ta&b& co&o
encapsula&ento; que u&a pala#ra que #oc #ai escutar bastante daqui e& diante.
8ste aspecto bastante i&portante no paradi!&a de pro!ra&ao orientado a
objetos; pois per&ite que o desen#ol#edor restrinja o uso de certos ele&entos na
classe. A lin!ua!e& =a#a possui trs especi:cadores de acesso e3pl>citos 4public;
protected e private5 e u& i&pl>cito 4package5. .eja a tabela abai3o.
Especifcadores !vel "ndica #ue o campo ou m$todo%
public pIblico 1ode ser usado li#re&ente pelas instancias da classe
protected prote!ido 7< pode ser usado na i&ple&entao de subclasses.
pacMa!e pacote 7< pode ser usado por instancias dentro do &es&o
pacote.
pri#ate pri#ado +o pode ser usado $ora da i&ple&entao da
pr<pria classe.
&teo: 'uado uma classe ( declarada com public) o arquivo que e a
cot(m deve possuir o mesmo ome) *acilitado sua locali+ao.
+o c<di!o Nora.ja#a o especi:cador public $oi usado e isto per&itiu que a
#ari'#el de instKncia co& no&e @inicioA pudesse acessar os atributos da classe Nora
atra#s do . 4ponto5 con%ecido co&o seletor; que per&ite escol%er qualquer dos
atributos acess>#eis e& u&a classe.
Introduo a orientao a objetos - 8
/s &todos ta&b& possue& especi:cadores de acessibilidade. .eja co&o
u&a assinatura de &todoC
,especi-cacao.e&cesso/ , t i p o . e 0 e t o r o / o me . o 1e t o d o
2 3lista.e4arametros5 6 {
// corpo do m(todo
}
especi:cacaoOeAcesso 6 Oe:ne a acessibilidade do &todoP
tipoOeRetorno 6 Hipo do #alor retornado co&o resultado do &todoP
no&eOoMetodo 6 +o&e do &todoP
listaOe1ara&etros 6 Qista opcional de parK&etros do &todo que per&ite a
recepo de ar!u&entos para sua e3ecuo. L u&a lista de tipos e no&es de
#ari'#eis separadas por #>r!ulasP
corpo do &todo 6 bloco de c<di!o que constitui as a9es do &todo.
Introduo a orientao a objetos - 9
83e&plo no c<di!o Hora&.java que pode ser obtido no MoodleC
78servao: 7s par9teses so o8rigatrios aps o ome do m(todo) a
declarao ou uso) mesmo que o e:ista uma lista de par;metros<
/s parK&etros pode& ser utiliBados co&o #ari'#eis locais ao &todo. +o caso;
setHorario'int( int( int); trans$ere& #alores para as %oras; &inutos e se!undos do
objeto. Juando u& &todo no te& u& retorno usado o tipo void.
Introduo a orientao a objetos - 10
1.2.2. Mtodos get e set
/s &todos pode& e de#e& ser constru>dos para $acilitar a utiliBao dos
objetos de u&a classe e ta&b& para !arantir a consistncia de seus #alores
internos. +a classe Nora2.ja#a &ostrada anterior&ente o atributos %or; &in e se!
$ora& declarados co&o pIblicos; assi& poss>#el $aBer o se!uinteC
=ora" iicio > e? =ora"26@ // istaciacao de o8jeto do tipo =ora"
// ajuste dos atri8utos #or) mi e seg com valores ivAlidos
iicio.#or > $$@
iicio.mi > !"BB@
iicio.seg > -""@
// uso do metodo set=orario com valores ivAlidos
Iicio.set=orario2$$) !"BB) -""6@
8&bora estes #alores seja& inaceit'#eis para de:nir u& %or'rio; so
co&pat>#eis co& o tipo int indicado e& tais ca&pos.
7e o acesso direto a estes ca&pos $or restrito; se resol#e esta questo.
Oeclarar os atributos hor; min e seg co&o private e#ita seu uso inde#ido pelas
instKncias; resol#endo o proble&a inicial; &as i&pedindo a atribuio de #alores.
Introduo a orientao a objetos - 11
.a&os a u& e3e&plo e& Hora*.javaC
Sugesto para teste: Su8stitua horario1.setHorario(13,59,20) por
horario1.setHorario(-13,59,20). Compi l e e e:ecut e o programa
ovamete. & atri8uio o ocorrerA) pois o #orArio ( ivAlido. Do e:iste
#ora egativa<
Introduo a orientao a objetos - 12
1.2.3. A diretiva return
/s &todos utiliBa& u&a direti#a c%a&ada return para retornar o resultado
!erado pelo corpo do &todo que obtido atra#s de e3press9es #'lidas de tipos
co&pat>#eis. Juando no se retorna u& tipo espec>:co no &todo usaEse a pala#ra
void.
1.2.4. Mtodos construtores
/utra questo i&portante para ser tratada no in>cio dos estudos e& =a#a o
&todo c%a&ado de construtor. / construtor nada &ais de que u& &todo especial
co& a :nalidade de preparar no#os objetos durante sua instanciao. L obri!at<rio
que o construtor ten%a o &es&o no&e da classe; no possui tipo de retorno; pois na
#erdade seu retorno u&a no#a instKncia da pr<pria classe.
+o obri!at<rio dei3ar e3pl>cito no c<di!o u& construtor. Juando no
inclu>&os u& construtor e& u&a classe; o pr<prio co&pilador !era u&
auto&atica&ente que c%a&ado de de+ault 4se& parK&etros5 durante a co&pilao
do c<di!oE$onte. /bser#e que nas classes Hora; Hora& e Hora* trabal%adas
anterior&ente no possue& u& construtor e3pl>cito 4escrito no c<di!oE$onte5. 8nto
co&o o co&pilador !eraria este construtor padroC
pu8lic =ora26 {} // costrutor de*ault automAtico da classe =ora
pu8lic =ora"26 {} // costrutor de*ault automAtico da classe =ora"
pu8lic =oraE26 {} // costrutor de*ault automAtico da classe =oraE
/bser#e no#a&ente os c<di!os Nora.ja#a; Nora2.ja#a e Nora3.ja#a e obser#e
no &todo main que so criados objetos da se!uinte &aneiraC
=ora iicio > e? =ora26@
=ora" iicio > e? =ora"26@
=oraE iicio > e? =oraE26@
Introduo a orientao a objetos - 13
Reral&ente; os &todos construtores de:ne& #alores iniciais para os objetos
da classe; e isto; consequente&ente; !arante u& estado inicial consistente para o uso
da instKncia. Mas n<s poder>a&os criar u& construtor para&etriBado co&o o
e3e&plo abai3oC
pu8lic =ora 2it #or) it mi) it seg6 {
set=orario2#or) mi) seg6@ }
8 seu uso si&pli:ca o uso da classeC
=ora iicio > e? =ora2"B) $%) !%6@
Reral&ente; os &todos construtores so declarados co&o public; &as
poss>#el que seja& protected que seria Itil na criao de $a&>lias de classes atra#s
de %erana ou private e& situa9es &uito especiais.
I&portante le&brar que todos os ca&pos de u&a classe so auto&atica&ente
inicialiBados antes do aciona&ento de qualquer construtor; &es&o o de+ault;
durante a instanciao de no#os objetos. .ari'#eis de tipo pri&iti#o nu&ricas e
caractere recebe& o #alor " 4Bero5; enquanto as l<!icas recebe& o #alor $alse.
.ari'#eis de instKncia recebe& o #alor null; o que indica ausncia de instKncias
#'lidas. /bser#e que se no c<di!oE$onte da classe Hora* eu colocar u& %or'rio
in#'lido; o retorno tudo Bero; pois os parK&etros so do tipo int. +o c<di!oE$onte
de Nora3.ja#a est'C horario,.setHorario'-,*(./(&0).
F java =oraE
Galor de #orario ivalido
=orario!: B:B:B
Introduo a orientao a objetos - 14
1.3. Referncia this
Hodo objeto te& u&a re$erncia para si &es&o 4con%ecida co&o autoE
re$erncia5 por &eio da pala#raEc%a#e this. Juando u& &todo usa outros &todos
ou atributos no est'ticos da pr<pria classe; i&plicita&ente se e&pre!a a re$erncia
t%is. .eja no e3e&plo Retan!ulo.ja#a que pode ser bai3ado no Moodle.
Introduo a orientao a objetos - 15
/ &todo set1amanho'double( double) usa parK&etros co& os &es&os
no&es dos ca&pos da classe; &as o uso de this per&ite a distino entre as #ari'#eis
locais 4lar!ura e altura5 dos atributos da classe this.largura e this.altura. +os
&todos get2argura') e get3ltura') no %' conSito entre os no&es usados; assi& o
e&pre!o dos atributos da classe dispensa o uso de this.
/ uso do t%is ta&b& e#ita repetir c<di!o e& construtores. +a classe
Retan!ulo; na lin%a 7; o construtor de+ault aciona co& this 4se!uido dos parK&etros
necess'rios5 outro construtor para&etriBado; &as isso s< per&itido quando this
a pri&eira lin%a de u& construtor.
1.4. Membros estticos
83iste& situa9es onde desej'#el que as instKncias de u&a classe
co&partil%e& in$or&a9es; tais co&o #alores de constantes; u& nI&ero de
identi:cao; conta!e& ou totaliBao. 8ste e$eito pode ser obtido atra#s do
&odi:cador static que per&ite a criao de #ari'#eis de classe 4co&uns a todas as
instKncias5; e3e&ploC
pu8lic static it umero > !@
Introduo a orientao a objetos - 16
.eja o e3e&plo do c<di!o 4obro.java que pode ser bai3ado no MoodleC
Hm detal#e importate: 7 m(todo mai2Strig 35 args6 ( declarado como
static para que a mAquia virtual Iava o istacie o8jetos com o o8jetivo
de simpli-car o icio das aplicaJes.
Introduo a orientao a objetos - 17
Mtodos ta&b& pode& ser declarados est'ticosC
pu8lic static it getDumero26 { retur umero@ }
.eja no c<di!oE$onte 5lasse6ath.java; que pode ser obtido no Moodle; u&
e3e&plo Itil de criar u& &todo est'tico. (o& u& &todo est'tico eu posso us'Elo
se& ter que criar u& objeto para isso. A classe 6ath $ornece #'rios &todos que
calcula& coisas co&o potenciao; raiB quadrada e outros c'lculos &ate&'ticos.
Introduo a orientao a objetos - 18
1.!. "onstantes
As constantes pode& ser declaradas dentro de classes co&binando os
&odi:cadores static 4que indica &e&bro est'tico5 e fnal 4que indica &e&bro
i&ut'#el5; e3e&ploC
pu8lic -al static it 1&K > !B@
pu8lic -al static 4I > E.!$@
As constantes so acessadas co&o &e&bros est'ticos; &as obri!at<rio que
sua inicialiBao seja $eita na declarao. 7eus #alores no pode& ser &odi:cados de
depois da inicialiBao.
1.#. $omenc%atura de c%asses
L i&portante se!uir padr9es na %ora de codi:car. A con#eno de
no&enclatura =a#a de:ne re!ras para a deno&inao de classes assi& co&o seus
ca&pos e &todos. 8ssas con#en9es ajuda& a &el%orar a le!ibilidade do c<di!oE
$onte do pro!ra&a.
/s no&es das classes de#e&C
ser iniciados co& letra &aiIscula sendo que as de&ais letras seja&
&inIsculas; e3e&plo class HoraP
se $or no&e co&posto tere& as pri&eiras letras de cada no&e &aiIsculas e
o restante &inIsculas; e3e&plo class Hora4o4iaP
e#itar o uso de d>!itos co&o; por e3e&plo; ci$ro T ou sublin%ado U.
/s atributos e &todos de#e& se!uir a se!uinte con#enoC
no&es co& letras &inIsculasP
se co&postos; os no&es de#e& co&ear co& &inIsculas e as outras partes
co& a pri&eira letra &inIscula; e3e&plo o atributo valor4a4iaria e o &todo
get7alor4a4iaria')P
Introduo a orientao a objetos - 19
1.&. "%asses 'rapper
/ objeti#o das classes 0rapper e&pacotar tipos pri&iti#os e& /bjetos onde
$or assi& e3i!ido; co&oC
8& cole9esP
Mtodos que e3i!e& retornar o tipo !enrico /bjectP
/utro objeti#o $acilitar a con#erso de e para 7trin! ou bases nu&ricas
di$erentes 4octal; bin'rio; %e3adeci&ale etc5P
1ara cada tipo pri&iti#o e3iste u&a classe ,rapper. /bser#e a tabelaC
1ipo 8rimitivo 5lasse Wrapper
boolean Voolean
bFte VFte
c%ar (%aracter
double Oouble
Soat Wloat
int Inte!er
lon! Qon!
s%ort 7%ort
Introduo a orientao a objetos - 20
/ no&e do tipo pri&iti#o o no&e do ,rapper co& o pri&eiro caractere
&aiIsculo; e3ceto para c%ar e int; que so respecti#a&ente (%aracter e Inte!er.
Hodas as classes 0rapper $ornece& dois construtoresC u& co& o tipo pri&iti#o
e outro co& u&a String; e3ceto a classe 5haracter que recebe apenas o tipo
pri&iti#o. 83e&ploC
Iteger um! > e? Iteger2!BB6@
Iteger um" > e? Iteger2L"BBM6@
Nog umOrade > e? Nog2!BBBBB6@
C#aracter caractere > e? C#aracter2PNP6@
A classe ,rapper 9oolean recebe no construtor o #alor true ou +alse ou u&a
7trin! que no di$erencia letra &aiIscula de &inIscula. 83e&ploC
Qoolea teste! > e? Qoolea2true6@
Qoolea teste" > e? Qoolea2L*alseM6
A partir do =a#a #erso 5 u& objeto do tipo 9oolean pode ser usado e& testes
booleanos. 83e&ploC
i* 2teste!6{
//*a+ alguma coisa
}
Isso acotece porque o compilador *a+ automaticamete o u8o:ig do
o8jeto para o 8oolea) isto serA e:plicado logo em seguida...
Introduo a orientao a objetos - 21
.eja u& e3e&plo e& 1esteWrapper,.java que pode ser bai3ado no MoodleC
Introduo a orientao a objetos - 22
1.7.1. ValueOf
Reral&ente e3iste& dois &todos est'ticos value:+ e& cada 0rapper;
possibilitando u&a outra $or&a de criar objetos 0rappers. 83e&plosC
#alue/$ co& apenas u& ar!u&entoC
Iteger um! > Iteger.value7*2L!BBM6@ //atri8ui o valor !BB ao o8jeto
um!
#alue/$ co& dois ar!u&entos C
Iteger um" > Iteger.value7*2R!B!BB!R) "6@ //coverte !B!BB! em $! e
atri8ui ao o8jeto um"
.eja os e3e&plos abai3o e& 1este7alue:+,.java e 1este7alue:+&.java; que
pode& ser bai3ados no MoodleC
Introduo a orientao a objetos - 23
1.7.2. Converso de classes wraers
(on$or&e citado no inicio do te3to; u&a das $un9es de u&a classe 0rapper
a con#erso. 83e&ploC
Iteger um! > e? Iteger2!6@ // criado um o8jeto do tipo Iteger
dou8le um" > :.dou8leGalue26@ // coverte o valor de L:M em um tipo
primitivo dou8le
s#ort umE > :.s#ortGalue26@ // coverte o valor de L:M em um tipo primitivo
s#ort
4rimitive ::Galue26 Coverter um Srapper para um primitivo
4rimitive parseK::26 Coverte uma String para um primitivo
Srapper value7*26 Coverte uma String para um ?rapper
/nde 33 o tipo respecti#o. 83C int; double etc.
Introduo a orientao a objetos - 24
G& e3e&plo pode ser testado atra#s do c<di!oE$onte 1este;;;7alue.java
que pode ser obtido no MoodleC
Introduo a orientao a objetos - 25
1.7.3. !arse"##$% & valueOf$%

parse;<<') C retorna o tipo pri&iti#o no&eado.
value:+') C retorna o objeto 0rapper criado.
it um! > Iteger.parseIt2L!BM6@ //coverte a Strig em primitivo
Iteger um" > Iteger.value7*2L!BM6@ //cria um o8jeto Iteger
G& e3e&plo pode ser testado atra#s do c<di!oE$onte 1este8arse.java que
pode ser obtido no MoodleC
1.7.4. to'tring$%
/ &todo toString') da classe 0rapper retorna a String co& o #alor do tipo
pri&iti#o encapsulado no objeto.
Introduo a orientao a objetos - 26
1.7.(. O )ue bo#ing
8& certas situa9es; &ais con#eniente utiliBar objetos no lu!ar de tipos
pri&iti#os 4bFte; s%ort; int; lon!; Soat; double; boolean e c%ar5. Assi&; para cada tipo
pri&iti#o; $oi criado u&a classe ,rapper 4VFte; 7%ort; Inte!er; Qon!; Wloat; Oouble;
Voolean e (%aracter5 que ser#e para Xencai3otarX 4bo3in!5 o tipo pri&iti#o.
8sta a de:nio da 0iMipedia Y1ZC Xbo3in! consiste e& inserir u& tipo
pri&iti#o dentro de u& objeto; de $or&a que o #alor pri&iti#o possa ser usado co&o
u& objetoX.
.eja&os este 83e&ploC
Iteger i > e? Iteger2!BB6@
.e&os neste e3e&plo que o tipo pri&iti#o int de #alor [1""[ inserido no
construtor de Inte!er; que a classe 0rapper 4e&pacotadora5 associada.
1.7.*. O )ue autobo#ing

A criao das classes 0rapper resol#era& #'rios proble&as; por& a
con#erso entre tipo pri&iti#o para objeto 4bo3in!5 e objeto para pri&iti#o 4unbo3in!5
se tornou u&a tare$a tri#ial e tediosa. A soluo sur!iu a partir do =O\ 1.5. A 7un Y2Z
resol#eu este proble&a atra#s do autobo3in!; que consiste no bo3in! auto&'tico; ou
seja; na con#erso auto&'tica pelo co&pilador de tipo pri&iti#o para objeto.
Al& do autobo3in!; e3iste o autounbo3in!; que a con#erso auto&'tica de
objeto para tipo pri&iti#o. Assi&; $ec%aEse o cicloC a con#erso de tipo pri&iti#o para
tipo 0rapper auto&'tica 4autobo3in!5 e o retorno ta&b& auto&'tico
4autounbo3in!5; $acilitando o uso de u& e outro; co&o se $osse& equi#alentes.
Introduo a orientao a objetos - 27
.eja&os o e3e&ploC
+ote neste e3e&ploC
/ co&pilador [sabe[ que a atribuio [Inte!er a ] 2[ so de tipos di$erentes;
por isso necess'rio autobo3in! E a con#erso i&pl>cita pelo co&pilador de
int para Inte!er.
a so&a de objetos no de:nida; por isso [a[ e [b[ so con#ertidos
i&plicita&ente pelo co&pilador para intP
8& !eral; o c<di!oE$onte :ca &ais curto e opera9es de con#ers9es tri#iais
so criadas i&plicita&ente pelo co&pilador.
.oc pode utiliBar os operadores de incre&ento e& objetos; co&o se $osse&
tipos pri&iti#osP
1.7.7. +#e,los de uso de autobo#ing
Autobo3in! ou autounbo3in! ocorre se&pre que %ou#er a necessidade de
con#erso de tipos pri&iti#os e& objetos e #iceE#ersa. Isto se aplica e& #'rias
situa9es Y3ZC co&parao; atribuio; e& estruturas de repetio; etc. .ere&os a
se!uir u& e3e&plo de cada situao.
Introduo a orientao a objetos - 28
1.7.-. Autobo#ing e, atribui.o
.eja no e3e&plo abai3o a utiliBao de autobo3in! e autounbo3in! na
atribuio de #ari'#eis e passa!e& de parK&etros para &todosC
+ote a atuao do autobo3in!^autounbo3in! neste e3e&ploC
+a atribuio de #alores double para tipos objeto OoubleP
+a passa!ens de parK&etros do &todo so&a. +ote que o &todo so&a
recebe co&o parK&etros dois tipos pri&iti#os double e $ora& passados dois
objetos Oouble [a[ e [b[.
+a atribuio do #alor booleano [true[ _ #ari'#el do tipo objeto VooleanP
+o uso de u& tipo objeto Voolean na condio do [i$[P
Introduo a orientao a objetos - 29
1.(. "onsidera)es *nais
1ara $ec%ar essa introduo a orientao a objetos i&portante a#isar co&o
se co&para objetos. 1ara co&parao de objetos pode& ser utiliBados os &todosC
e#uals') ou compare1o'). .a&os e3plicar a di$erena entre os dois &todos.
/ &todo e#uals') co&para se u& objeto i!ual ou di$erente e possui
retorno do tipo boolean; isto ; true ou +alse.
1ara se co&parar objetos no utiliBa&os o operador @]]A. / operador @]]A
#eri:ca se os dois objetos possue& a &es&a re$erncia; e ao contrario do que &uitos
pensa&; ele no #eri:ca se os dois objetos possue& o &es&o #alor.
.eja o e3e&plo 1este8alavra.java que pode ser bai3ado no MoodleC
Introduo a orientao a objetos - 30
/ &todo compare1o') co&para se u& objeto i!ual; &aior ou &enor que
outro e possui co&o u& int; que pode ser -, quando objeto &enor; 0 quando o
objeto i!ual e , quando o objeto &aior que o outro. .eja u& e3e&plo no c<di!oE
$onte 1este5ompare1o.java que pode ser bai3ado no MoodleC
Introduo a orientao a objetos - 31
1.+. Referncias bib%io,r*cas
=a#a *; Ruia de (onsulta R'pida; 1eter =andl =r; 8ditora +o#atecP
(erti:cao 7un para 1ro!ra&ador =a#a * 6 Ruia de 8studo 6 8ditora
AltaVooMs 6 \at%F 7ierra e Vert VatesP
%ttpC^^pt.0iMinourau.or!^bin^#ie0^Rrupo=a#a^7lides(lasses,rapper
%ttpC^^docs.oracle.co&^ja#ase^tutorial^ja#a^data^nu&berclasses.%t&l

Potrebbero piacerti anche