tag:blogger.com,1999:blog-217110042024-03-07T15:21:21.349-08:00Blog do MasdevalMasdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-21711004.post-51984777717071215342014-10-01T16:36:00.002-07:002014-10-01T16:47:11.999-07:00Eu, meu carro e o pavão<div style="text-align: right;">
</div>
<div style="text-align: right;">
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: right; margin-bottom: 1em; text-align: center;"><tbody>
<tr><td style="text-align: center;"></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL2DSZvVxn0vQPwiZu49v6pjryj2x3bdJKxdCW1rzVryUzZEKDFQMtZI7gOc7asn34f-ysO8NJP7VDkfS2spNuRv-XOpZZtZoB895YJ3uW8N0M3EOTHTodH8XH95jYm5V5SVk-/s1600/%C3%8Dndice.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL2DSZvVxn0vQPwiZu49v6pjryj2x3bdJKxdCW1rzVryUzZEKDFQMtZI7gOc7asn34f-ysO8NJP7VDkfS2spNuRv-XOpZZtZoB895YJ3uW8N0M3EOTHTodH8XH95jYm5V5SVk-/s1600/%C3%8Dndice.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Ha a natureza!</td></tr>
</tbody></table>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Eu gosto da natureza. Cuido pra não jogar coisas por aí, não deixo luz acesa, separo o lixo orgânico do inorgânico, desligo a torneira quando estou escovando os dentes e por aí vai ... E de tempos em tempos tento entrar em contato mais próximo dela também. Faço trilhas a pé e de bicicleta, vou correr nos parques, viajo pra acampar e aceito convites pra ir visitar fazendas. O problema é que a recíproca não é verdadeira. A natureza não gosta de mim. Sempre dá alguma merda e eu volto da minha incursão no mundo natural pior do que entrei. Vou citar alguns exemplos.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"> </span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">- Ainda criança, menino moleque, fui a uma fazenda com meus pais. Brincadeira vai, brincadeira vem e quando volto pra casa percebo que minha perna está com uma marca que parece uma picada de mosquito, só que mais feio e dolorido. O tempo passa e aquela picada cresce feliz e faceira transformando-se em um furúnculo gigante que não me permitia andar. Lembro que minha mãe até me levou em uma benzedeira que, na sua sabedoria de curandeira, receitou passar uma pasta de farinha com outra coisa que não me lembro o que é (a curandeira morreu uma semana depois disso - creepy!!!). Quando estourou, parecia um vulcão em erupção com toda sorte de nojeiras saindo. Entrei em desespero e por sorte meu irmão estava lá e calmamente (sério, meu irmão é calmo pra essas coisas e além disso a natureza é melhor com ele, mas depois eu conto) limpou tudo com algodão.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><img class="rg_i" data-src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTkxCyPIpJXFcp7Kna3RrmoxD_cl4GMfyrNZt-1LtG10vhQgKQx" data-sz="f" name="Fqfu_XANCBCBRM:" src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTkxCyPIpJXFcp7Kna3RrmoxD_cl4GMfyrNZt-1LtG10vhQgKQx" style="height: 196px; margin-left: auto; margin-right: auto; margin-top: 0px; width: 252px;" /></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Olha meu amiguinho aí. </span></td></tr>
</tbody></table>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"> </span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">- Outra vez estava indo para a base aérea visitar umas pessoas com minha mãe e meu irmão. Fomos de ônibus que nos deixou alguns quarteirões antes. Era legal esses passeios em pessoas que moravam em casa porque nós morávamos em prédio e queríamos aproveitar ao máximo. Nesse curto caminho entre onde saltamos do ônibus e o portão da base, vimos um pé de goiaba. Não lembro de quem foi a ideia, mas entramos no quintal pra subir no pé e pegar algumas. Fui lá pegar e as melhores estavam em um galho meio fino pra ir andando em cima dele. Então eu me pendurei com as pernas e as mãos e fui me arrastando. No meio do caminho percebi uns zunidos. Eu não sei como mas não vi uma colmeia de marimbondos que saíram par ver o que estava acontecendo e ferrar com minha vida. Quando as picadas começaram eu me larguei lá de cima e caí de costas no chão.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><img class="rg_i" data-src="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTGpQ6cg2qOJdwOylCCmTWhleNTaTpV2Cw_GItJexlyjoDRIqRkGw" data-sz="f" name="YLUnMDVdQokxUM:" src="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTGpQ6cg2qOJdwOylCCmTWhleNTaTpV2Cw_GItJexlyjoDRIqRkGw" style="height: 180px; margin-left: auto; margin-right: auto; margin-top: 0px; width: 240px;" /></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Hahaha, esse se ferrou mais que eu.</span></td></tr>
</tbody></table>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"> </span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"> E sem falar de todas as vezes que ao menos um mosquito me ferroa e minha mão incha e vira um pão francês. </span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"> Bom, mas o caso que quero contar é bem mais recente. Há umas semanas atrás fui em um balneário curtir um sol, piscina e .... a natureza. O lugar é bacana, tem lagos, criação de porcos, tanques com tartarugas e uma comida ótima. Passado um tempo que cheguei, um amigo foi lá me pegar para irmos em um campeonato de motocross que estava rolando ali perto. Quando saí para ir para o carro dele percebi que havia um pavão perto do meu carro. Achei legal ver o bicho por ali e fui assistir o campeonato. Depois de uma hora mais ou menos, voltamos e adivinhem, o pavão ainda estava rondando meu carro. Aí achei estranho e cheguei perto pra dar uma olhada. Foi então que entendi o que estava acontecendo. Ele, o pavão, estava vendo seu reflexo no para-choque do carro e, com todo o seu cérebro de dois centímetros, teve como reação bicar o outro pavão. E fez isso por mais de uma hora. Pronto, a natureza atacava mais uma vez. </span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigErf1sk6BXp6tJP4HvaSsfr42_08sa2lDPsjre2r6vtvgYfp4Rz2w8o0jlSglUtxYsLSmhLWnr-SlMvvoc1SpyUHF3N9-BZyAwuzS7sqi5yg94tYedbuUdkIiBwmbQWVkKNMk/s1600/20140831_153244.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigErf1sk6BXp6tJP4HvaSsfr42_08sa2lDPsjre2r6vtvgYfp4Rz2w8o0jlSglUtxYsLSmhLWnr-SlMvvoc1SpyUHF3N9-BZyAwuzS7sqi5yg94tYedbuUdkIiBwmbQWVkKNMk/s1600/20140831_153244.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Olha o estrago.</td></tr>
</tbody></table>
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6C3NoOzRYryKvxy17NRl9fPxFrYS6Jkmf64CVxXsTDSjVPWY5kzzBtIRKoqhUMCwIgmBOq5MJCN3XPX7l4q72ZhVr3jzmVRc41vAIoje8HQsW7TWErdvCQDpl9TipNmsUTqDt/s1600/20140831_153334.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6C3NoOzRYryKvxy17NRl9fPxFrYS6Jkmf64CVxXsTDSjVPWY5kzzBtIRKoqhUMCwIgmBOq5MJCN3XPX7l4q72ZhVr3jzmVRc41vAIoje8HQsW7TWErdvCQDpl9TipNmsUTqDt/s1600/20140831_153334.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Eis o culpado. E foda-se que é bonito.</td></tr>
</tbody></table>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Quando vi nem fiquei muito irritado. Passei pela entrada e só comentei com o dono do local "Preciso falar com você depois.". Acho que ele já estava sacando o que era o assunto porque quando entrei na piscina tinha umas pessoas comentando que um pavão tinha acabado com o para-choque de um carro. </span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">No fim da darde quando estava indo com o dono ver meu carro ele estava por lá de novo. Pra ele ver que eu não estava tão calmo assim não, taquei uma pedra. Ele pagou a pintura.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: left; margin-bottom: 1em; text-align: center;"><tbody>
<tr><td style="text-align: center;"><br /></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></td></tr>
</tbody></table>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-11633664324785492014-09-24T12:34:00.000-07:002014-09-24T12:35:31.732-07:00Resenha - No Limite do Amanhã<br />
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
<a href="data:image/jpeg;base64,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" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" class="rg_i" data-sz="f" name="at7rck0i7RoglM:" src="data:image/jpeg;base64,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" style="height: 237px; margin-top: -6px; width: 160px;" /></a>Ontem assisti finalmente o "No Limite do Amanhã" e, acreditem, a crítica estava certa, é um puta filme bom pra caceta. Na história a Terra foi invadida por uns alienígenas disformes, cheios de tentáculos e que ficam girando tipo o Taz e, ao contrário da maioria das outras invasões alienígenas que a Terra já sofreu, esses E.T.s não têm um poder infinito e vão dominar o planeta em três dias. Eles começam o ataque pela Europa e demoram anos pra conquistar alguns países. Técnica de guerrilha mesmo, tipo um Vietnã só que agora no mundo todo. O Tom Cruise (Bill Cage) é um major covardão do exército americano que trabalha com a publicidade do exército. Publicitário porque antes da invasão ele tinha uma empresa de publicidade e covardão porque logo no início ele é convocado por um general para registrar a invasão que vai ocorrer no dia seguinte e que é a grande promessa de vitória e ele diz que não quer ir.</div>
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
<br /></div>
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
<br /></div>
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
<br /></div>
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
<br /></div>
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
<br /></div>
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
<br /></div>
<div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">
<br /></div>
<br />
<br />
- Eu não sou soldado general. (e o general insiste)<br />
- É por isso que você vai pra lá com outros 1000 que são. Vai ser tranquilo rapá. (e o major continua)<br />
- Eu agradeço a honra mas vou ter que recusar. (e o general pensa: Covarde fdp.)<br />
- Não é uma oferta, é uma ordem.<br />
- Bom general, do mesmo jeito que eu fiz a publicidade positiva pra conseguir arrebanhar esse monte de besta que se alistou pra lutar contra esses polvos-gigantes-demônios-da-tasmânia, quando essa guerra terminar eu posso fazer sua caveira como o responsável pela morte do monte de besta. (já traduzido as entrelinhas)<br />
- Ok, você não vai registrar nada. (o general fala isso com um sorrisinho maléfico)<br />
<br />
<br />
<img class="rg_i" data-sz="f" name="16biWgJhzpn4BM:" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQSERUUEhQVFRQWGBoaGBcYFxcVGhUXGBgXGBYXFxcYHCYfGB0kGhoXHy8gIycpLSwsGB8xNTAqNSYrLCkBCQoKDgwOGg8PGikfHyQqLCwsLCwsLCwsLCwsKSwsLCwpLCksLCksLCwsLCwsLCwsKSwpKSwpLCwsLCksLCwsLP/AABEIAMIBAwMBIgACEQEDEQH/xAAcAAABBQEBAQAAAAAAAAAAAAAEAAEDBQYCBwj/xABBEAACAQIEAwYDBAkEAgIDAQABAhEAAwQSITEFQVEGEyJhcYEykaEHQrHwFCMzUmJyksHRFaLh8VOCstJDwvIW/8QAGgEAAwEBAQEAAAAAAAAAAAAAAAECBAMFBv/EACoRAAICAQQCAQIGAwAAAAAAAAABAhEDBBIhMRNBIlGRBRQygeHwQmFx/9oADAMBAAIRAxEAPwD2K3sPQfhTXnCiWIAG5JgD1J2qRV+lC8RCOjJnAOh3GhUhhI9QK7ACWOPKXC6S0kBTnaBHxLAy6EHn0qzRgQCDIOoPWazN7CF2Q2gSxzF9SQSTrmuEECDsRqR51pMOqhQqwAvhgbCBEe1DGdzUD8Qtq2QsA0THsTqYgaAmD0oiqDidhbV4PbXvLjkxbLEeIgeIHUL8Ovz0g0CDMPxxGcr06AmCCdGgbwM3pFWaEESNjtWdxPB7rhSwAMQRbYAT1ZmGqkkkgDWIMzporWwB1MCTESeZjl6UMY5WuSY1NDYriQQkblQC3iChQdiSdqzq8Qe9c1Kl1ylLYY5ROfOzToxUZSH22gSaANYDTgVlsHxG6ucusOFG7sysT+zgSdyNwBMxFaoHT86UMQ8UNicaq6btMQCJ0AJ3IiBr7iiiPKs1xvBPcvZE8IORniJKQykSQYMhY0OinakgHudp8pJEXLcFpkBkCrJzCNz4oGhOU1c2cdbb4biN6MD/AHrP8G4cxRVvJogIAywJLq8sCPGZEzESeczVjxHCqoLhQFLDPGkzAzfzAxrvpVUMuKVQcOcm2uYyw8LHqVME+UxPvRQFQIjbemFdkUPisUEKrBJaYA5wJJJ2AHnTAmqO7iVUgEwWJj2Ek+QAG5qpvcQR3yPcC8u7Vzmnq0AEelVfHMAVOdnZUOgXO5OogIJECWP1Ap0OjVWcajQFYEmSPMCJ/EfOiBWItXzZeLFzvbgU5lJBhgNQpuMDqSwIkx61ssLfDqGXUETSaAmppp6Y1IhTSBpqB4jeOihgs7ncxB2A5TA96aQBV7EKBv8ALWh7WPVvLXTzn0051T3McinLmUMIEtz5EAAQdByEfgIcXxHUFCHy7xoIjkSpM1aSHRpw9I1WYDioeASsxzMEnynf2FWAalQjqfOlSilQBziLRZWAJUkQGG4kbiqPF8HYBQApRTMKDPnmVpF3rBI96v7fwr6D8Kc0kwMtxTiBSyX74lEUZ4CjMXjIigRqQddoBnes23EbttMPdglMvgtkAEKPhfTSTmBJmT67F4/Ds1sKiMyo166xAmP1l23bJHOEtxpOk0Fw7hr4i5btJcaFlmaWhADrCzGbMSBtznaKos1fCOKXWOV82YkmFACjYsuZhIyyNNdGETBq1weEObO4AYaCGL77tJAMnQei+dB8Jtq12bf7K0GQN/5LhIzkH7wWInaWYfdq6y0rJFFV/EcQ4ZVEhcpJIVySRACyoOXqTvtHOrCK6pCM9wZxcfM+QKBKqMxGeWzsWb4zlyakAiTpRHFrZuBGt3MniAzAxJbwqAwUjfSIjXyoH9EZbjJByIQwUAOSuyMu7ZhttAyjeTU5BXws7qwgILZl/F8anMMsTG/QmdqYwbHcMK2jdZ+9e34oKrGkDw5VWCAImPQA6jUW2kAkQSB7eVZ2+rg27QULbUr4S2YtrKh3Og2JgFiY9je4bEB1B58xMwRoQfehgECq3H3BauB2PgcZW/hIBYN6QDPSAetWNVHaBBCM/wCzQktMwZGUBo1CmSJ13EiJqV2IOwtvLu2bNqD1gR1Prpp5ULxy4O6YEwDAJ6CZMecA1Dw0rJMMgJcidFZWOYMBsOY5bTzFdF8zhn8CKMyyInXc+YjNG/iXmDVDJeB3WYNmHMT0zlRnA9wD6k1ZZqz3DeMZLSCNGO50yif1mc/dKtm3jQDWdK0IFSxDk0LiyhIUqGYhiAYMAQSdfPL+RRMa1W8TtlbiXFEt8AXXxTMrptpJnllE6TQgKMIEQC4BmNpQvUHfMAp+JmygagmBoNag4n3zkpLxaecwAMuACCdZIAIMRoW1mAat7d63aKFyjMqZQR48hBMAEAkSpif4fOo8JZdruZoC6+EElnGUKXiYOkKYE9YqxlPhOH3HVXLZ7zkwhRQtsBj4mgfqwGEnmdgCauuG8QNkm2xZ1WQNFVvDAJiddepzajrVtw3C5VaVgs7NGhiYgE8zp8zUrYZTJgAmNQBJgyJPPbnU2FnGD4gtzaQYBgiNDsfTzp8djO7WYLE7Ae29PZwqpsI0A9hP+Sfc0s8neNPzH+aVCKWy1ww90eknKAZnYrvy25edB8YxbQSjKrQFzT4n5DQaga6AQTO4BitFdwCmc3iERH4/PnQL4O1MplWNBC6L1IjSfOrGZK7gMtw+BrokMCdoiMjLmCATqSdTMbDV1w9vMZRRmg5V7ggBdApOuk8hG9X+J4aAC0B+Sic3kNTpJ8gP8VWN4XnKB0ALdAABHKcp1I2nSmOxWMMSfAq93zt5iQYMnSSAfb2rWcPQBBlzAcgSGIHr0rN8O4aLLwdRlk6bakAc+lW3jb4eW+rQD0zDcjT336UCZcTSqMW/M0qkRNbGg9B+FRY7Ei1ae4dkUt8hNTLsPQVScYx6PNpj4AoJ1Xxk5gFE75SMx5/DvNIALAYe9ZRAgDE20LkkZQVV2ZWY/DJuDXoD5SBaw7HFsqugF8p3i2ycy20tkGSVGUMdJ0Pi0mrnDcLe4FL3QQAI7pQCQNszmZP8oFR/6TiATmKOmhCKTIymRGaPXfWqKL+1aCqFUAAAAACAANgByrqgOGY13JFxCpAmSpXmRBBnXSdCdCNqsIqCREU1xoE/k+lI1BicAHOaSDESI0EzpIMT5UAA2Lpd8+WXKQFBEIATIYsQWMtrpG3rXWLxUZBedUOYEKuskHQnnA30jbflR9rBqpnUt1Jn/ivN/tR7SZn/AEW3HhjvWgEydRbB5ACCepIHIgxkyLGrZcIuTpBvaT7RbKkrYtrduAFe8mUHmvN9z0AnQmq7sl20L4u2uIAXMSquoI1YQqvJMgmNeRjlqMfhsNpXGLw5G29eR+flv74NnhjVH0Nlqo4piyxNkW2O0mDB2YRCkETAM6bjUAwH2X7Y2cRhka5dtpdAi4rsqHMuhaGOzfFI018qnxvbjBWpnEIx6JNw/wCyQPc16yyRq7MW13VBOCwTMSbyKeYnxEfPSPwqLEcNclgptqh0ygEabkESASdNdPKJMjcB7eYbF3Tat5w8EgOoGaNwCGOoGsGNJ6Gru5hEacygzvI35a9dKuM1LlCaa7KvCcLAvZ2tJqJzaLqNvAGKn10251cG6JAzCekiflUYwVuS2RZO5jX50ycOtgyEUHqBH52HyptiOsaHyN3ZAflIkDUT9JqtTA3mBV4jkzPmYefhQAHUjSNOtXNI0kwIbdghMubWIzQNOhjaqv8A0y8jFlbPuRqARO8KwI95q7FR38OGEGfYkbgjl60JgD4F7hkXFiCIPhlhGshSQNfPXoKJNBnCss5QOgljEGTrp+ZO9Q2OGFixuAaxEO7deTCBvTAsitDAZN5/En3oymZAdxNJMAdjyMn86UJcwehIZh6mIPXQSasntg7igr+FdyQMoXY7ksIjlEfOqTAz+JLIS2rFTEkgSMs5gI21jmTXWFwjXGVso3BVspG3mdY/xAmrjCcARCSfFPWWH1JijrOEVfhUD0puQ7Kf/RLkyXETMQZnrM8uWn/NtashQABAGlSkU4FKxHGUUqcilQBDjcGLtooSQGAmNDHT0MQRzEigh2atH4gWH7phVjplQCR5GRVrSqQOLdoKAFAAGwAAA9AK7qBsUJjXTQwGOvSQKpMT2ji4CPCmwVvA1xjMETqVHlrrrToDR0wFZ3F9pCAAsZsy6c2U6lQpGpg69N6sf9XlMwUAmQA7quo5Armn2opgWUVFdL6ZQDvuY9NvelhsQGEjfYjeDpI0/O1ZTtd9otrCzbsxdv66Ayls/wAZG5/hHuRpMSkoK2NRcnSG7adpP0RDJU3nB7tAWJ5jOw2CjeDuQRyJHklkG45YksSSSTzJMkknUknnpUXEcfcvXmuXXLOwJJPXQewA0gaAbRRWGMJPQV4+qzufX7G/Hj2IKbEKg3oZ+LJ616/2c7D4W1YXNbF246DO9zxE518QWdEGpGmsbk15Fxrs4MNi7lkyQjeEnmpAZD/SRPmDXPJo1ijulyEMqm6Qfwfgl7Fobliybiq2UkNbBDAAxDODsRyrjG8KuWXCXrTWyRIzRqBvBEg8ufOiuzHGXwF3vEGa20C4kxmA2I/iGsHzI5yNF9oeOS/bw2JtHNai4pbbKxyEK/7p0bQ9PSl48U8LlBu16Bykp0+jMdlQV4jhsu/eKPYmG/2lq9yFeW/ZrwBrmI/SmBFu2DkJ0DuQV8PUKpbXqR0NepV6mji1j5M2dpy4FSpmYAEkwBqSdIHUmgeG8cs4hnFlxc7uAzKCVkzoG2Y6cp5da1X6OBYTSmheIcQSwhuXJCD4mALBB+80ahepiBuYGtS2L6uoZGDKwkMpBBHUEb0ATCnmuRTzQB1TGlNMwBEHY0AMLo6j50u/X94ab6ihH4aMwK5V/wDUHWZMetc/6ZGbJkWTPwA851115a+Qp0gDGvqOY+Yp1cHb38qDXhpjUr0PhjoTz01mpcHhO7nUGTOiheUHb2opAEmmqHEYoIOZPIDUk9B50G2MZ3yBlQ9B4mj8B6nTpNCQBV/FKnxEDy3PyGtLB41Li5rbBh1Bqm4nw68c6pmZHC/eA5OGkyDuVOUQDlAka0TwLhjWlYuSXaJlmaIkASSeR/HU71VIZa0qaPSlSEC8Xvulotby6RJbkvOPPbfSqy3fuLbYjMZGkktI3LKdiwEx184FX42rm9ZDCDPWRuDyNCdAV17CraQQzrqFBBMDMd8pldSdyCZM6mguMcEQlW7tYAYTkttDMIBbONV1M+1XS4NRbyalddzJMknf8xyqDC3jJt3NWUSDp41mA3ryI600xmawXBrYFseBmDyplWAH3pPhLaaAAQKuwoS7bhVDOcpAUeJYJPpG/wD3UuNxx2Qa6y7aLbXmx5kxy+tQXLbCxcvH9oLL5OqLllR/MYUseumwpt0gPOO0vbV7164mFJtWvhJXwtcAOpJ5A6xEab7kVi70ByByj5n+3lRPDeft+GlX/anguTAYG+ogMjh/5mY3VPuDc+QFeE5Syyk36PQSUKRl8amUq3LYn10n+/tReHM22HOCPpUtlzCsNSpDD1UhgPmBXoN77Mbd5hdw14W7N1QwQpmKBgD4CGAiDoDt5jSuePFLNGl2mOc1Hs3fDrmazbbqiH5qDXnH2tYHLes3h99Sh9bZkfMOf6a9MsWQiKi6KoCgeQAAHyrz77XMemWxZibmY3D/AApldB65iT/Qa9XUpPE7MWL9aoxtoytdcO4rewjlrDRPxIfEj/zLz9d/MVNwbhj3IgGBuY0HluKvf/8AHyPib5D8Jr5zFHJCW6Bvk1VM54J9q93v0TEqvd+IMyKS8EAocoGpBBBgCQZjTXUP9o2HOGuXreZmRggtsMrM7AldifDAYk8grcxFZ/hPAhhGd/iZxAaNU9PXT5c6zfaLDAYnMIAKAtGwYgHN02kz516v5ycY2zj4YPlCx3ajE4q3F99CSxQaKSTpI6AQAvKJ1Ylj6P2BW1awFs50BbM7nMo8THY66EAKPavJ+HM+IlcNZuXgNC4ypbHq9wgbcqo+IYXEYXF/o95QC3iAJVyFKlgM6nX67UYHli5ZZr7kz2Oopnv+O7X4QJcm6jhV8WXxgk6C3I0LNr4RJgEmAJrzTsZ2nbAXAtxj+juP1gOoRo/aDzmJ6iegigwkbhR8q7CrcuKjt3Sk6uysQo6woOY9ANz03HOWqnPJGlVFrCoxaZ67ge31u73KpZvPcvWs4VUgAgKXQPcKK2XNqwJGlXOA45buNkzIt0TNrvLT3FiZBVGPLX3rI4ULib2DfApcbD4ZLtnvGHdoc1oKsEkOwDKAxVefrXOF7JYnPbFy2CqWLwAS9btr3lxUTKndWUayCM8MMx01PX2VyjE0bl8dbX4nQaxqwHi6b7+VD3OPYdba3DftC2xIV86wxBIIUz4iCCIFYHEdhrtxCiYdUsjve7W53PehjhryqztbOVwLrJlJJYSSSKMwPYzFoiBMlsh78kXTbYI7B7QFxEZsgJuTbBWSRrAqhUate1WGaVt37LXIJVe8C5oti7o2vhyEHMJAE9CKFHbWwFtls3jFrMUR3t2++yi3mulVEEssc9ZishwvsFfs22W6LagG0zXM4Ayrg79m5ruArvJ8pIqbh3YrvUw9s4wPdtphrhQM7oLKlRltZWCMpa20EoTO52oCka7hHa23iL7WVS6pXvYZlhH7m4Lb5GnxalTtzjcEVdXLgAk7VQ8I7MGy1ljcB7r9J0CwGGJui6OemWAOc+VWWIab9tTtldh/MCij6MaKAoO1lpwBdaMrFUy/eAJJMGRqdiQR021NTw/Es+Ia1YuZreWfvICNyEbVt+p6xoAKsu1PEVusqb20MkxozxAAOxgZvnQ3ZwIty5eZgEChQOWaZhRzMD6/K0P0G4fir2wwDbsNw0IDIJgxGoYwOYjnVnwjHO+UOSZBBzAKVcAErAA0/wCPOh7FnMk5SCXLFso1BaSpO5GU5c0cponAYUd8cq5VRdBvJadT/u58/Oh0ItopUsopVIh1p65pFxSAeaqjcz3VYAgrmULoCZIzFwxEDwiBvrPlROOwIuxLRAIHMSeYG2bpM7mlh+HIsEkkjaTAHoBp+NNUAFxNXa2wuBbaEQYYMSeUzGn8I360Xw/F96GDDUGDuVeRJykgErrG3zqfFYRLohwGA212O3I0Hf4AjCMzjoRlzD0YqW+tFjPIsd2KxOHxLWks3LqE/q2VSVZfuyw8KmIBzEQQTtBr1DEdlBd4cmEcgFbaANvluIBDDqM0+oJHOtAop4rNDBGDbXs6SyuVf6Pnm5g7mGutZuqVdTtv6EHmp5Hn869o7EMTw/Dz+5p/KGIQ/wBOWrPHcIs3oN6zbuZds6K8T0zA13ir62rbMfhUbDy2AHyFTiwLFJyvsqeTyJKiY14hjsWcbjnfdWfw8otronp4AD6kmvRMZxe/ftuqhbaupWdSwDAiQTpOu8VlsF2VewSVOafaB05zWTVZlkSUejVi08oW2aPhOECqAAAOQ2gVZ3LoQaxVFY4s6fHbb1A/xNC4/ihf4QfcH6jn6fPocalSH4ZN9BfEu0tm2JusFU7TueuUbtWX7ZdnWvKtzDEMlwrnAOjqTuD02zeQJ61nLvBbj48W7rNdzAuG1EqAYnQ5RIykbDyr0C/bXBcPu3FXMLaFsiyBPlMwJMk66A9K6Jcp9hkgocGg4BwNbSi2B4bWgEbn7znzY6n1ryztpdW9xS/d+7a/VKerBVVo9Ib+qguF9rMXxBktG/btrbdbi2zmUMUMqrsGDMo/dnp0FS4Ds+UxdmzjnbI7vmuLcCKS0sNVQtmZzBJIGtelmUskdq4MWNKErfIBiHyjxMqDqdD7DnV79n9zh1xnuYu9me2RFplzW3U7MEylmII1G2281uG7K8Pwds3byYe2g+9cHeFukG5mLk9BJNeYYm8mIxV7EWcOEtsyiyq2wsKi5c0KNCx1MfWsrxR00dzds7xm8rpKj0fH/aMXv4exg0yo122pZgAWTOoKqn3FjmdfIb16LXkv2V8NV8W926y95bQ5LbKwuLPha5B8IEHLzPi5c/Wq2adylDdJ9nHKlF0jH9sr1qxew127duIj3it0C/eUZO5uZYRX0GdVPhGp9aq8RxvEgKFN2zh7t891dvMbdzuUtZipdkdkz3PhzqWIBHMVujwu0bnem1bNz98opfTbxRI+dFVoOVnnV7H4lL1pc1zLdR8QWRbiKWTCPbuKFKhlHfBLoBA1uDTau+DcS7nF2Hvi4XucNw4JW3cus1wMSQQikzuda9Ap5phZFg8R3iBsjpM6OMraHcidJ3qp4sXN3KAdElQDl7wEsLihuuiaSN6vKq7Sm9mF2CrDMBtlEwpBGs7mdxGlC+oiLD8QXMoFo5jIygarBGmoAVdfpzqDgvDVd7txwCRcaBGgOhZo6nT2A6UVYVrMrLXRPhlyWAP3TO8aa+dQ5HUszhUzttLGNAIzCBJMnXmdPOhk+Ftd1dy/vT6MdSG/m0YHr4asUtATAidTHXrQlrATlOcsFbMJH0B3586PAqWxDZaVdUqVgC4iwW/dy6SDPvz6VCvDtQT3ZjT4NSDJI+KjgKRFOwAf0JwoVSkAnQqYy8hv60m4dIjwz/KYiNozfnpRN+9lBMSdNBzJIA+p3qEcR0kjST9OY6j8afICs4EqQcw84WJOvUmNx56b60RduBRLEAVFax6sYB5T6jyI0O9QXS7TlULpoW5zyjkKKvsBXuKROVZgTGoJnYCdtNfeiMPig4kbddIPoQYqqwWEJmXJYdWywxGpyKYOvM/WiLd9rYg5I3mSSSdyY/xTaAtRQvEMN3lt02zKRPQ8j84rnD8QkHMMpEmJnQc9hHpVWeJ3WOmkzAAB0mJJPpU7b4Y1d2gLCN4cpGVhoRzBG4NSkEVlu1/HL9rF29Rqmq5RB8QAmNf8TV9Zv3Y+GfQjlpsY/vXi5KhNx+h7MJqcd3RLdvED4Zqrx3FyoPgI0JnbQan8xUeP7ZWrRKuYbplafwj61m+1vFMQ9gP3TW7Vw5czQGaQTASZUEA+I7xXHlr4miKSq6F2T7V2O9v38UypCoiIJZikuzKo+8S2Sf7CjeE9ubF03jcZcPaEZLbB7rODmzfDvy089zXnIsHlXa4au/kW1RrhES00ZScrds1dz7O8Lil/SMOXw6MTBUhl0MT3R1QSDpm0jYCrHhH2eWrDrev4xr/d+JVICLmHwk+JidYgCNY9Kk7AY5LNslcMufUG8WksTsiKV00iYPr0rTWsAbpzMAoPJdJnr1qp5fjUX+38mCWPbNpor/0O3fJVrSNlJADLDRuYW4PmKkvcOFlZt+AH2Ho0bCtBg+HraWF0XkvJf5enp8ooPi91Y123PkBqfoKzSVcjjLkz/DvtEw9i+3f4a6t0fqwwKNCzMEsVABMGZjQV6HgON2rttbiusN/EjkHoe7ZhPoa+fOK4w33kgSdD5iTlB9t/IDrXVkmxqLjWzH3Gyaf+sVqxavYlGS+wsmDe7s+hMTxuxbE3Lq2x1c5AfQtAPpWR4v8AbBhbZy2Ue+eo8C+xYFj/AExXkzMl1szOXc82Ysx92JJotOHjkKWX8QrpV/0UdKvfJ6t2Y+02xi7gtMjWbjaLJDKx/dDQIY9CBPIk6Vs4r5xa0bLpdX4kYMPVCGH1Ar6LsXg6q6mVYAg9QRIPyrXpc/mjZwz4lB8HdVVxWVyig+PRW5IviYz0IJMdcy+dWwFcsK1pmchw2FCCBr1JMk+pqS9aDKVbYgg+hoNnbX9oZAgAAQQep01n6U1244UkC4dRpCzqTMSQCB/bnToAnBWMiKpMkDf3ogVV97c00uEDX4Vk6GRv1H1FFcODwc5JM6SADGg5b8zPnQ0AXFKmmlUARjYV1NIUoqgK/F4ZpYgghhBmZEdI5VXi2QTMRO2hgz0iF9I+VXGOLZYXmdSN4126awJ5TQjYYmMuUKAdDI1MeLTcxI9zXRPgDh8UEAnRjtpJ5HKoA1MH0oHFcTOVyykhQxGZTDkNpAYAGBpJMCjhnQZjkaIk+IGOsydPao+I4cMl7wgsbcAHbxSp+pmaBlPca7o5y5AMzfeUE/dnKCI3gaSBryNngbgKhiREFlgLJMgAwognU1RYzg5thLdx17rOoYBjuZM5eUaj3U1obEEZkgToBp4QugXTYCOXzqgZJgsDMljBIgLpKg6yT1Ony9aZsOUkH/g0fgrOUamSdSetd4pAykEwKhvkEzy/7QbDG9auhTlAIYxt4lIzdOetabD34KjkQ3/yFccRYgEAg9QT7b7r+dKCfGAgBgVZdROx5EEjQSJ3ivG1MbyOSNsH8aJ14bZTEG5dQeKIuZcxSJ055dfvAT/YHtXwW9xB0t2Aow9uT3jGc7tuwAljA0kgc6u8Jj0ddSOn/fT0ri5asgyDB6qSD81qYZahsfX2KVqW5dnmCdkr8XiqytksGaYByGGyz8URNXvZjsCb1rvr+ZEbS2BALTs5kfCN/P031yYlVBUXTlIgqQrCDuPEp01Pzol+J51ym6I8lXSRHIU4PCnbs7T1GVqlSKTheDS2q6eFdF/uSOZJ1P8AxV8mMQCZHzoNLNpEMMWn3+QAo7s1w1HRndAddJ22E6bHX6k1yxY3OW1HHJJJWwZsc9yRaVmPkCY/x7xVVjeyePxIKnu7FttDnfO7DnpbBUT0zbepr0FVAEDQdBpXRrfHRx/ydmZ5364PnjGcIbD4u5ZchmttBIBAPhUggHyIrQdnfs+GODXXum2dkGQMCqkqxksPvgj3FbjtX9ni4u8LyXe6cgB/BnDgaK0ZlhgNN4IA6VcWeEDDWbK2piyIPV1b9oTA1YtD+o86jFpKyuUuvR1lqPgq7PNuK/ZDctkd3dR16lGQgjb4S3sfyaa3h3ssbV3LmABBU5ldTMMp5gwfcGvZuL2keybpI8CMQ0iACAWmdIgb8q8j4/xRL98MgAW2rLnG10lpzKIGVB90b6n1PL8QwYlhvp+isGWcpUwDFkGa232cdt0VVweIYKV0suTAIJ0tE8iNl5EQNwM3mWNxXiJB2/Hl/iorhlwDsdPn+TWLSOWDk05MamqZ9MWsSrEgGSND5Hb8QflUleKdne3F3CkJfzvaB0cauvufiG2kzpz0Fep8O4ytxVdWzWnWUeVMkGCDlEA8oOs6aHSvdxZIZVcWeZkxyg+S3oa9xBFbKx1+gnqTpzHzqmxBvXcj2S+V1zSHAAkDKNiZAmfDu2+gqD/TX1bKs5YhWJztlgswKwB5fM613USDUinqh4Lizmi4WEjKgKkA5QS3M6+ZiY061eCpaoR1FKmmmpAKmZ6VQgEHXby6zVICeoMSsjcadf71wL8H4TG06c+uvX19qhxYkkL8Xn15T0BppcgDYjFx4VUkkajT3nqI/OtDDFNHitkeGDmcKYgRIGsetRcSuyhZgbbJ0IPPYkcvkY6VXYm8jjLZh2P3VDtP9QMDz09a6DJmv+MeFQ251DR1J0hfUyekVe8O4duzfeOaOpgb9BoNPKoOA8DCWwbqDvN+Rj+w6+VXYqHL6Ax4ofG2S6FVMEgwfbeiKWaoEef8S4UV+IMjLs6c+evWqV8bkPx7dPB/tYZflFeo44DIfCGMaCsPxTAqx8dgHqVbL9DWHPirlGvHkvspLnGQDMA+cQfmrGae1xy22+X3ZqExOGtJ8AuKehZY+oIqfhmMbbukfzJUf/EGvOcW3Vmmy7wly0+1wDyBB/8A0o8YSzOrsfl/9apW4rl5WV8gXc/IRTWON6FguYDfKokecEmu0FFPmjm7ZqeHcKtFpVMw89fx0rRINNgPIcqhwFxWtqybEDlHLnRFexGKiqRhk23ydLXVRg13NMkgxOPVCAZLHZVBYkczA2Hmar8fxEQXJi2FJg6AkSWLEbgLyB5GfKbGXzrNtTExmYAFdJO0jTr0qO+qMmTu0cOpVhmAMMIKzueY3qqGeTdoe1dzFZlnJhs0i2NM0GQziTrzy7A9SJqga81whLQJJ5AST1/72HOvQ7P2Y4cvBuXiuYCO9s7azqFkxA6HWoeKcbsYMNh8BZRLglXvTnKxyLHW4/kSVXYg6rXj5dO78uolx/ejfHLGtuNGX4p2Zt4ZLaXGD4liLjhTK2EynKkjRnYkEnYBdNDLU+Cx1q3iFe9a762CQbcxmJRwuvKGIM7iKmx2KidSzEySTJJ5knrVt2b+zHE41FvZ0s2iZBcMWf8AiVRHh3AJInUjSCeOPdlnuiuPX8nZtRj82VOIvqA2nxEkLJYKDsoLEkgDSSZ5mt/9kvBr3d3br5ls3Mvdg/fYZgzgHllIWeccwoq64H9leEsENdnEOP8AyRkB6i2ND/7Fq2URW3TaZ4nub5MmbOpLbEruDIApAEHM8+vePNdcTuuqFkywASZ6ATpSvYYpc7y2Jn416wIzL5wAI5wOmrYvDpiUGpIU5hB+8JEEeXQjQ9CK9H3ZlKWxiHy5jAQMfZ5YsQw1XeNzHOZrQ4B2KywOp0nfLyzdD5VV4e4gRhq2V9FOiwzZ7ZgfFIIjckjyNXGFzZfHlnymPqacmBNSp4pVzEcKK5uW5rqnpgVWO4h3YK5Hcx9xSx300A+tA2uG3bssTct5+RIkDpE6ayeutaGKeq3AVuH4Mq/HDmNyon5kmjbNlV0VQo8gB+FM+DUkkiSd9T8vqaAxyYYMe8KhgsnUgw3hAMHnsBv0ouwLMtSmq629i8RBBbcCSG8Onw6HTTlRDcLQxImBA1O3TelwAVNImhv9Ltxly6TMSd9dd/OpLWGVBCiAd+fIDn5AUAd0Dj+GZ4KnKR/u8ieVHU8UgMPxHg1/L/8AkBBMsCCCPQHSs7f4XdnxPp5qJ/3CvVr2IVAMxidvOg8VhMPifC2RyOhBIrJPSqXKbNEczXZ5jcwdkftbpI6ZwB8hUmH4vYSUw6STzMgGOpOp9621/sJZM5YB8xp9IoFOB2rbQ6ICPP8A+x2rjHSzv0jp5otF52e4sl62MilMuhU/Uzz1q1ofh+Etqspz5/nlRWWvQXC5Mj7OaVdZahbEKNSwAmNSBqNxrVCJGsq24B9QDXK4RBsq6eQ9a6s3g2xnWK6caaGPOkBz3A6Aewryw/ZLis0fpFkrPxHPmPmViJO58VenLhm1/WNt0Gmu406aVwcE/wD5n5cl6+ntXPJhhk/VydIZJQ6MtwD7KsNYYPeJxDjWGAW2D/JJzf8AsSPKtjfaBopPLTSP8Vxh7DLEuzQI1A18zHP6eVEE04wjDiKJlJydsAtM+bUXAB1ymdtNNf8Arei7LkiSCvkYn6VE2OUMRvHQTrMR+PyrsYpZAnU6D1AmPlXRkgmLW+SQAMp2ggEbakk6nfSPnQtvg5dpvIoPVcvyIjXmauwaaKNwGfvZw8920rojkJIE6glfCRGw+tWuD4olwwp1iQCIJEwT5wdPLnRmWo0wygyFUHqAAT70N2BLNKlSqQI5rquacmmA8UjTVBjb5S27DdVJE9QCRNADXMYDmCeJh0GgPQnb23rMfoV5kvOApuEEB2BBDRlJCBZPkfCQDppqbO3i+4lQM0QAMwBZtS7QdTJP0NSYTH21HjJDXPH4hoRAgiJCgAAROka1fQzEhL9m8r2yxJC+N0EkEGRlLscoWdVWfWBXoXC+JC8mcAjUggxoRvt+dRVdxHD21nKfiHwhQxMDXJmkKOZMedA8G4utm2A0nMxOkkgsSZMnUR0JOmtNqw7NXTVDh8UrqGUyCJFShq50Ieh7mMGoALEchsD0J2FETQGCde7JMRmaf6j86aAAvWrvfA3ACG0AJlFGhAPgzZpBI5HqNqDuC6cVnyKGQiADGdSCszmIBjWIGw1O1H/pkC2GDNDOYEM3hZgikTJgQSfLzqe7iLb+G4hBI1DAZgDppGp9tqsYVw/GG4klYIJBAOYadDAnptuDU72VMSAY2kAx6TWXwHF7yuQLYKl2ULBz6E5egH6sCOUiNNY1QNS1QHQpUqH4h+zYdRHsSAfpNSId7uYEJMwYbkD5E7+1A2cFkRjcyTJgjdV5CXmT56T0qzQRoBAGlNeuQJppgZ7heLuKboGXLmBQEgsVygBAQdYjntMaxWiR5AI2In2qsxN4B3Ux4iNjrCgTMTE6j0orD8UtsQoOuwH9pGlNoAyg8VxEW2jKTpOhA9tT+MDzowVG+GU6kb+ZqVXsAY8RU+ESrnYRJGkzHP8ADQ9KGe8zRaZHDN1cQVHxHMmo3GkDcctif0Eh1IJYDbMQcu4OpE6ggb8q7xIyutzkAVbyBIIPsR9fKq4Ais8FVBCEr6QY8hmmKWJ4OtwAOzEDzAnpJAHnVgDSJqdzApcP3jFlyqAhymblxmPRh+6CNQZP0qazxQKuuuXdp0IGgMnefWNDr1mW0bhLAlQYA/iCzrv1NSfoCxBkgciTH9I0HyquPYHeFxi3BK6j6fOp6ocZxvC4Nj3t5UL6hWIkhQZIG7QNzrEa7Ufw7jdm/PdXFaNCBupiYYbqY1gwalr6AWEUqbWmqQGpqaaQNUA4NBcSYmE+66upMbEr4fb4qMoXH30AAbcnwwCTI+8I2A5nSmgBcBeNwkqQIRZ0mWIMkwdYiPnVevBGa8JYHI2Zm2ILBoCDlMyZP9gJeFWZVQrsCqQzKB4iDrJIgTMgRIk0XZS4hOW3AO8tmLHqY58vzpYwrBcPW2oUCdN43H+PKhcTwC2ygL4IIIjyKkCDy8I0HSrCw5I8QynpvUlTbERYXDi2iouygAewipRSpUgBBi4dgwIHIxOnOfzzoTAa93Hw/rPnm/8A6q0e0DuP+KpcVYZcyotyJBUyxKtrmIIkwQduct1qkBLicRcN7urOUc7rxJQaZRGxYyYnbeOpLcGQgTmJBBzEyTygk8j0EVW8Ne4mbu7JAJmNFE6g/EwJJG51nSr3DsxAzCDzEzHvQ+Bg2G4UqNmBJMnnyICweugG/SjgKUUqi7ENQ+JuqZRiBK89AQdDr8vmKJoPiGGdwMpGnLQH2YqY+VNAR8MvG4A+YwRtCxPPXfep2fOSo2GjH1E5R7H60BYwTKrM7Xg3UNm6fCksOXTnSs33JDLaaeZIKZvWY/vVAH/6db/d2Ebkfk+e9c2uFW1YMBqBA6Dzjr570UDpTmptgPSpqepAcVy4nenqvvpdMz4hMgKQNAdiCB7+KmkBJbUxlByqNBzJEaR9R7VzcuBiFLgrudRJj7pA+Z9I51HhbJee9VgQdDmIBEkiIO4/O9cJbYs3geNhOX5yTr9fflYFohkA01waGN4NQ4VHEhmBGkaa+cnY/wDdEEVAHlXG+Chbt43Hy3CjumcZjeCWbxZEcCBlW5dXJvkynWNLHgXCLzY0XCbn6o3lJNycwa7KB4BERmcW5/VysasQNVxXDG9mt3LC3LZ65TOsagtHnt9an4bbZIQW1RB0ERvAEN/bnVjssopV1SrmIiakP7U9KqA5G1Q4rDq0ZlVteYB/GlSpgTW7YUQAAByAgCuxSpVICrkcqVKmgOqbnSpUgFzpqVKmB0vKnFKlSAVI7UqVADU9KlQBzT0qVAD0qVKgBCnNKlQAxp6alQA4pcqVKgBLT0qVIDk0w3pUqYD0qVKgD//Z" style="height: 182px; margin-left: 0px; margin-right: 0px; margin-top: -3px; width: 243px;" /><br />
<br />
Quando o Tom Cruise sai da sala, o general manda prender. Ele foge e acaba recebendo um tiro de uma arma de choque bem no meio das fuças. Quando acorda ele já foi rebaixado pra soldado, e vai ter que lutar na guerra junto com o pelotão nove. Quem o recebe na base é o sumido do Bill Paxton que vai explicar o que está acontecendo, apresentar o pelotão nove e dar uma treinada pra tocar o pau no dia seguinte. Nessa hora que vê que não vai ter pra onde correr o Tom Cruise já está se borrando todo. <br />
<br />
Até aqui é só firula pra dar o enredo do filme. O melhor vem agora. Na manhã seguinte, tipo um dia D já que a luta é em uma praia na França e os terráqueos estão crentes que vão vencer, dá tudo errado. Os aliens tão esperando eles e vai acontecendo um massacre. O Tom Cruise tá com uma armadura que não sabe usar e fica cambaleando pra lá e pra cá, desviando dos destroços. Quando ele consegue ativar a metralhadora da armadura ele, ao mesmo tempo que morre, mata um alien Alfa, que é mais poderoso que os outros, e o sangue desse alien cai em cima dele. <br />
<br />
Nessa hora o filme volta pro momento em que ele acorda do choque, na base, e começa tudo de novo. O Bill Paxton aparece, fala as mesmas coisas, e o Tom Cruise vai aos poucos entendendo a merda que aconteceu. Como agora ele sabe que vão perder a guerra, fica desesperado pra contar mas, é claro, ninguém acredita. Depois de umas vinte vezes (e isso não é nada porque até o filme terminar ele morre e volta umas 1000 vezes) que ele morre e volta ele tem a ideia de ir contar o que tá acontecendo pra Xena do lugar. É a lindinha da Emily Blunt (que eu vi pela primeira vez no O Diabo Veste Prada) (Rita Vrataski) que tem todo um status de mega guerreira porque já tinha conseguido matar um caralhão de alienígenas e usa uma espada gigante pra isso. Quando ele chega pra ela com a história ela já tem noção do que está acontecendo e dá um alívio.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><img class="rg_i" data-sz="f" name="sXT4RovJu294lM:" src="data:image/jpeg;base64,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" style="height: 170px; margin-left: auto; margin-right: auto; margin-top: 0px; width: 297px;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Xena falsa</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img class="rg_i" data-sz="f" name="eOgWrezzdET38M:" src="data:image/jpeg;base64,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" style="height: 177px; margin-left: auto; margin-right: auto; margin-top: -1px; width: 236px;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Xena verdadeira</td></tr>
</tbody></table>
<br />
Daí ele propõe o mais óbvio e o que facilitaria a vida de todo mundo. Vamos procurar o general e refazer toda a estratégia. Zzzzuuuummmm errado!! Ela conta que o que está acontecendo com ele já aconteceu com ela e que quando ela tentou contar quiseram interná-la. Acontece que ela perdeu o dom de "reiniciar o dia" porque em um dos dias que voltou não morreu e recebeu uma transfusão de sangue. Daí ela leva ele pra ir ver um cientista fudido que fica meio que escondido em uma salinha e que ninguém sabe que ele é cientista.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img class="rg_i" data-src="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTXpV5k54cAoVcoK6benUqr7IgmRmwrbHCV2QCxHj_MjUc-Qr7jMg" data-sz="f" name="pdoPZwma54ZFoM:" src="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTXpV5k54cAoVcoK6benUqr7IgmRmwrbHCV2QCxHj_MjUc-Qr7jMg" style="height: 155px; margin-left: auto; margin-right: auto; margin-top: 0px; width: 324px;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Cientista maluco</td></tr>
</tbody></table>
<br />
Eles contam que em breve ele vai começar a ter visões porque o alien mestre está tentando localizá-lo e essas visões vai revelar onde ele está. Então, basta matar o alien mestre que todos os outros perecerão. Logo ele tem a visão e o objetivo passa a ser chegar até uma represa que fica em uma montanha. <br />
<br />
E a aflição começa. Como eles não podem contar pra ninguém o que tá acontecendo e que eles têm a chave pra salvar o mundo e era só confiarem neles porque eles sabiam o que estava acontecendo, eles decidiram ir andando da praia até a represa (que fica na montanha). Só que eles não conseguem andar cem metros na praia antes de morrer. E só pra lembrar, o Tom Cruise mal sabe usar a armadura. Daí uns 30 minutos do filme é o Tom Cruise treinando usar a armadura e eles tentando dar mais que 100 passos. Mas não é chato não. Várias vezes durante o treino ele se arrebenta todo, tipo quebra uma perna ou a coluna, e é legal ver ela dando um tiro na cabeça dele pra "reiniciar o dia". Nesse meio tempo também rola de leve uma paquerinha. <br />
<br />
<br />
Até que o Tom Cruise consegue chegar na tal represa e surpresa, o alien mestre não está lá. Era uma armação dos sacripantas que implantaram uma visão falsa. De volta pra prancheta. Eles voltam pra ver o cientista e esse fala que tem um dispositivo que conecta as ondas mentais de um alien com o do alien mestre e daí é possível descobrir sua localização. Só que o dispositivo está no cofre na sala do general punheta que não acredita neles.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img class="rg_i" data-src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRhpuy4gw2ftud3GN1WbCbtRaF0wD4h6ES45Qrf96J0k4GKlAKV" data-sz="f" name="lOd0IsH9yFzoZM:" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRhpuy4gw2ftud3GN1WbCbtRaF0wD4h6ES45Qrf96J0k4GKlAKV" style="height: 198px; margin-left: auto; margin-right: auto; margin-top: 0px; width: 140px;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">General chupeta</td></tr>
</tbody></table>
Depois de voltar sei lá quantas vezes, eles conseguem fazer o general abrir o cofre e dar o dispositivo. Veja bem, bastava o general dar um voto de confiança e pensar "Ei, a Terra foi invadida por aliens, que loucura mais pode acontecer. Vou acreditar nesse doido e mandar um aviãozinho com uma bomba no lugar onde ele indicar. Vai que né?!". Mas não, o general dá o dispositivo mas manda prendê-los. Eles fogem e durante a fuga o Tom Cruise "pluga" o disposivo nele, se conecta com o alien mestre e descobre onde ele realmente está. Mas a fuga dá merda, eles são capturados e o Tom Cruise recebe uma transfusão. Pronto, acabou a parada de "deu errado tentamos de novo amanhã". Agora é tudo ou nada. <br />
<br />
Eles fogem do hospital militar e decidem que vão sozinhos matar o monstro que está em baixo do Luvre, em Paris. Eles convencem o pelotão 9 a ajudar, roubam uma nave, voam até Paris (eles estão ali do lado, em Londres), todo mundo morre menos o Tom Cruise que consegue chegar perto do monstro e detonar várias granadas. Um pouco antes de morrer, já que estava muito ferido, o sangue do alien mestre banha o corpo do Tom Cruise que, adivinhem .... reinicia o dia mais uma vez. <br />
<br />
<br />
O filme é bom. Só pecou pelo argumento fraco de que "ninguém vai acreditar na gente". <br />
<br />
<br />
<br />
<br />Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-72412727176076007672013-10-21T15:15:00.001-07:002013-10-21T16:57:38.250-07:00Resposta aos invasores que pegaram os beagles do instituto Royal<br />
<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="344" src="//www.youtube.com/embed/ttqo83-QeXc" width="459"></iframe>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-37638475361929223032013-03-22T07:43:00.001-07:002013-03-22T07:43:50.678-07:00Mozart : Violin Concerto No. 3 (Hilary Hahn) 03<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/Yd7rqyjirQQ" width="560"></iframe> <br />
<br />
<br />
<br />
http://hilaryhahn.com/<br />
<br />
http://pt.wikipedia.org/wiki/Hilary_Hahn#cite_note-13<br />
<br />
Ela escreve e divulga fotos das viagens que faz para suas apresentações em http://hilaryhahn.com/category/postcards-from-the-road/<br />
<br />
<br />Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-56353438508038299592013-03-20T08:21:00.000-07:002013-03-20T08:30:07.308-07:00Resumo Effective Java - Parte 3 (Classes e Interfaces) <div class="separator" style="clear: both; text-align: left;">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--></div>
<div class="separator" style="clear: both; text-align: left;">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>PT-BR</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabela normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-indent:8.5pt;
mso-line-height-alt:5.0pt;
mso-pagination:widow-orphan;
text-autospace:ideograph-other;
font-size:10.0pt;
font-family:"Calibri","sans-serif";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1027"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt; mso-bidi-font-family: Calibri;">Capítulo 4 – Classes e
Interfaces</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 13 – Minimize a acessibilidade de
classes e seus membros</span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 14 – Em classes públicas, utilize
métodos de acesso, não campos públicos</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 15 – Minimize a mutabilidade</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; text-indent: -0.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Sempre
que possível, crie classes imutáveis (não possuem métodos mutators (setters),
todos os campos são private, marcar os campos como final, a classe não pode ser
estendida, etc). Caso existam operações sobre seus atributos, retorne cópias da
classe com os novos valores e não modifique o estado interno.</span></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; text-indent: -0.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Pode-se
disponibilizar fabricas estáticas (Item 1) e prover cache de instancias que já
foram criadas. Todos os wrapper de primitivos funcionam dessa forma. </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-bidi-font-family: Calibri;">OBS:<span style="mso-spacerun: yes;"> </span>Observe que, ser imutável não implica
automaticamente que a classe é um singleton.<span style="mso-spacerun: yes;">
</span>Uma classe imutável pode ter várias instancias com valores diferentes na
memória. Diferente do singleton onde só existe uma instância da classe em
memória e seu estado interno não muda na criação.<span style="mso-spacerun: yes;"> </span>A abordagem de criar uma fábrica estática
pode ser utilizada em ambas as soluções. No singleton por motivos óbvios, e nas
classes imutáveis para fazer um controle mais refinado das instancias que serão
retornadas.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; text-indent: -0.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Concluindo,
resista à tentação de escrever um método set para cada get criado. Classes
devem ser imutáveis a não ser que exista uma boa razão para ser diferente disso.
</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 16 – Utilize composição ao invés da
herança</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-bidi-font-family: Calibri;">Herança viola o
encapsulamento. Subclasses dependem de detalhes de implementação de suas
superclasses e assim são suscetíveis às mudanças que podem ocorrer nestas. </span><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">Vejamos
um exemplo</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">// Broken - Inappropriate use of inheritance!</span></b></div>
<div class="MsoNormal" style="line-height: normal;">
<br /></div>
<div class="MsoNormal" style="line-height: normal;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public class InstrumentedHashSet<e> extends HashSet<e> {</e></e></span></div>
<div class="MsoNormal" style="line-height: normal;">
<br /></div>
<div class="MsoNormal" style="line-height: normal;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">// The number of attempted element insertions</span></div>
<div class="MsoNormal" style="line-height: normal;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">private int addCount = 0;</span></div>
<div class="MsoNormal" style="line-height: normal;">
<br /></div>
<div class="MsoNormal" style="line-height: normal;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public InstrumentedHashSet() {}</span></div>
<div class="MsoNormal" style="line-height: normal;">
<br /></div>
<div class="MsoNormal" style="line-height: normal;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public InstrumentedHashSet(int initCap, float loadFactor) {</span></div>
<div class="MsoNormal" style="line-height: normal;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>super(initCap, loadFactor);</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">@Override public boolean add(E e) {</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>addCount++;</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return
super.add(e);</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">@Override public boolean addAll(Collection c) {</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>addCount += c.size();</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return
super.addAll(c); </span>// Na implementação
original o addAll utiliza outro método publico </div>
<div align="center" class="MsoNormal" style="text-align: center;">
// da classe, o add. Quando
super.addAll é chamado vai executar o </div>
<div align="center" class="MsoNormal" style="text-align: center;">
// add. Por conta do polimorfismo, o add sobrescrito
aqui é que será </div>
<div align="center" class="MsoNormal" style="text-align: center;">
// chamado e incrementará o addCount duas vezes.</div>
<br />
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public int getAddCount() {</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return
addCount;</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal">
<br /></div>
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ansi-language: PT-BR; mso-bidi-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US;">Perceba como o problema é sutil. Perceba também
o efeito do polimorfismo! Mesmo chamando super.addAll quando esse método
executar vai chamar o add sobrescrito pela classe InstrumentedHashSet. O fato
do método addAll original utilizar um outro método publico (ou protegido) da
classe é um fator de fragilização da implementação. Deveria estar bem
documentado e quem fosse </span><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<div class="separator" style="clear: both; text-align: left;">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>PT-BR</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabela normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-indent:8.5pt;
mso-line-height-alt:5.0pt;
mso-pagination:widow-orphan;
text-autospace:ideograph-other;
font-size:10.0pt;
font-family:"Calibri","sans-serif";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1028"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l1 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">estender
a classe HashSet tem a obrigação de levar em consideração. Mas não se cobre
tanto. A API do Java tinha e ainda tem diversas classes com inúmeros problemas
de projeto. </span></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l1 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Novos
métodos podem ser acrescentados na superclasse e isso também pode quebrar o
funcionamento da subclasse. </span></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l1 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Um
bom substituto na maior parte dos casos onde herança pode ser aplicada é a
utilização do <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Decorator Pattern</i></b>.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 17 – Projete e documente para herança
ou então proíba</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-bidi-font-family: Calibri;">Herança é segura
quando utilizada em classes internas da API, sobre o controle da mesma equipe.
Se deixar uma classe da API passível de extensão deve-se tomar algumas precauções.</span></div>
<div class="MsoNormal">
<span style="mso-bidi-font-family: Calibri;">Uma classe
projetada para ser estendida deve documentar com precisão detalhes de
implementação de seus métodos públicos e protegidos. Mais precisamente, deve
documentar quando ela mesma fizer uso de seus próprios métodos. A documentação
deve incluir quais métodos utiliza, em qual sequencia e como o resultado de
cada invocação afeta o próximo processamento. Esta documentação aparece por
padrão iniciando pela frase “Esta implementação ...”. </span></div>
<div class="MsoNormal">
<span style="mso-bidi-font-family: Calibri;">Uma classe mais
segura para extensão nunca invoca algum método passível de sobreescrita (que é
a fonte de todo mal). </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public class Super {</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">// Broken - constructor invokes an overridable method</span></b></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-weight: bold;">private int array[];</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public Super() {</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">overrideMe();</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public void overrideMe() { </span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>array = {1,2,3,4}; //</span>O array nunca sera
inicializado quando a classe Sub for instanciada. O </div>
<div align="center" class="MsoNormal" style="text-align: center;">
//polimorfismo faz com que o
método chamado seja o overrideMe </div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
//sobrescrito.<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><br /></span></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span style="mso-ignore: vglayout;">
</span></div>
<table align="left" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td height="13" width="183"><br /></td>
</tr>
<tr>
<td><br /></td>
<td><br /></td>
</tr>
</tbody></table>
<span lang="EN-US" style="mso-ansi-language: EN-US;"> </span>
<br />
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}//fim da classe Super</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public final class Sub extends Super {</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">private final Date date; </span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">Sub() {</span></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">date = new Date(); //</span>Quando a classe Sub é
instanciada, primeiramente o constructor de Super é </div>
<div class="MsoNormal" style="text-align: left;">
// chamado. Este por sua vez
chama o método overrideMe sobrescrito na </div>
<div class="MsoNormal" style="text-align: left;">
// classe Sub, o qual depende da inicialização
de date que ainda não ocorreu.</div>
<div style="text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<br />
<div class="MsoNormal" style="line-height: normal; text-align: left;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">// Overriding method invoked by superclass constructor</span></b></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">@Override public void overrideMe() {</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">System.out.println(date);</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">}
//fim da classe Sub</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 18 – Prefira interfaces a classes
abstratas</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="mso-bidi-font-family: Calibri;">Há duas maneiras de se definir um tipo abstrato de dado em Java: com
classes abstratas ou através de interfaces. As principais diferenças são:</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<ul>
<li><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Interface
não admite implementar algum dos métodos declarados, uma classe abstrata sim.</span></li>
</ul>
<ul>
<li><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Para
definir um tipo usando classe abstrata é preciso fazer uso de herança, enquanto
que com interfaces basta implementar todos os métodos do contrato.</span></li>
</ul>
<br />
<div style="text-align: left;">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--></div>
<div style="text-align: left;">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>PT-BR</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabela normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-indent:8.5pt;
mso-line-height-alt:5.0pt;
mso-pagination:widow-orphan;
text-autospace:ideograph-other;
font-size:10.0pt;
font-family:"Calibri","sans-serif";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1030"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</div>
<ul>
<li><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Como
Java admite apenas herança simples, o uso de classes abstratas para definir
tipos fica seriamente comprometido.</span></li>
</ul>
<div style="text-align: left;">
</div>
<ul>
<li><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Classes
podem ser facilmente refatoradas para implementar uma interface, basta
acrescentar o <i style="mso-bidi-font-style: normal;">implements</i> e
implementar os métodos adicionais. Classes abstratas geram um efeito colateral
muito maior, forçando todos os descendentes estender a nova classe abstrata,
sendo isso apropriado ou não para eles. </span></li>
</ul>
<div style="text-align: left;">
</div>
<ul>
<li><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Interfaces
podem ser usadas para criar misturas de comportamentos não necessariamente
relacionados. <i style="mso-bidi-font-style: normal;">Comparable</i> é um tipo
que gera esse efeito. O tipo primário de uma classe pode não ter nada a ver com
o fato dela poder ser comparada com outros objetos mutualmente
equivalentes.<span style="mso-spacerun: yes;"> </span>Uma interface permite ir
adicionando comportamentos desejáveis sem ferir a coesão. Com a herança simples
isso não pode ser feito com o uso de classes abstratas.</span></li>
</ul>
<div style="text-align: left;">
</div>
<ul>
<li><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Criar
hierarquias de tipos através de herança é arriscado pois é uma decisão muito
forte que vai restringir seu projeto para sempre. Isso na maioria das vezes é
ruim porque, em geral, você não tem todas as informações sobre como uma classe
vai evoluir e nem quais serão todas as necessidades dos usuários num futuro
próximo. Na maioria das vezes, criar hierarquias mais flexíveis através de
interfaces é a melhor solução.</span></li>
</ul>
<div style="text-align: left;">
</div>
<div class="MsoListParagraph" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="mso-bidi-font-family: Calibri;">Apesar de interfaces não permitirem a implementação de métodos, isso
não impossibilita prover assistência aos programadores. Você pode combinar as
virtudes das interfaces e classes abstratas para criar classes abstratas com
esqueletos de implementação para cada interface não trivial que você pretende
exportar. A API de Collections utiliza extensivamente esse recurso através de
suas implementações padrão de AbstractCollection, AbstractList, AbstractSet e
AbstractMap. </span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;">//
Skeletal Implementation</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;">public
abstract class AbstractMapEntry<k><span style="mso-spacerun: yes;">
</span>implements Map.Entry<k> {</k></k></span></div>
<table align="left" cellpadding="0" cellspacing="0"><tbody>
<tr><td height="13" width="385"><br /></td></tr>
<tr><td><br /></td>
<td><br /></td>
</tr>
</tbody></table>
<br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"> </span>
<br />
<div class="MsoNormal" style="text-align: left; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>// Primitive operations</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>public abstract K getKey();</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>public abstract V getValue();</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>// Entries in modifiable maps must override
this method</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="mso-ignore: vglayout; position: relative; z-index: 251715584;"><span style="height: 68px; left: 0px; left: 380px; position: absolute; top: -5px; width: 321px;"></span></span><span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>public V
setValue(V value) {</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>throw new UnsupportedOperationException();</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>// Implements the general contract of
Map.Entry.equals</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>@Override public boolean equals(Object o) {</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>if (o == this)</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return true;</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>if (! (o instanceof Map.Entry))</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return false;</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>Map.Entry arg = (Map.Entry) o;</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return equals(getKey(), arg.getKey())
&& equals(getValue(), arg.getValue());</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>private static boolean equals(Object o1,
Object o2) {</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt;">return o1 == null ? o2 == null :
o1.equals(o2);</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>// Implements the general contract of
Map.Entry.hashCode</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="height: 68px; left: 0px; margin-left: 404px; margin-top: 1px; mso-ignore: vglayout; position: absolute; width: 200px; z-index: 251713536;"></span><span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>@Override
public int hashCode() {</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return hashCode(getKey()) ^
hashCode(getValue());</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>private static int hashCode(Object obj) {</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return obj == null ? 0 : obj.hashCode();</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: "Times New Roman","serif"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="mso-bidi-font-family: Calibri;">A grande vantagem dessa abordagem é que ela provê a assistência das
classes abstratas sem impor as restrições de quando se define um tipo somente
através destas. Para muitos implementadores da interface a escolhe óbvia é estender
a classe esqueleto, porém isso é estritamente opcional. Se uma classe não pode
estender a implementação esqueleto, ainda poderá implementar a interface e
delegar a execução de seus métodos para uma instância privada de uma classe
interna que estende da classe abstrata esqueleto (semelhante ao que foi feito
no item 16). </span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="mso-bidi-font-family: Calibri;">Para concluir, projete com cuidado suas interfaces. Uma vez que esta
for disponibilizada, é quase impossível alterá-la. Você tem que fazer certo da
primeira vez. Acrescentar um método tardiamente irá quebrar qualquer código que
faça uso da interface. Ter vários programadores na definição das interfaces é
uma boa estratégia. </span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 19 – Use interfaces apenas para
definir tipos</span></b></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="mso-bidi-font-family: Calibri;">Não usar interfaces como um container para acomodar constantes. </span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<b><span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">// Constant interface
antipattern - do not use!</span></b></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">public interface
PhysicalConstants {</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">// Avogadro's number
(1/mol)</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">static final double
AVOGADROS_NUMBER = 6.02214199e23;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">// Boltzmann constant (J/K)</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">static final double
BOLTZMANN_CONSTANT = 1.3806503e-23;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">// Mass of the electron
(kg)</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">static final double
ELECTRON_MASS = 9.10938188e-31;</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="font-family: "Times New Roman","serif"; font-size: 10.0pt; mso-fareast-language: PT-BR;">}</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="mso-bidi-font-family: Calibri;">Esse é um exemplo de mal uso de interfaces</span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 20 – Prefira hierarquia de classes a
usar flags</span></b></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="mso-bidi-font-family: Calibri;">É comum encontrarmos implementações inexperientes onde o comportamento
de uma classe é regido pelo valor de uma flag. Essa flag geralmente é passada
como parâmetro no construtor e vai decidir o comportamento da classe dentro de
seus métodos. Os métodos terão comandos <i style="mso-bidi-font-style: normal;">if</i>
ou <i style="mso-bidi-font-style: normal;">switch</i> em cada um dos valores
possíveis que a flag pode assumir. </span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span style="mso-bidi-font-family: Calibri;">Esse tipo de artifício é uma forma muito pobre de simular hierarquia
de classes, um dos principais conceitos da orientação a objetos. </span></div>
<div class="MsoNormal" style="text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 21 – Use <i style="mso-bidi-font-style: normal;">function objects</i> para representar estratégias</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l2 level1 lfo2; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Algumas
linguagens provêm maneiras para referenciar funções. Isso é útil, por exemplo,
para implementar o design pattern Strategy. Um método pode receber um ponteiro
para uma função a qual será chamada para executar alguma estratégia específica.
Uma classe que realiza ordenação poderia ser implementada dessa forma,
recebendo como parâmetro uma função com a implementação da estratégia de
comparação adequada.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l2 level1 lfo2; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Como
Java não possui ponteiros, o padrão Strategy pode ser implementado
declarando-se uma interface para representar a estratégia e uma classe que
implementa esta interface para cada estratégia concreta que exista. Essa classe
terá apenas um método e nenhum estado e é conhecida como um Function Object. No
exemplo do comparator (acima), uma interface definirá o método <i style="mso-bidi-font-style: normal;">compare</i> e para cada estratégia concreta
que exista haverá uma implementação dessa interface. Quando essa implementação
concreta é utilizada apenas uma vez, usualmente é definida como classe anônima.
Quando houver mais de uma utilização, poderá ser uma variável estática privada
exportada por um campo <i style="mso-bidi-font-style: normal;">public static
final </i>cujo tipo é a interface da estratégia.<span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 22 – Favoreça o uso de classes
internas estáticas</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-bidi-font-family: Calibri;">Existem 4 tipos de
classes internas (nested): classes estáticas, não estáticas, anônimas e classes
locais. </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l1 level1 lfo3; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Classes
estáticas: se a classe interna não precisa fazer nenhuma referência à sua
classe encapsuladora, então você <b style="mso-bidi-font-weight: normal;">deve</b>
fazê-la estática. Isso evita que uma referência extra à classe encapsuladora
seja criada e gerenciada pelo gc. Um exemplo seria uma classe enum que descreve
as operações suportadas por uma calculadora. A classe de enum<span style="mso-spacerun: yes;"> </span>Operation poderia ser criada e ser pública e
estática na classe Calculator. Clientes da classe Calculator poderiam
referenciar as operações usando nomes como Calculator.Operations.PLUS.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l1 level1 lfo3; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Classes
não estáticas: cada classe interna não estática possui uma referência implícita
à sua classe encapsuladora e assim pode chamar os métodos de instância ou usar
o <i style="mso-bidi-font-style: normal;">this</i>. Abaixo segue um exemplo de
seu uso:</span><b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"> </span></b></div>
<br />
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">// Typical use of a nonstatic member class</span></b><br />
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
</div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public class MySet<e> extends AbstractSet<e> {</e></e></span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">... // Bulk of the class omitted</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public Iterator<e> iterator() {</e></span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">return new MyIterator();</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-align: left;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">/*</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>PT-BR</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabela normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-indent:8.5pt;
mso-line-height-alt:5.0pt;
mso-pagination:widow-orphan;
text-autospace:ideograph-other;
font-size:10.0pt;
font-family:"Calibri","sans-serif";}
</style>
<![endif]-->
</span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
Uma classe utilitaria
que implementa um iterador para os elementos da classe principal. Como precisará
acessar os dados dessa classe principal, foi feita não estática.</div>
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">
*/</span><br />
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">private class MyIterator implements Iterator<e> </e></span></b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">{<span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt;">...</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l3 level1 lfo4; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Classes
anônimas: são úteis para a criação de <b style="mso-bidi-font-weight: normal;">function
objetcs </b>(item 21). </span></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l3 level1 lfo4; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Classes
locais: é a menos utilizada. Pode ser declarada da mesma maneira que variáveis
locais. </span></div>
Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-64909107613838546082013-03-20T07:34:00.000-07:002013-03-20T07:36:41.195-07:00Resumo Effective Java - Parte 2 (Métodos comuns a todos os objetos) <!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>PT-BR</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabela normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-indent:8.5pt;
mso-line-height-alt:5.0pt;
mso-pagination:widow-orphan;
text-autospace:ideograph-other;
font-size:10.0pt;
font-family:"Calibri","sans-serif";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1029"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
<br />
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;">Capítulo 3 – Métodos comuns a todos os objetos</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Item 8 – Obedecendo o
contrato do equals</b></div>
<div class="MsoNormal" style="line-height: normal;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; mso-list: l2 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Sempre que instâncias de uma classe precisarem
ser comparadas entre si e houver a noção de identidade que difere da mera
identidade entre objetos (ou seja, aquela que retorna verdadeiro meramente se
dois objetos forem iguais na memória), o método equals deve ser
implementado.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoListParagraph" style="line-height: normal; mso-list: l2 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Deve-se obedecer as seguintes regras (contrato)
ao sobreescrever o equals:</div>
<div class="MsoNormal" style="line-height: normal;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; margin-left: 1.0in; mso-list: l2 level2 lfo1; text-indent: -.25in;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New";"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Reflexividade: Dado x, x.equals(x) deve retornar
true.</div>
<div class="MsoListParagraph" style="line-height: normal; margin-left: 1.0in; mso-list: l2 level2 lfo1; text-indent: -.25in;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New";"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Simetria: Dado x e y, x.equals(y) deve retornar
true se e somente se y.equals(x) retornar true.</div>
<div class="MsoListParagraph" style="line-height: normal; margin-left: .75in; mso-list: l2 level2 lfo1; text-indent: 0in;">
<span style="font-family: "Courier New"; mso-fareast-font-family: "Courier New";"><span style="mso-list: Ignore;">o<span style="font: 7.0pt "Times New Roman";"> </span></span></span>Transitividade:
Dado x,y e z. Se x.equals(y) é true e y.equals(z) é true, então x.equals(z)
deve ser true.</div>
<div class="MsoNormal" style="line-height: normal;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; mso-list: l1 level1 lfo2; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Transitividade: Essa característica merece uma
atenção especial. A discussão que segue é longa e complicada, mas achei
importante acrescentar aqui. </div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
Numa
relação de herança, nada impede que uma subclasse acrescente atributos que
devem ser considerados na execução do equals. Isso gera inúmeros problemas!
Vejamos o código abaixo:</div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span style="mso-ignore: vglayout;">
</span></div>
<table align="left" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td height="1" width="37"><br /></td>
<td width="370"><br /></td>
<td width="11"><br /></td>
<td width="291"><br /></td>
</tr>
<tr>
<td height="1"><br /></td>
<td bgcolor="white" height="323" rowspan="3" style="background: white; border: .4996pt solid black; vertical-align: top;" width="371"><span style="mso-ignore: vglayout; position: absolute; z-index: 251670528;">
<table cellpadding="0" cellspacing="0" style="width: 100%px;">
<tbody>
<tr>
<td><div class="shape" style="padding: 4.0996pt 7.6996pt 4.0996pt 7.6996pt;">
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">public class Point {</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;">
</span>private final int x;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;">
</span>private final int y;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;">
</span>public Point(int x, int y) {</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">this.x = x;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">this.y = y;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">}</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">@Override public boolean equals(Object o)
{</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;">
</span>if (!(o instanceof Point))</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;">
</span>return false;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;">
</span>Point p = (Point)o;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;">
</span>return p.x == x && p.y == y;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">}</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">... // Remainder omitted</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">}</span></div>
<div class="MsoNormal">
<br /></div>
</div>
</td>
</tr>
</tbody></table>
</span> </td>
</tr>
<tr>
<td height="288"><br /></td>
<td><br /></td>
<td bgcolor="white" height="288" style="background: white; border: .4996pt solid black; vertical-align: top;" width="292"><span style="mso-ignore: vglayout; position: absolute; z-index: 251671552;">
<table cellpadding="0" cellspacing="0" style="width: 100%px;">
<tbody>
<tr>
<td><div class="shape" style="padding: 4.0996pt 7.6996pt 4.0996pt 7.6996pt;">
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">public class ColorPoint extends Point {</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">private final Color color;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">public ColorPoint(int x, int y, Color
color) {</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">super(x, y);</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">this.color = color;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: PT-BR;">}</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: PT-BR;">... // Remainder omitted</span></div>
<div class="MsoNormal" style="line-height: normal; text-indent: 0in;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: PT-BR;">}</span></div>
<div class="MsoNormal">
<br /></div>
</div>
</td>
</tr>
</tbody></table>
</span> </td>
</tr>
<tr>
<td height="34"><br /></td>
</tr>
</tbody></table>
<br />
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
</div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
O funcionamento
que esperamos é que consigamos comparar intercaladamente pontos e pontos
coloridos através do método equals. Afinal, são todos pontos.<span style="mso-spacerun: yes;"> </span>Mas como ColorPoint acrescentou uma
informação a mais à sua identidade, esta deve ser considerada. Como implementar
o equals para a classe ColorPoint? Vejamos algumas soluções. </div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
1<span style="font-family: "Courier New"; font-size: 10.0pt;"> - Comparar apenas objetos
da mesma classe: </span></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">// Broken - violates symmetry!</span></b></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">@Override public boolean equals(Object o) {</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">if (!(o instanceof ColorPoint))</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; margin-left: 35.35pt; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">return false;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; margin-left: 35.35pt; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; margin-left: 35.35pt; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">return super.equals(o)
&& ((ColorPoint) o).color == color;</span></b></div>
<div class="MsoNormal" style="line-height: normal; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-indent: 35.4pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: PT-BR;">}</span></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
Esse
código viola a simetria. Point.equals(ColorPoint) retornará true se as
coordenadas forem as mesmas mas ColorPoint.equals(Point) sempre retornará
false. </div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
2 – Não
considerar informação de cor em comparações misturadas</div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
Resolve o
problema da simetria mas ao custo da transitividade</div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">// Broken - violates transitivity!</span></b></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">@Override public boolean equals(Object o) {</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">if (!(o instanceof Point))</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; margin-left: 35.35pt; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">return false;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-tab-count: 1;"> </span></span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">if (!(o instanceof ColorPoint))</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; margin-left: 35.35pt; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">return o.equals(this); //<b style="mso-bidi-font-weight: normal;">nao considera cor se Object for Point</b></span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-tab-count: 1;"> </span></span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">return super.equals(o) &&
((ColorPoint) o).color == color;</span></b></div>
<div class="MsoNormal" style="line-height: normal; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">}</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">ColorPoint p1 = new ColorPoint(1, 2,
Color.RED);</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">Point p2 = new Point(1, 2);</span></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">ColorPoint p3 = new ColorPoint(1, 2,
Color.BLUE);</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<b style="mso-bidi-font-weight: normal;">P1.equals(P2) retorna true = > chama o
equals do ColorPoint na linha “return o.equals(this)”</b></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<b style="mso-bidi-font-weight: normal;">P2.equals(P3) retorna true => chama o
equals do Point</b></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<b style="mso-bidi-font-weight: normal;">P1.equals(P3) retorna false => retorna
falso pois são ColorPoint de cores diferentes</b></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span style="mso-bidi-font-family: Calibri; mso-bidi-font-weight: bold; mso-fareast-language: PT-BR;">3 – Usando o getClass<span style="mso-spacerun: yes;"> </span>ao invés do
instanceOf</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">// Broken - violates Liskov substitution
principl</span></b></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;">@Override public boolean equals(Object o) {</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<br /></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.4pt;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;"> </span>if (o
== null || o.getClass() != getClass())</span></b></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<b><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;">
</span>return false;</span></b></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;"> </span>Point
p = (Point) o;</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; mso-vertical-align-alt: auto; text-align: left; text-autospace: none; text-indent: 35.45pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: PT-BR;"><span style="mso-spacerun: yes;">
</span>return p.x == x && p.y == y;</span></div>
<div class="MsoNormal" style="line-height: normal; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-indent: 35.4pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-language: PT-BR;">}</span></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
O código
acima compara apenas objetos da mesma classe.<span style="mso-spacerun: yes;">
</span><b style="mso-bidi-font-weight: normal;">O princípio da substituição de
Liskov diz que qualquer propriedade importante para um tipo deve valer também
para o subtipo.</b> Assim, qualquer método escrito para um tipo, deve funcionar
corretamente nos seus subtipos. A implementação do equals, na classe Point, na
forma acima, viola esta propriedade. Qualquer subclasse criada a partir de
Point e que precisar (e puder) usar o equals da classe Point, não vai
funcionar. Sempre que esta nova classe for comparada com a classe Point irá
retornar false, independentemente se a comparação dos atributos estiver
válida.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
<b style="mso-bidi-font-weight: normal;">Não há um meio satisfatório de estender uma
classe, adicionar um atributo e ainda a relação de identidade continuar
funcionando.</b></div>
<div class="MsoListParagraph" style="line-height: normal; text-indent: 0in;">
A melhor
solução para isso é: ao invés de fazer herança, optar por <b style="mso-bidi-font-weight: normal;">composição</b>. Concluímos que, toda vez que uma classe é estendida e
um novo atributo adicionado, isso vai quebrar o método equals implementado na
superclasse. Quando uma comparação for feita entre um objeto da <b style="mso-bidi-font-weight: normal;">sub.equals(super)</b>, o método da
subclasse vai querer utilizar para comparação um atributo que só ela tem.</div>
<div class="MsoNormal" style="line-height: normal; text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal;">
Evitamos isso utilizando
composição ao invés de herança:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">// Adds a value component without violating the equals
contract</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public class ColorPoint {</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>private final
Point point;</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>private final
Color color;</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>public
ColorPoint(int x, int y, Color color) {</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>if (color ==
null)</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>throw new
NullPointerException();</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>point = new Point(x, y);</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>this.color =
color;</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">@Override public boolean equals(Object o) {</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>if (!(o
instanceof ColorPoint))//Como herança não está envolvida, não é </span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return false; //preciso permitir a comparação de Point com</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"> //ColorPoint </span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>ColorPoint cp =
(ColorPoint) o;</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>return
cp.point.equals(point) && cp.color.equals(color);</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">... // Remainder omitted</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-indent: 0in;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">}</span></div>
<div class="MsoNormal">
<br /></div>
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">OBS.: <span style="font: 7.0pt "Times New Roman";"></span></span></span>Sempre comparar double com <b>Double.compare</b> e
float com <b>Float.compare</b>
<br />
<div class="MsoNormal" style="line-height: normal;">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">Item 9 – Hashcode</span></b></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoListParagraph" style="line-height: normal; mso-list: l1 level1 lfo2; text-autospace: none; text-indent: -.25in;">
<span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">Algoritmo para gerar hashcode:</span></div>
<div class="MsoListParagraph" style="line-height: normal; text-autospace: none; text-indent: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">1.
Store some constant nonzero value, say, 17, in an int variable called result.</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">2. For
each significant field f in your object (each field taken into account by the
equals method, that is), do the following:</span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">a.
Compute an int hash code c for the field:</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">i. If the field is a boolean, compute (f ? 1 : 0).</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">ii. If the field is a byte, char, short, or int, compute (int) f.</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">iii. If the field is a long, compute (int) (f ^ (f >>> 32)).</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">iv. If the field is a float, compute Float.floatToIntBits(f).</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">v. If the field is a double, compute Double.doubleToLongBits(f), and</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">then hash the resulting long as in step 2.a.iii.</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">vi. If the field is an object reference and this class’s equals method
compares the field by recursively invoking equals, recursively invoke hashCode
on the field. If a more complex comparison is required, compute a “canonical
representation” for this field and invoke hashCode on the canonical
representation. If the value of the field is null, return 0 (or some other
constant, but 0 is traditional).</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">vii. If the field
is an array, treat it as if each element were a separate field. That is,
compute a hash code for each significant element by applying these rules
recursively, and combine these values per step 2.b. If every element in an
array field is significant, you can use one of the Arrays.hashCode methods
added in release 1.5.</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">b. Combine the hash code c computed in step 2.a into
result as follows: <b style="mso-bidi-font-weight: normal;">result = 31 * result
+ c;</b></span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">3. Return result.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">4. When you are finished writing the hashCode method,
ask yourself whether equal instances have equal hash codes. Write unit tests to
verify your intuition!</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri;">Ex:</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">//
Lazily initialized, cached hashCode</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">private
volatile int hashCode;<span style="mso-spacerun: yes;"> </span>// (See Item 71)</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<br /></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">@Override
public int hashCode() {</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>int result = hashCode;</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>if (result == 0) {</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>result = 17;</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>result = 31 * result + areaCode;</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>result = 31 * result + prefix;</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>result = 31 * result + lineNumber;</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: "Courier New"; font-size: 10.0pt;">hashCode = result;</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>return
result;</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 13 – Classes e Interfaces</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l0 level1 lfo3; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Atributos
devem ser PRIVADOS.</span></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l0 level1 lfo3; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Uma
exceção pode ser as constantes. Campos <b style="mso-bidi-font-weight: normal;">public
static final</b> SEMPRE devem apontar para primitivos ou objetos imutáveis. Se
não apontarem para objetos imutáveis, apesar da referencia não poder ser
alterada, o objeto poderá! Um array é sempre mutável e assim nunca deve ser
criado como constante. </span></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l0 level1 lfo3; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><span style="mso-bidi-font-family: Calibri;">Exemplo
de como disponibilizar um array privado de forma que continue imutável:</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">private static final Thing[] PRIVATE_VALUES = { ... };</span></div>
<div align="left" class="MsoNormal" style="line-height: normal; text-align: left; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public static final
List<thing> VALUES = Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES));</thing></span><span lang="EN-US" style="mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<br /></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">ou</span></div>
<div class="MsoNormal" style="text-indent: 28.35pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">private static final Thing[] PRIVATE_VALUES = { ... };</span></div>
<div class="MsoNormal" style="line-height: normal; text-autospace: none; text-indent: 28.35pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-US;">public static final Thing[] values() {<span style="mso-spacerun: yes;"> </span>return PRIVATE_VALUES.clone();<span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 10 – Sempre sobreescreva toString</span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 11 – Sobreescreva o método clone com
cuidado</span></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="mso-bidi-font-family: Calibri;">Item 12 – Considere implementar a
interface Comparable</span></b></div>
Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-18891803231899097982013-03-20T06:57:00.000-07:002013-03-20T07:09:49.983-07:00Resumo Effective Java - Parte 1 (Criando e destruindo objetos)<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>PT-BR</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabela normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-indent:8.5pt;
mso-line-height-alt:5.0pt;
mso-pagination:widow-orphan;
text-autospace:ideograph-other;
font-size:10.0pt;
font-family:"Calibri","sans-serif";}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;">Vou começar aqui uma série de postagens com o resumo<b> </b>recente que fiz do livro Effective Java, 2nd Edition. Para quem não conhece, é um livro bem recomendado na comunidade Java e alguns dizem que de leitura obrigatória. A Caleum faz comentários no seu blog <a href="http://blog.caelum.com.br/effective-java-segunda-edicao/">http://blog.caelum.com.br/effective-java-segunda-edicao/</a>.</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;">O livro tem em torno de 350 páginas e o resumo ficou em 33. Eu presumo um certo conhecimento da linguagem e por isso não abordo explicações que achei muito básicas. Apesar disso, em alguns momentos, para assuntos mais difíceis, faço uma fundamentação teórica antes de falar das dicas do Joshua Bloch. </span></span><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;"><br /></span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;"></span></span><span style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;">Os dois últimos capítulos, que tratam respectivamente sobre concorrência e serialização, ficaram sem resumo. Se alguém se habilitar em fazer e me repassar para complementar o conteúdo será muito bem vindo. Bem vindas também são as críticas e sugestões. Gostaria de saber se o texto ficou claro e didático suficiente e coisas do gênero.</span></span></div>
<div class="MsoNormal">
<span style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;"><br /></span></span></div>
<div class="MsoNormal">
<span style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;">Espero que gostem e boa leitura!</span></span></div>
<div class="MsoNormal">
<span style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;"> </span></span><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;"> </span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-size: 12.0pt;">Capítulo 2 – Criando e destruindo objetos</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Item 1 – Static
factories ao invés de construtores</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l4 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Um método estático que retorna uma instancia da
classe </div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l4 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Semanticamente faz mais sentido do que ter que
entender vários construtores com o mesmo nome que só variam os argumentos</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l4 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Não precisam sempre instanciar um objeto novo.
Facilitam o gerenciamento das instancias da classe e a criação de classes
imutáveis. Uma classe imutável permite a comparação dessa forma x == y invés de
usar o equal com hashcode, o que melhora performance. </div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l4 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Mantém a API mais enxuta uma vez que restringe a
necessidade do usuário da API ter conhecimento de todas as classes concretas
que existe. Isso ocorre, pois um método static factory method não precisa
necessariamente retornar uma instancia da classe, mas pode retornar qualquer
subinstancia. Por exemplo, a classe Collections retorna 32 implementações de
conveniência da interface Collection. Essas implementações concretas nem são
disponibilizadas em documentações como parte da API, pois todas implementam a
interface e basta assim liberar documentação apenas disso (como deveria mesmo
ser).</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l4 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Conceito de service provider framework: os
métodos fábrica podem, inclusive, retornar uma classe que não existe no
momento. É o caso da API JDBC, onde as implementações concretas são adicionadas
depois e registradas para poderem ser utilizadas.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l4 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Map <String, List<String>> m =
HashMap.newInstance(); -> o compilador infere e retorna uma instância
correta da classe. </div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l4 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Map<String, List<String>> m = new
HashMap<String, List<String>>(); - > o constructor não consegue
(ainda) fazer esse tipo de inferência.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Item 2 – Builder
classes</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Classes com muitos parâmetros de inicialização
devem usar Builder</div>
<div class="MsoNormal">
<br /></div>
<div align="left" class="MsoNormal" style="text-align: left; text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">public interface Builder<t> {</t></span></div>
<div align="left" class="MsoNormal" style="margin-left: 35.4pt; text-align: left; text-indent: 35.4pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;">T build();</span></div>
<div align="left" class="MsoNormal" style="text-align: left; text-indent: 35.4pt;">
}</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>O construtor do Builder tem os atributos
obrigatórios.</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Métodos setters têm os atributos opcionais e
retornam o próprio Builder, o que permite interface fluente</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>O método build() retorna a classe concreta e
pode fazer validações</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Item 3 – Singleton</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l3 level1 lfo3; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>public static final Tipo INSTANCE = new
Tipo();<span style="mso-spacerun: yes;"> </span>+ construtor privado</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l3 level1 lfo3; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>o static garante que será executado assim que a
classe for carregada pelo class loader</div>
<div class="MsoNormal">
ou </div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l3 level1 lfo3; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>private static final Tipo INSTANCE = new
Tipo()<span style="mso-spacerun: yes;"> </span>+ public static Tipo
getInstance() + construtor privado</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l3 level1 lfo3; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>o getInstance() tem que ser static já que
retorna variável estática</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; text-indent: 0in;">
<br /></div>
<div class="MsoNormal">
As duas abordagens acima não preveem contra a evocação do
construtor privado através de reflexão e requerem cuidados especiais para que
durante a deserialização não seja criada outra instância.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l2 level1 lfo4; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>A terceira opção é a preferida -> Utilizar
uma Enum com apenas um elemento. Isso protege contra ataque através de reflexão
e serialização.</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; text-indent: 0in;">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Item 4 – Garanta não
instabilidade através de construtores privados</b></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Item 5 – Criação
desnecessária de objetos</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l2 level1 lfo4; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Nunca fazer <b style="mso-bidi-font-weight: normal;">String
x = new String(“teste”);</b> mas sim, <b style="mso-bidi-font-weight: normal;">String
x = “teste”;</b></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l2 level1 lfo4; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Autoboxing sempre gera uma instância wrapper de
um primitivo => prefira primitivos</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Item 6 – Eliminar
referências obsoletas</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l1 level1 lfo5; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Quando usando arrays e coleções ficar atento
para setar para null posições que não devem conter mais nada.</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l1 level1 lfo5; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Sempre que o programa gerenciar sua própria
memória pode haver problema nesse sentido.</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l1 level1 lfo5; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Por exemplo, se seu programa cria um array que
servirá como pilha, terá que gerenciar o crescimento e encurtamento desse
array. Nesse processo, elementos serão retirados da pilha e, se essas posições
do array não forem inutilizadas atribuindo-se null, estas representarão
referências a objetos que, na verdade, não serão mais utilizados e que não
serão detectados pelo garbage collector.<span style="mso-spacerun: yes;">
</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;">Item 7 – Não usar
finalizers </b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l5 level1 lfo6; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Ou seja, não depender do método finalize()!</div>
<div class="MsoListParagraph" style="margin-left: 44.5pt; mso-list: l5 level1 lfo6; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Ao invés disso, escrever um método explícito em
sua classe que deverá ser chamado quando liberação de recursos for necessária.
Nesse caso, os outros métodos da classe devem verificar se esta já foi
finalizada (flag private) e, se for o caso, disparar uma IllegalStateException.</div>
Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-26091000542569117762012-12-23T18:20:00.000-08:002016-06-23T06:55:48.736-07:00The Big Bang Theory<div style="line-height: 100%; margin-bottom: 0cm; page-break-before: always;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;">Geralmente na época de acontecer a premiaçã<span style="font-size: small;">o do Emmy a Warner <span style="font-size: small;">lança algum concurso cultural. A<span style="font-size: small;">no passado <span style="font-family: "times new roman" , serif;">a ideia era </span><span style="font-size: small;"><span style="font-size: small;">escrever um texto dizendo por que a série merecia ganhar o prêmio. </span></span></span></span></span></span></span></span></span></span></div>
<div style="line-height: 100%; margin-bottom: 0cm; page-break-before: always;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBufWu_7gleJx3ehULY8K5oHwUNI5Jv1z_kPxoFWXG-UEHwm13w3wNugIPY00IyCxaC_bygbfTGMgsSVs2fu8TfQsjbYpwjo3sfjHeGJ5pmsMnTULWw3ZHRrAorgULfYDE0pmc/s1600/bigbangtheory.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBufWu_7gleJx3ehULY8K5oHwUNI5Jv1z_kPxoFWXG-UEHwm13w3wNugIPY00IyCxaC_bygbfTGMgsSVs2fu8TfQsjbYpwjo3sfjHeGJ5pmsMnTULWw3ZHRrAorgULfYDE0pmc/s1600/bigbangtheory.jpg" /></a></div>
<div style="line-height: 100%; margin-bottom: 0cm; page-break-before: always;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm; page-break-before: always;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"> </span></span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </div>
<div style="line-height: 100%; margin-bottom: 0cm; page-break-before: always;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm; page-break-before: always;">
<br /></div>
<div style="line-height: 100%; margin-bottom: 0cm; page-break-before: always;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">(Leonard pergunta <span style="font-family: "times new roman" , serif;">à</span>
Sheldon) – Sheldon, quem você acha que ganhará o Emmy este ano?</span></span></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">(Sheldon
olha para Leonard com seu ar de desprezo e descrença no que está
ouvindo) – Ora Leonard, não seja ridículo, é claro que seremos
nós. </span></span>
</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">Leonard
– E por que está tão certo disso?</span></span></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">Shledon
– A academia chama-se Academy of Television Arts & Sciences
(falando com ênfase no Sciences ) e quem melhor para representar a
ciência do que e........ (faz uma pausa abrupta e tira o sorrisinho
da cara quando diz) nós. </span></span>
</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">Leonard
– E …...????</span></span></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">Sheldon
- O símbolo do prêmio foi escolhido em 1948 e foi projetado pelo
engenheiro Louis McManus que usou sua esposa como modelo. A estatueta
é uma mulher alada, representando as artes, e que está segurando
majestosamente sobre sua cabeça a gloriosa peça fundamental de toda
a matéria conhecida desde o big bang. </span></span>
</div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">(Leonard
olha com expressão de dúvida)</span></span></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">Sheldon
responde secamente – Um átomo Leonard!!</span></span></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">Leonard
– Não sei Sheldon, não tenho certeza que isso será suficiente.</span></span></div>
<div style="line-height: 100%; margin-bottom: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=21711004" name="result_box"></a>
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">Sheldon – O nome
Emmy vem de Immy, um termo comumente usado na época para designar um<span lang="pt-PT">
tubo coletor, mais sensível do que o iconoscópio, que utiliza um
feixe de elétrons de baixa velocidade para digitalizar um mosaico
fotoativo. Cada estatueta pesa seis libras, leva cinco horas e meia
para ser feita e …....... (Sheldon faz um suspense e fala mais
baixo como revelando o segredo definitivo do porquê eles ganharão)
e seu principal componente é </span><span lang="pt-PT"><b>copper.
</b></span><span lang="pt-PT">(trocadilho com o nome do Sheldon que é
Sheldon Lee Cooper)</span></span></span><br />
</div>
<div lang="pt-PT" style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;">Leoanard
de início não entende mas logo depois cai a fix<span style="font-family: "times new roman" , serif;">a. Faz cara de incrédulo com a modé<span style="font-family: "times new roman" , serif;">sti<span style="font-family: "times new roman" , serif;">a de costume do Sheldon. </span></span></span></span></span><br />
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;"><span style="font-family: "times new roman" , serif;"> </span> </span></span></div>
<div lang="pt-PT" style="line-height: 100%; margin-bottom: 0cm;">
<span style="font-family: "times new roman" , serif;"><span style="font-size: small;"> </span></span>
</div>
<div lang="pt-PT" style="line-height: 100%; margin-bottom: 0cm;">
<br /></div>
Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-59092736111827727132012-10-22T16:25:00.002-07:002014-08-13T07:58:12.603-07:00A pessoa mais bela<div style="text-align: justify;">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>PT-BR</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabela normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:none;
mso-hyphenate:none;
text-autospace:ideograph-other;
font-size:12.0pt;
font-family:"Times New Roman","serif";
mso-bidi-font-family:"Lohit Hindi";
mso-font-kerning:1.5pt;
mso-fareast-language:ZH-CN;
mso-bidi-language:HI;}
</style>
<![endif]-->
</div>
<div class="Standard" style="text-align: justify;">
<br />
De todas as pessoas que existem no mundo há o grupo das mais
belas de todas. E esse grupo não é necessariamente formado pelas mais bem
ornamentadas, tratadas, lapidadas ou amadas. Não senhores, não tem nada a ver
com isso, apesar dessas aí também poderem participar. Não é fácil encontrar as
pessoas desse grupo. Tem quem as procure desde sempre e aqueles que só dão
conta que existem por um gracejo da sorte. Há aquelas que se fecharam,
endureceram e cegaram a visão, e<span style="mso-spacerun: yes;"> </span>aquelas
que as encontram frequentemente, a cada novo desconhecido que aparece. Elas são
como aquelas plantinhas brancas em forma de guarda-chuva que se despregam e
ficam plainando. É bonito de se ver mas quando tentamos pegar uma, conseguimos
é afastá-la ainda mais. Não dá para pegar uma que não seja sua. Mas não se
preocupe, quando ela aparecer vai tudo ocorrer naturalmente e o seu beijo vai
despertá-la. Quer dizer, pode não ser tão naturalmente assim. Essa pessoa pode
não ser tão parecida com aquela que você projetou como ideal. E isso acontece porque nem nós mesmos nos conhecemos de verdade. E é aí que entra a
grande magia. Essa pessoa vai te ajudar nisso. Na verdade vai te
forçar a isso. E você vai ficar de joelhos sem saber o que fazer. Vai ter que
amolecer o seu coração duro e até chorar. Talvez vá querer correr longe, se
consultar com um monge ou apenas terá vontade de escrever como está se
sentindo. Vocês vão sentar de ladinho, falar de um monte de coisas, concordar
em algumas, discordar de outras, mas tudo fará o maior sentido. E todas essas
coisas que você sempre achou uma grande bobeira terá valido sua vida inteira.
Pode ser que vocês fiquem juntos. Pode ser que não. De qualquer forma, dali em
diante, você terá conhecido a felicidade e nunca mais será o mesmo.</div>
Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-71852749768127872172011-05-25T08:53:00.000-07:002011-05-25T11:35:33.589-07:00Under Cover of Darkness - The Strokes<div class="separator" style="clear: both; text-align: center;"><object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://0.gvt0.com/vi/_l09H-3zzgA/0.jpg" height="349" width="560"><param name="movie" value="http://www.youtube.com/v/_l09H-3zzgA&fs=1&source=uds" /><param name="bgcolor" value="#FFFFFF" /><embed width="560" height="349" src="http://www.youtube.com/v/_l09H-3zzgA&fs=1&source=uds" type="application/x-shockwave-flash"></embed></object></div><br />
<style type="text/css">
.trad {
font-size: 13px;
line-height: 1.5;
width: 580px;
}
.trad h3 {
font-size: 22px;
font-style: italic;
margin: 0;
padding-bottom: 10px;
text-align: inherit;
}
.trad div {
overflow: hidden;
}
#letra_original div, #letra_traducao div {
margin-bottom: 3px;
}
#letra_original, #letra_traducao {
float: left;
padding: 10px;
width: 220px;
}
#letra_original, #letra_original h3 {
color: #A3A3A3;
}
#letra_original {
text-align: left;
}
#letra_traducao {
color: #686868;
text-align: left;
}
</style><br />
<br />
<div class="trad"><div id="letra_original"><h3>Under Cover Of Darkness</h3><div>Slip back out of whack at your best</div><div>It's a nightmare</div><div>So I'm joining the army</div><div>Know how folks back out, I still call</div><div>Will you wait for me now?</div><div>We got the right to live, fight to use it</div><div>Got everything but you can just choose it</div><div style="height: 39px;">I won't just be a puppet on a string</div><br />
<div>Don't go that way</div><div>I'll wait for you</div><br />
<div>And I'm tired of all your friends</div><div>Listening at your door</div><div>And I want, what's better for you</div><div>So long my friend and adversary</div><div>But I'll wait for you</div><br />
<div style="height: 39px;">Get dressed jump out of bed and do it best</div><div>Are you ok?</div><div>I've been out around this town</div><div style="height: 39px;">Everybody's singing the same song for ten years</div><br />
<div>I'll wait for you</div><div>Will you wait for me too?</div><br />
<div>And they sacrifice their lives</div><div>In the land of all closed eyes</div><div style="height: 39px;">I've been saying a billion times, and I'll say it again</div><div>So long, my end</div><div>The sorry embrace</div><br />
<div>(solo)</div><br />
<div>Don't go that way</div><div>I'll wait for you</div><br />
<div>I'm tired of all your friends</div><div>Knocking down your door</div><div>Get up in the morning and give it your all</div><div>So long my friend and adversary</div><div>I'll be waiting for you</div></div><h3>Sob o Manto da Escuridão</h3><div>Caia fora do ridículo com o seu melhor</div><div>É um pesadelo</div><div>Então, eu estou me juntando ao exército</div><br />
<div>Saiba como o seu pessoal volta atrás, eu ainda chamo</div><div>Será que você vai me odiar agora?</div><br />
<div>Nós temos o conselho mais correto para usar</div><div>Temos tudo, mas você pode escolher</div><div>Eu não vou me amarrar como uma marionete em uma corda</div><br />
<div>Não vá por esse caminho.</div><div>Eu vou esperar por você.</div><br />
<div>E eu estou cansado de todos os seus amigos</div><div>Ouvindo na sua porta</div><div>E eu não estou, é melhor eu ligar para você.</div><br />
<div>Até logo, meu amigo e adversário.</div><div>Mas eu vou chamar você.</div><br />
<div>Se arrume e pule pra fora da cama e faça o seu melhor</div><div>Você está bem?</div><div>Eu estive rodando por esta cidade</div><div>Todo mundo esteve cantando a mesma música por dez anos</div><br />
<div>Eu vou esperar por você.</div><div>Você vai esperar por mim também?</div><br />
<div>E eles sacrificam suas vidas</div><div>Na nossa terra todos estão com os olhos fechados.</div><div>Eu venho dizendo que estamos derrotados, não vou dizer de novo.</div><div>Até logo, meu fim.</div><div>O abraço de desculpas</div><br />
<div>Não vá por esse caminho.</div><div>Eu vou esperar por você.</div><br />
<div>Eu estou cansado de todos os seus amigos,</div><div>Batendo em sua porta.</div><div>Levante-se pela manhã, dê tudo de si</div><div>Até logo, meu amigo e adversário.</div>Eu vou esperar por você<br />
<br />
</div>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-20765491758111062592011-02-09T04:22:00.000-08:002014-08-13T08:49:18.597-07:00Pound of Flesh<span class="" id="result_box" lang="pt"><span class="hps" title="Clique para mostrar traduções alternativas"><iframe frameborder="0" height="390" src="http://www.youtube.com/embed/LRUIiwaS0_4" title="YouTube video player" width="480"></iframe><br />
<br />
Olha só as ideias que a Regina mistura nessa música. Ezra Pound foi um poeta anti-semita nascido em 1885 nos EUA. Na música o Ezra senta na cama de alguém e pede que reponha "a pound of flesh" (uma libra de carne) nos seus ossos que estão aparecendo. Mas esse termo, "uma libra de carne", não está em nenhuma p</span></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjophrAgxf8d8YlghUOtGTCA-Lmuz-c4FSXoWKATNwdlkCCGm0hi476VbUMlZV44CMjk1fx7L539itsgGLP0Z8BuGik8Hd_WS0XwcI-l4Yu26Jy4xt_CdCg1rdkC73wnE37QjXc/s1600/ezra_pound.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjophrAgxf8d8YlghUOtGTCA-Lmuz-c4FSXoWKATNwdlkCCGm0hi476VbUMlZV44CMjk1fx7L539itsgGLP0Z8BuGik8Hd_WS0XwcI-l4Yu26Jy4xt_CdCg1rdkC73wnE37QjXc/s400/ezra_pound.jpg" id="BLOGGER_PHOTO_ID_5571667315104740978" style="cursor: pointer; float: right; height: 90px; margin: 0pt 0pt 10px 10px; width: 147px;" /></a><span class="" id="result_box" lang="pt"><span class="hps" title="Clique para mostrar traduções alternativas">oesia do Ezra. Está na peça O Mercador de Veneza, do </span></span><span class="" id="result_box" lang="pt"><span class="hps" title="Clique para mostrar traduções alternativas">Shakespeare</span>. Nessa peça um judeu diz essa expressão "give to me a pound of flesh" cobrando de uma outra pessoa. A ironia é que o Ezra era anti-semita e a Regina saca tudo isso e o coloca na música no lugar do judeu, pedindo um punhado de carne. </span><br />
<br />
Segue a letra em ingles e a tradução que encontrei em portugues:<br />
<br />
<h2>
Regina Spektor Pound Of Flesh </h2>
if you're never sorry<br />
then you can't be forgiven<br />
if you're not forgiven<br />
then you can't be forgotten<br />
if you're not forgotten<br />
then you can live forever<br />
if you live forever<br />
then you'll begin to dream<br />
of death...<br />
<br />
ezra pound sat upon my bed<br />
asked me which books as of late I've read<br />
<br />
ezra pound sat upon my bed<br />
asked me which books as of late I've read<br />
asked me if I've read his own<br />
and whether I could spare a pound<br />
of flesh to cover his bare bones<br />
I says, man, take a pound, take two<br />
what's a pound of flesh between<br />
friends like me and you?<br />
what's a pound of flesh among friends?<br />
<br />
but if you're never sorry...<br />
<br />
if you're never sorry<br />
then you can't be forgiven<br />
if you're not forgiven<br />
then you can't be forgotten<br />
if you're not forgotten<br />
then you must live forever<br />
if you live forever<br />
you cannot be reborn<br />
if you're not reborn then<br />
you can't be a baby<br />
if you're not a baby<br />
you can't learn how to crawl<br />
if you cannot crawl away<br />
then you must stay in bed all day<br />
if you stay in bed all day<br />
you're sure to have some visitors<br />
<br />
ezra pound'll sit upon your bed<br />
ask you which books as of late you have read<br />
ask you if you've read his own<br />
and whether you could spare a pound<br />
of flesh to cover his bare bones<br />
you'll say, man, take a pound, take two<br />
what's a pound of flesh between<br />
friends like me and you?<br />
what's a pound of flesh among friends?<br />
<br />
<h2>
Regina Spektor Pound Of Flesh </h2>
Se você nunca está arrependido<br />
Então você não pode ser perdoado<br />
Se você não está perdoado<br />
Então você não pode ser esquecido<br />
<br />
Se você não está esquecido<br />
Então você pode viver para sempre<br />
Se você vive para sempre<br />
Então você começa a sonhar com a morte<br />
<br />
Ezra Pound sentou em cima da minha cama<br />
Perguntou-me quais os livros que nos últimos tempos tenho lido<br />
Ezra Pound sentou em cima da minha cama<br />
Perguntou-me quais os livros que nos últimos tempos tenho lido<br />
<br />
Perguntou-me se eu li o seu próprio<br />
E se eu poderia guardar<br />
Um quilo de carne para cobrir seus ossos expostos<br />
<br />
Eu disse, homem, toma uma libra de tomar dois<br />
O que é um quilo de carne<br />
Entre amigos como eu e você?<br />
O que é um quilo de carne entre amigos?<br />
<br />
Mas se você nunca está arrependido<br />
<br />
Se você nunca está arrependido<br />
Então você não pode ser perdoado<br />
Se você não está perdoado<br />
Então você não pode ser esquecido<br />
<br />
Se você não está esquecido<br />
Então você tem que viver para sempre<br />
Se você vive para sempre<br />
Você não pode renascer<br />
<br />
Se você não é renascer<br />
Então você não pode ser um bebê<br />
Se você não é um bebê<br />
Você não pode aprender a rastejar<br />
<br />
Se você não pode rastejar<br />
Então você deve ficar na cama o dia todo<br />
Se você ficar na cama o dia todo<br />
Você tem certeza de ter alguns visitantes<br />
<br />
Esdras Pound'll sentar em cima de sua cama<br />
Peça-lhe que livros como de tarde você já leu<br />
<br />
Perguntar se você leu o seu próprio<br />
E se você pudesse poupar<br />
Um quilo de carne para cobrir seus ossos expostos<br />
<br />
Você vai dizer, homem, toma uma libra de tomar dois<br />
O que é um quilo de carne<br />
Entre amigos como eu e você?<br />
O que é um quilo de carne entre amigos?<br />
<div style="background-color: transparent; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;">
<br /></div>
<br />
<span class="" id="result_box" lang="pt"><span class="hps" title="Clique para mostrar traduções alternativas"> </span><span class="" title="Clique para mostrar traduções alternativas"><br />
</span></span><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dw5L_7xs8H0hFXwyjTQi0sU7Z1ovslXdFZAOv0Oq2khGAAz7gKwQEtj3WGf7LewDKBy6Jbjw5zDGdQ' class='b-hbp-video b-uploaded' frameborder='0'></iframe>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com1tag:blogger.com,1999:blog-21711004.post-83964662561061948912010-12-16T04:58:00.000-08:002011-05-25T08:25:04.315-07:00Eddie Vedder- Better Days<iframe src="http://www.youtube.com/embed/QH0myt6ndYM?fs=1" frameborder="0" height="295" width="480"></iframe><div><br /></div><div>O Eddie Vedder fez essa música especialmente para o filme. O cara é bom! Toca só no final, quando já tá passsando os créditos. Agora com a letra.<br /><br /><div><div style="overflow: hidden; color: rgb(0, 0, 0); background-color: transparent; text-align: left; text-decoration: none; border: medium none;"><strong style="height: 15px;" class="editable_area">Better Days</strong> <a id="info_url_artist" href="http://www.vagalume.com.br/eddie-vedder/">Eddie Vedder</a><br /><span class="editable_area"> I feel part of the universe open up to meet me<br />My emotion so submerged broken down to kneeling<br />What's listening?<br />Voices they care<br /><br />Had to somehow greet myself<br />Greet myself<br />Heard vibrations within my cells<br />In my cells<br /><br />Singin' laaa<br /><br />My love is saved for the universe<br />See me now I'm bursting<br />On one planet so many turns<br />Different worlds<br /><br />Singin' laaa<br /><br />Fill my heart with discipline<br />Put there for the teaching<br />In my head see clouds of stairs<br />Help me as I'm reaching<br /><br />The future's paved<br />With better days<br /><br />Night runnin'<br />From something<br />I'm running towards the day<br />Wide awake<br /><br />All whispered<br />Once quiet<br />Now rising to a scream<br />Right in me<br /><br />I'm fallin'<br />Free fallin'<br />World's calling me<br />Up off my knees<br /><br />Oh, I'm soaring<br />Yeah, and darling<br />You'll be the one that I can need<br />And still be free<br /><br />Our future's paved with better days</span><span><br /><br /></span></div></div><br /><br /><br /></div>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-14964525536627474232010-11-22T11:04:00.000-08:002010-11-22T11:13:01.382-08:00Acoplamento fraco x Herança<p style="margin-top: 0.3cm; margin-bottom: 0.1cm; page-break-after: avoid;"> <span style="font-family:Arial,sans-serif;"><span style="font-size:130%;"><b>Introdução</b></span></span></p> <p class="western">Acoplamento fraco é um dos principais requisitos para se construir software orientado a objetos (OO) de qualidade. O acoplamento fraco mede o quanto uma classe, depende de, ou está relacionada a, outra classe ou subsistema. A capacidade de uma classe em herdar o comportamento de outra(s) é uma das principais características do paradigma OO. A principal vantagem é poder criar novas classes quase de graça, aproveitando o código de outra. Esse artigo discute esses dois conceitos e mostra porque a herança, em geral, ajuda a comprometer o acoplamento fraco.</p> <p style="margin-top: 0.3cm; margin-bottom: 0.1cm; page-break-after: avoid;"> <span style="font-family:Arial,sans-serif;"><span style="font-size:130%;"><b>Acoplamento fraco</b></span></span></p> <p class="western">Uma classe com acoplamento forte depende muito (em geral sem necessidade) de outras. Isso pode conduzir aos seguintes problemas [Larman]:</p> <ul><li><p class="western" style="margin-bottom: 0cm;">classes difíceis de aproveitar tendo em vista que sempre que esta for utilizada todas as outras das quais ela depende devem estar presentes;</p> </li><li><p class="western" style="margin-bottom: 0cm;">alterações nas classes relacionadas podem forçar mudanças locais e</p> </li><li><p class="western" style="margin-bottom: 0cm;">são difíceis de compreender isoladamente.</p> </li></ul> <p style="margin-bottom: 0cm; line-height: 0.18cm;"><br /></p> <p class="western">Formas comuns de acoplamento ocorrem através de: variáveis de instância, variáveis locais a métodos ou de seus argumentos, chamada de serviços em outra classe, uma classe deriva direta ou indiretamente de outra ou uma classe implementa uma determinada interface. Resumindo, sempre que uma classe referencia um outro tipo em qualquer uma das circunstâncias acima está ocorrendo acoplamento. Considere o código:</p> <p class="western" style="margin-bottom: 0cm;"><br /></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>public class</b></span><span lang="en-US"> X</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">{</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><b>private</b> ClasseConcretaY var1;</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> </p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><b>void</b> M1(ClasseConcretaW var2 ) { … }</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">}</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"><br /></p> <p style="margin-bottom: 0cm; line-height: 0.18cm;" lang="en-US"><br /></p> <p class="western">Existem dois pontos principais de acoplamento, na variável de instância var1, que é do tipo ClasseConcretaY, e no argumento var2, que é do tipo ClasseConcretaW. Nestas duas partes do código a classe X referencia outras duas classes concretas. Isso significa que, sempre que esta classe for utilizada, as outras duas deverão estar disponíveis no espaço de nomes do programa. No caso de Java, o(s) pacote(s) onde estas se encontram deverá(ão) estar no classpath.</p> <p class="western">Mas, referenciar outras classes sempre causa problemas de acoplamento? A resposta é, depende! Referenciar classes estáveis e disseminadas raramente é um problema. Por exemplo, utilizar o pacote java.util num programa em Java dificilmente causará problemas futuros de acoplamento, uma vez que qualquer ambiente de execução Java contém essa biblioteca. O problema está em classes instáveis, pouco conhecidas, ou seja, nas classes que são criadas para atender os problemas específicos dos projetos.</p> <p class="western"><br /><br /></p> <h2 class="western">Como diminuir o acoplamento?</h2> <p class="western"><br /><br /></p> <p class="western">Uma regra geral para diminuir o acoplamento é “programar para uma interface e não para uma implementação” [Gamma]. No exemplo acima isso significa substituir as declarações das classes concretas por declarações de interfaces. Fazendo isso desacopla-se o código de uma implementação específica, tornando-o dependente apenas de uma interface. Essa não é a solução definitiva, um bom projeto com boas atribuições de responsabilidades é crucial, porém ajuda muito. É mais fácil compreender isoladamente uma classe que referencia apenas interfaces e mais [Gamma]:</p> <ul><li><p class="western" style="margin-bottom: 0cm;">os clientes (usuários da classe) permanecem sem conhecimento dos tipos específicos dos objetos que eles usam, contanto que os objetos tenham aderência à interface que os clientes esperam,</p> </li><li><p class="western" style="margin-bottom: 0cm;">os clientes permanecem sem conhecimento das classes que implementam estes objetos; eles somente têm conhecimento das classes abstratas que definem a interface.</p> </li></ul> <p style="margin-top: 0.3cm; margin-bottom: 0.1cm; page-break-after: avoid;"> <span style="font-family:Arial,sans-serif;"><span style="font-size:130%;"><b>Herança</b></span></span></p> <p class="western">A herança é a principal característica de distinção entre um sistema de programação orientado a objeto e outros sistemas de programação. As classes são inseridas em uma hierarquia de especializações de tal forma que uma classe mais especializada (subclasse) herda todas as propriedades da classe mais geral (superclasse) a qual é subordinada na hierarquia.</p> <p class="western">O principal benefício da herança é o reaproveitamento de código. A herança permite ao programador criar uma nova classe programando somente as diferenças existentes na subclasse em relação à superclasse. Isto se adeqüa bem a forma como compreendemos o mundo real, no qual conseguimos identificar naturalmente estas relações.</p> <p class="western">A reutilização por meio de subclasses é dito “reutilização de caixa branca”, pois usualmente expõe o interior das classes ancestrais para as subclasses. A herança é definida estaticamente em tempo de compilação e é simples de utilizar, uma vez que é suportada diretamente pela linguagem de programação. </p> <p style="margin-top: 0.3cm; margin-bottom: 0.1cm; page-break-after: avoid;"> <span style="font-family:Arial,sans-serif;"><span style="font-size:130%;"><b>Acoplamento fraco x Herança</b></span></span></p> <p class="western">A decisão de derivação a partir de uma superclasse precisa ser cuidadosamente considerada, uma vez que ela é uma forma muito forte de acoplamento [Larman]. As classes ancestrais freqüentemente definem pelo menos parte da representação física das suas subclasses. A implementação de uma subclasse, desta forma, torna-se tão amarrada à implementação da sua classe mãe que qualquer mudança na implementação desta forçará uma mudança naquela. Vejamos uma situação onde isso é verdadeiro. Considere o esquema de herança abaixo:</p> <p style="margin-bottom: 0cm; line-height: 0.18cm;"><br /></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>abstract public</b></span><span lang="en-US"> </span><span lang="en-US"><b>class</b></span><span lang="en-US"> X</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">{</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>private final int</b></span><span lang="en-US"> MAX = 100;</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> </p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>public int</b></span><span lang="en-US"> CalculaMaximo(</span><span lang="en-US"><b>int</b></span><span lang="en-US"> i) </span></span></span> </p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">{</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>return</b></span><span lang="en-US"> i * MAX;</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">}</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"><br /></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>public int</b></span><span lang="en-US"> UsaMaximo(</span><span lang="en-US"><b>int</b></span><span lang="en-US"> i)</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">{</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><b>int</b> maximo = CalculaMaximo(i); </span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"><br /></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">//faz alguma coisa de útil com maximo …</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US">}</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">}</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"> </span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>public class</b></span><span lang="en-US"> Y </span><span lang="en-US"><b>extends</b></span><span lang="en-US"> X</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">{</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> </p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>public void</b></span><span lang="en-US"> UsaMetodoDaClasseX()</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">{</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> …<span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">.</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>int</b></span><span lang="en-US"> aux = UsaMaximo(10);</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> …</p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">} </span></span> </p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">}</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"><br /></p> <p class="western">Até aqui tudo bem! Agora considere a seguinte modificação na classe X:</p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>abstract public class</b></span><span lang="en-US"> X</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">{</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>private final int</b></span><span lang="en-US"> MAX = 100;</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"> </p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><b>public int</b> CalculaMaximo(<b>int</b> i) </span></span> </p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">{</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><b>return</b> (<b>int</b>) i * (MAX /100); // Aproxima o resultado com cast</span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US">}</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT" lang="en-US"><br /></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;"><span lang="en-US"><b>public int</b></span><span lang="en-US"> UsaMaximo(</span><span lang="en-US"><b>int</b></span><span lang="en-US"> i) { … }</span></span></span></p> <p style="margin-bottom: 0cm; background: none repeat scroll 0% 0% rgb(243, 243, 243); line-height: 0.32cm;" align="LEFT"> <span style="font-family:Letter Gothic,Courier New;"><span style="font-size:78%;">}</span></span></p> <p class="western"><br /><br /></p> <p class="western">Essa alteração na maneira como o máximo está sendo calculado pode gerar efeitos colaterais na classe Y. A aproximação para inteiro pode funcionar para alguns métodos que usam a CalculaMaximo() mas provocar resultados errôneos na UsaMetodoDaClasseX(). Assim, para que a classe Y continue funcionando, esta precisaria ser adaptada à nova realidade. Problemas podem ocorrer também quando estruturas de dados visíveis nas classes derivadas são alteradas. Um array bidimensional transformado para vetor ou mesmo um tipo int modificado para float certamente acarretará problemas.</p> <p class="western">Este exemplo simples ajuda a mostrar como <b>uma alteração na implementação</b> <b>de um método numa classe base pode provocar anomalias nas suas classes derivadas</b>. Observe que não ocorreu uma alteração de interface, o que necessariamente (e notoriamente) implica em alterações nas classes clientes. É por isso que a herança, em particular, revela um alto acoplamento. Além das hierarquias de classes criadas estarem suscetíveis às mudanças de interface, estão suscetíveis também às alterações nas implementações dos métodos.</p> <p class="western">Quando uma subclasse redefine algumas, mas não todas as operações, ela também pode afetar as operações que herda, assumindo-se que elas chamam as operações redefinidas [Gamma]. Isso gera um efeito semelhante ao apresentado acima, porém no sentido oposto, onde alterações nas classes mais especializadas podem gerar problemas nas classes base. Se a classe Y tivesse sobrescrito o método CalculaMaximo(), o problema com a aproximação poderia ocorrer no método UsaMaximo() da classe X.<br /><br /></p> <h2 class="western">Como evitar a herança?<br /></h2> <p class="western">Uma outra forma de reaproveitar funcionalidade é através da <u><b>composição</b></u> de objetos. Novas funcionalidades são obtidas compondo objetos para obter funcionalidades mais complexas. Uma das vantagens desta abordagem é a flexibilidade em poder selecionar em tempo de execução qual objeto será usado na composição (contanto que este respeite a interface definida). No exemplo anterior, se a classe Y tivesse uma referencia para um outro objeto com a funcionalidade definida em X, quando este fosse alterado restaria a ela ainda a possibilidade de utilizar uma versão antiga e seu funcionamento não estaria necessariamente comprometido.</p> <p style="margin-top: 0.3cm; margin-bottom: 0.1cm; page-break-after: avoid;"> <span style="font-family:Arial,sans-serif;"><span style="font-size:130%;"><b>Conclusão</b></span></span></p> <p class="western">Evitar herança e privilegiar a composição é em geral uma boa prática em projetos orientados a objetos. Favorecer a composição de objetos em relação à herança ajuda a manter cada classe encapsulada e focalizada em uma única tarefa. Suas classes e hierarquias de classes se manterão pequenas e mais tratáveis [Gamma]. Além disso, vimos como e porquê a utilização da herança resulta num alto acoplamento e os problemas que isso pode acarretar. </p> <p class="western" style="margin-bottom: 0cm;"><br /></p> <h1 class="western">Bibliografia </h1> <p class="western" style="margin-bottom: 0cm;"><br /></p> <p class="western" style="margin-bottom: 0cm;">[Gamma] Gamma, E; Helm, R; Johnson, R; Vlissides, J. Padrões de Projeto – Soluções Reutilizáveis de Software Orientado a Objetos, Bookman, 2000.</p><br /><p class="western">[Larman] Larman, C. Utilizando UML e Padrões, Bookman, 2004.</p> <p style="margin-top: 0.21cm; background: none repeat scroll 0% 0% rgb(224, 224, 224); line-height: 0.18cm;" align="LEFT"> <span style="font-family:Arial,sans-serif;"><br /></span></p>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-75780562754827055752010-10-25T11:06:00.000-07:002011-09-02T07:17:10.555-07:00Para quem busca inspiração para escrever<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Ou8l5nCnxOqHHw6p0Z5wtyHBBk3YVZXauJIFdOzW-Fze45IWrbkvv8TeSryVbD2YKExQR5QV2o8j9W271zxBppa3Kq0xuXB5IpUVnOgDI1hlvgkaSDn-wQ0bWDJGudcI9ezF/s1600/vargas_3.jpg" imageanchor="1" style="clear: left; display: inline-block; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Ou8l5nCnxOqHHw6p0Z5wtyHBBk3YVZXauJIFdOzW-Fze45IWrbkvv8TeSryVbD2YKExQR5QV2o8j9W271zxBppa3Kq0xuXB5IpUVnOgDI1hlvgkaSDn-wQ0bWDJGudcI9ezF/s200/vargas_3.jpg" width="150" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYsF3hW25crYLPH121BCkk99EaMmyUo4h4m-KwVTOz6-jH-Cz5UqOnelHx1qQcdNKJBfH1yANdMFLXPNGy1_nNeHyFLNxEz6TACrUQvLLBQVo1plGK7Sjtq7buLtdtEoAlKbgK/s1600/vargas_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYsF3hW25crYLPH121BCkk99EaMmyUo4h4m-KwVTOz6-jH-Cz5UqOnelHx1qQcdNKJBfH1yANdMFLXPNGy1_nNeHyFLNxEz6TACrUQvLLBQVo1plGK7Sjtq7buLtdtEoAlKbgK/s200/vargas_2.jpg" width="153" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimo-2LoZJ91b2XH6u47Qqpmc0noDjAd9TsQV9YefpyVUAqcGH8htFBzcWYYB1m0OGNsxHP50Ys2DEKouNEK-hOBPstMT6j9mewfFsUuDA2hXby0RyWcjtmelvLlh6XOqRresY9/s1600/vargas_4.jpg" imageanchor="1" style="display: inline-block; margin-left: 1em; margin-right: 1em;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimo-2LoZJ91b2XH6u47Qqpmc0noDjAd9TsQV9YefpyVUAqcGH8htFBzcWYYB1m0OGNsxHP50Ys2DEKouNEK-hOBPstMT6j9mewfFsUuDA2hXby0RyWcjtmelvLlh6XOqRresY9/s200/vargas_4.jpg" width="200" /></a></div><br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj69vG_AJRL_JQJYAY77eAsaM4MvMKUwFwn8zu1e5M1tbAS1LHDZuRizIpz-yB5wbyL55FKevdhm0eBxzroWVuwEeyF4-olM_VK6tKoUIkkNxuJS4Gy3qbpkpTw4k6E-jNJwCtO/s1600/vargas_1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj69vG_AJRL_JQJYAY77eAsaM4MvMKUwFwn8zu1e5M1tbAS1LHDZuRizIpz-yB5wbyL55FKevdhm0eBxzroWVuwEeyF4-olM_VK6tKoUIkkNxuJS4Gy3qbpkpTw4k6E-jNJwCtO/s200/vargas_1.jpg" width="149" /></a><br />
<div class="western" style="margin-bottom: 0cm;"><br />
</div><div class="western" style="margin-bottom: 0cm;">“ Creio que o romance sempre foi um testemunho rebelde, de insubmissão. Em todas as épocas, os romances flagraram nossas carências, tudo aquilo que a realidade não nos pode dar e que, de alguma maneira, desejamos. Começamos a inventar porque o mundo não nos parece suficiente. O romance se situa justamente nessa compensação que o ser humano busca quando entende que a realidade não o satisfaz completamente. Por esse motivo, ele sempre causou desconfiança nos governos, nas instituições que pretendem controlar a vida. As religiões e os regimes autoritários nunca foram simpáticos ao romance. E penso que têm razão: ele é mesmo um gênero perigoso, porque provoca a imaginação, os desejos, e nos faz sentir que a vida não é bastante, que ela não consegue aplacar todos os nossos apetites e sonhos. O romance tem a ver com esse espírito rebelde. A invenção de outro mundo, de outra realidade, onde podemos nos refugiar e viver. Escapar por meio de fantasia. Acredito que essa é a origem de toda a ficção.”</div><div class="western" style="margin-bottom: 0cm;">Mario Vargas Llosa</div><div class="western" style="margin-bottom: 0cm;"><br />
</div><div class="western" style="margin-bottom: 0cm;"></div><div class="western" style="margin-bottom: 0cm;">Essa foi a resposta que o ganhador do Nobel de literatura desse ano, o peruano Mario Vargas Llosa, deu numa entrevista. Se você sente algo parecido com isso mas nunca escreveu nada, talvez seja um escritor e nem saiba. Ponha a imaginação para funcionar e mãos à obra. </div><div class="western" style="margin-bottom: 0cm;"><br />
</div>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-52558687527788844532010-10-18T10:32:00.000-07:002014-08-13T08:54:42.312-07:00SWU - 2010<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7ExnuCi_vPZIs3smcqh1RPfG2Ra6_eAICzEy4I9qvS4TtDwyNJbgs_EJL0Q1ZoYeE5XiBhuj7H7x7-LLkzqNuKbH7rh0Uip701QhSfZDVgC7z26th7PAGH543_8jzFf2w6V0E/s1600/IMG_1833.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7ExnuCi_vPZIs3smcqh1RPfG2Ra6_eAICzEy4I9qvS4TtDwyNJbgs_EJL0Q1ZoYeE5XiBhuj7H7x7-LLkzqNuKbH7rh0Uip701QhSfZDVgC7z26th7PAGH543_8jzFf2w6V0E/s400/IMG_1833.JPG" id="BLOGGER_PHOTO_ID_5529443290818372418" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<div style="text-align: center;">
<span style="font-weight: bold;">Regina Spektor</span></div>
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP1GycSloc_aCOxDALvYNqNZ96zbAV57QOlpuDPWDWP7NzDPiYz6tx43roJCcqSjXPuVd-PWXZLb7Dpo58nHtd67Q-GBTrPGo2JOeYwzj2HwCMbLHFkbQ4kxJdfz8k1ZF6VqDn/s1600/IMG_1821.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP1GycSloc_aCOxDALvYNqNZ96zbAV57QOlpuDPWDWP7NzDPiYz6tx43roJCcqSjXPuVd-PWXZLb7Dpo58nHtd67Q-GBTrPGo2JOeYwzj2HwCMbLHFkbQ4kxJdfz8k1ZF6VqDn/s400/IMG_1821.JPG" id="BLOGGER_PHOTO_ID_5529443022237387330" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<div style="text-align: center;">
<span style="font-weight: bold;">Teatro Mágico</span><br />
<br />
Quase quebrei o dedo tentando socar essa bola que eles jogaram.<span style="font-weight: bold;"><br /></span></div>
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJNsvY-YbUgUp83HvuACtiZ3UKMv60O0pGJJUGcMzrbkOBd_LGDwTQdSnLZgIneTYHFqN6LOnd1B08SaPP_U7HVh6mb9j46faBzGZW-2fS2XRl1ycMpo6V3KnD7FGcUa-_QImq/s1600/IMG_1814.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJNsvY-YbUgUp83HvuACtiZ3UKMv60O0pGJJUGcMzrbkOBd_LGDwTQdSnLZgIneTYHFqN6LOnd1B08SaPP_U7HVh6mb9j46faBzGZW-2fS2XRl1ycMpo6V3KnD7FGcUa-_QImq/s400/IMG_1814.JPG" id="BLOGGER_PHOTO_ID_5529442607400857058" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
Cadeiras de pneus. Encomendei umas lá pra casa.</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcYvPRU1T9cD9LEzPqYkK3EfVA-n8Omvljd0mU9M2I0KWUNsmEnpl_CJtZ0Tg7yZMxYDt_hSYLErS2Xlxfl93Xdg5MnH8Ue0V9KQUkZFjyplTsEHocdaFcPLZA3OJ-VI0egFKv/s1600/IMG_1808.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcYvPRU1T9cD9LEzPqYkK3EfVA-n8Omvljd0mU9M2I0KWUNsmEnpl_CJtZ0Tg7yZMxYDt_hSYLErS2Xlxfl93Xdg5MnH8Ue0V9KQUkZFjyplTsEHocdaFcPLZA3OJ-VI0egFKv/s400/IMG_1808.JPG" id="BLOGGER_PHOTO_ID_5529442193806606642" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
O exterminador do futuro também tava lá.<br />
<br /></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_KEZZt7mB3cY28bOw6E4vZ1vCPSLQUAqZT-mR26uJbSnlIrtkdOoau6GCsjM-3UIv9Io1QvQrYZn65pimINfkA7S9t4ZyTVko-NffCU73h3hEslzhtLlErYAC-oqDSRoBBCmq/s1600/IMG_1804.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_KEZZt7mB3cY28bOw6E4vZ1vCPSLQUAqZT-mR26uJbSnlIrtkdOoau6GCsjM-3UIv9Io1QvQrYZn65pimINfkA7S9t4ZyTVko-NffCU73h3hEslzhtLlErYAC-oqDSRoBBCmq/s400/IMG_1804.JPG" id="BLOGGER_PHOTO_ID_5529442027682246658" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<div style="text-align: center;">
Os palcos principais</div>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXDO5bYYJ5gR4ZR5vIvPoNi5JelpFH7DS64fq_N7PS5J8JcTZx5w7DKqI9T_FZU-cJe8jQDVu8EWM1njJuz1yBIJNEW5g7hY80oBllmrHD_BFFNHAfrRdmqT6YqV3GYxAt3-2q/s1600/IMG_1799.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXDO5bYYJ5gR4ZR5vIvPoNi5JelpFH7DS64fq_N7PS5J8JcTZx5w7DKqI9T_FZU-cJe8jQDVu8EWM1njJuz1yBIJNEW5g7hY80oBllmrHD_BFFNHAfrRdmqT6YqV3GYxAt3-2q/s400/IMG_1799.JPG" id="BLOGGER_PHOTO_ID_5529441802672161826" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<div style="text-align: center;">
Roda gigante movida à pedaladas</div>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUYIJfBw6MJiQu_a0DpctQ8mXbr8UmnXOGY5zo1NoDErEpfU2c88K1QzJEJs7NTGHGYgecvmRQf7hq4b0UQxzEdcYlAFv42d6YX4hctJ-bfDN9CE3wW7dE7ac_b9p8am0H-f4O/s1600/IMG_1796.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUYIJfBw6MJiQu_a0DpctQ8mXbr8UmnXOGY5zo1NoDErEpfU2c88K1QzJEJs7NTGHGYgecvmRQf7hq4b0UQxzEdcYlAFv42d6YX4hctJ-bfDN9CE3wW7dE7ac_b9p8am0H-f4O/s400/IMG_1796.JPG" id="BLOGGER_PHOTO_ID_5529441638697671314" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<div style="text-align: center;">
Fila de entrada</div>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9xfJ80sPY5pwzyTMV9qVjRlEv-b_fYXfACYQT3odOFOmRDixs1eM2WIW6qhXLVeTZZDSvOlM2fM7Oz3f2fUn9ql_tj1jtkI5X7laLD4HBHciq0G9zj9YDLuhGIHKDM-RTr2nw/s1600/IMG_1795.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9xfJ80sPY5pwzyTMV9qVjRlEv-b_fYXfACYQT3odOFOmRDixs1eM2WIW6qhXLVeTZZDSvOlM2fM7Oz3f2fUn9ql_tj1jtkI5X7laLD4HBHciq0G9zj9YDLuhGIHKDM-RTr2nw/s400/IMG_1795.JPG" id="BLOGGER_PHOTO_ID_5529441485439476130" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqdRNM8BZmtxXPKb9y1VKaOF3NmD9fcnoQ6o8GRydbnS2VWRJE_fWrW7CJdecKCXdS0RBcZ7f1VnoOusOptPxtkMc7UsKTE7GIAiJiz9hfqnKYEqYpT43M4fpIrWh62Aq_tEie/s1600/IMG_1793.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqdRNM8BZmtxXPKb9y1VKaOF3NmD9fcnoQ6o8GRydbnS2VWRJE_fWrW7CJdecKCXdS0RBcZ7f1VnoOusOptPxtkMc7UsKTE7GIAiJiz9hfqnKYEqYpT43M4fpIrWh62Aq_tEie/s400/IMG_1793.JPG" id="BLOGGER_PHOTO_ID_5529441173987351650" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2OSzm2Z9q0LsyYPVIbc-DhYQY469WxFLJO33ATJOUDMgEA8lCtD8RmEtygR21m_qE-LGeyWBpDrCBo1Yw1QN7djZrHrM9QoDll7WNuPud6nwHv1AA1jNNzWnL8qRCX_eoFSxC/s1600/IMG_1792.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2OSzm2Z9q0LsyYPVIbc-DhYQY469WxFLJO33ATJOUDMgEA8lCtD8RmEtygR21m_qE-LGeyWBpDrCBo1Yw1QN7djZrHrM9QoDll7WNuPud6nwHv1AA1jNNzWnL8qRCX_eoFSxC/s400/IMG_1792.JPG" id="BLOGGER_PHOTO_ID_5529440599783843090" style="cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dwLT3AP9QRbCZQgM5zObAl1eTDnd0rrlbJNYWsj4xvnHU-ZhuQuns-9Vazq4HoGpocQ8FMIuzBMvjM' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<br />
<br />
<div style="text-align: center;">
Regina Spektor</div>
<br />
<div style="text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dxOCu-hFC4gxtV1mxnkJZxRwuZQny3q9bwFEtdkg02HybpQ7qyo7q_hGx2J8FCFp_lPon8vukrLzJw' class='b-hbp-video b-uploaded' frameborder='0'></iframe><br />
<br />
Dave Matthews<br />
<br /></div>
Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-47724900565543947312010-10-15T08:14:00.000-07:002010-10-15T08:14:00.744-07:00Free Job visa sponsors list for UK<a href="http://hubpages.com/hub/ukjobvisa">Free Job visa sponsors list for UK</a>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-345234656717681262010-08-23T09:10:00.000-07:002014-08-13T08:54:00.137-07:00O prazer da mudança<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-gYphz0m_DkbvUYmnqF8zeN_Fe-KtBlQssXgU3o2XaW02RaHf-9aq5SRsdrPJCZFPv89SHkHoAuEWzp3VXeTJ4qT93qGDcZHUtYL7Q17FCOeSE2pDaES_cxwMEm9ImgVPTTSM/s1600/harryesallyposter01.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-gYphz0m_DkbvUYmnqF8zeN_Fe-KtBlQssXgU3o2XaW02RaHf-9aq5SRsdrPJCZFPv89SHkHoAuEWzp3VXeTJ4qT93qGDcZHUtYL7Q17FCOeSE2pDaES_cxwMEm9ImgVPTTSM/s400/harryesallyposter01.jpg" id="BLOGGER_PHOTO_ID_5547916390782205378" style="cursor: pointer; float: left; height: 393px; margin: 0pt 10px 10px 0pt; width: 259px;" /></a><br />
Acabei de assistir Hary e Sally pela 4 vez eu acho. O filme tem um lance legal onde de repente a sequência normal é interrompida e entra em cena casais já velhinhos contando orgulhosos como se conheceram há mil anos atrás e estão juntos até hoje. É engraçado como a sociedade (ou o ser humano, não sei) valoriza a constância, a estabilidade, a rotina. Qualquer mudança, em geral, é recebida com maus olhos. Mas, na minha opinião, a mudança é o que dá graça à vida, é o que nos faz crescer, sair do lugar, superar limites, conhecer coisas novas. Do que adianta viver até aos 80 anos fazendo sempre a mesma coisa. Que tédio! Um dos casais mais simpáticos é um tiozinho chinês que conta como conheceu a tiazinha chinesa. Foi assim: um homem de um vilarejo próximo disse a ele que havia uma moça muito boa e que estava pronta para casar. Ele não podia vê-la antes do casamento, pois assim rezava o costume, mas mesmo assim foi até o povoado próximo, ficou escondido e a espiou quando lavava roupas. Gostou dela e então disse ao homem que aceitava sim casar-se com a tal moça. Isso tinha sido há 52 anos e estavam juntos desde então. Isso é muito tempo. <br />
<br />
Fazer a mesma coisa a vida toda é um pensamento que me apavora. As vezes brinco que queria mudar de profissão e virar soldador de alumínio por um tempo. Dou esse exemplo por causa da palestra do Almir Klink onde ele conta como eles tiveram que treinar pessoas para trabalhar como soldadores de alumínio no estaleiro dele. Como esse é um trabalho altamente especializado, quem aprende e fica bom logo é chamado para trabalhar em outros estaleiros ao redor do mundo. Quando o ouvi contando senti mesmo vontade de largar tudo e ir aprender a fazer navios. O quanto eu não aprenderia convivendo com aquelas pessoas que estariam ali. Aprenderia muitas outras histórias de vida diferentes das que eu vivi. Aprenderia um novo ofício diferente de tudo que eu já fiz. Sairia do escritório e iria trabalhar ao ar livre, perto do mar. E quando me cansasse daquilo começaria tudo de novo. Assim poderia/deveria ser a vida, poder vasculhar o mundo e tudo que ele tem a oferecer.Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-52250037544576473582010-04-21T08:30:00.000-07:002010-11-30T04:37:36.020-08:00Tarantino x Irmãos CoenPra quem é fã do Tarantino ou/e dos irmãos Coen não pode deixar de ver a compilação animal feita pelo brasileiro Leandro "Copperfield" Braga e que é sensação no YouTube. São mais de 500 cenas de filmes de ambos e ainda pode-se curtir o<a href="http://letras.terra.com.br/the-trashmen/399910/"> Surfin' Bird do The Trashman</a>. Pra quem é fã e ainda não sabe segue uma pequena ajuda:<br /><br />Filmes do Tarantino<br /><br />1992 - Cães de aluguel<br />1994 - Pulp Fiction - Tempo de violência<br />1997 - Jackie Brown<br />2003 - Kill Bill: Volume 1<br />2004 - Kill Bill: Volume 2<br />2005 - Sin City - A cidade do pecado<br />2009 - Bastardos Inglórios<br />2014 - Kill Bill 3<br /><br />Filmes dos irmãos Coen<br /><br />2009 - A Serious Man (Um homem de família)<br />2008 - Queime Depois de Ler<br />2007 - Onde os Fracos Não Têm Vez<br />2006 - Paris, je t'aime<br />2004 - The Ladykillers<br />2003 - Intolerable Cruelty<br />2001 - The Man Who Wasn't There<br />2000 - O Brother, Where Art Thou? (E aí meu irmão, cadê você?)<br />1999 - The Big Lebowski (O grande Lebowski)<br />1996 - Fargo<br />1994 - The Hudsucker Proxy<br />1991 - Barton Fink<br />1990 - Miller's crossing<br />1987 - Raising Arizona (Arizona nunca mais)<br />1984 - Blood Simple (Gosto de sangue)<br /><br />Divirta-se!!<br /><br /><object height="385" width="434"><param name="movie" value="http://www.youtube.com/v/2_tg8fMcpTc&hl=pt_BR&fs=1&"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/2_tg8fMcpTc&hl=pt_BR&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="385" width="640"></embed></object>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-74975825423128706102009-07-27T19:42:00.000-07:002014-08-13T08:59:38.823-07:00A pessoa mais idiota que eu conheço<div class="western" style="margin-bottom: 0cm;">
Beleza, resolvi participar do <a href="http://olhometro.com/2009/06/25/promocao-escreva-o-melhor-post-e-ganhe-um-livro-legal/">concurso que vi no blog da companheira blogueira Ana Freitas</a> e escrever sobre “a pessoa mais idiota que conheço”. Na verdade o prazo pra envio já até terminou mas escreverei mesmo assim e vou torcer pra ela ainda aceitar. Comecei a pensar então no que escrever, ou melhor, sobre quem escrever e em coisas idiotas e engraçadas que esta poderia ter feito. Percebi que nos dias atuais isso não é fácil. Quer dizer, quando se tem gente fazendo coisas idiotas profissionalmente como isso</div>
<div class="western" style="margin-bottom: 0cm;">
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/8FxAF2Oyhfc&hl=pt-br&fs=1&"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/8FxAF2Oyhfc&hl=pt-br&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></embed></object></div>
<div class="western" style="margin-bottom: 0cm;">
ou isso</div>
<div class="western" style="margin-bottom: 0cm;">
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/0Tw9zl2mh8k&hl=pt-br&fs=1&"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/0Tw9zl2mh8k&hl=pt-br&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></embed></object></div>
<div class="western" style="margin-bottom: 0cm;">
</div>
<div class="western" style="margin-bottom: 0cm;">
fica difícil competir e perde-se um pouco a noção do que é mesmo idiota na vida real. Também não queria colocar coisas idiotas feitas num estado de teor alcoólico de 70%, onde praticamente tudo que se faz a partir daí é naturalmente imbecil (eu que o diga). Tinha que ser idiotices autênticas e conscientes, feitas no dia a dia e só aí eu já eliminei 90% dos casos que conheço. Com todas essas premissas em mente ficou difícil selecionar alguma coisa e como inspiração apeguei-me à melhor definição para idiota que já ouvi - “idiota é quem faz idiotice” -</div>
<div class="western" style="margin-bottom: 0cm;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjWw1xDUKoupB-cSnjfi6dF8_Ufu9djcTAQpJaKespnMEX9oWE8BIelDSTj3UN02fGnJtdncd5kXQoLv7yk7WjAjo9kpPjUCaLUwYZoyvYY3wl6WpEZuFcj1RHNMbHyYvmQF0v/s1600-h/forrest.jpeg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjWw1xDUKoupB-cSnjfi6dF8_Ufu9djcTAQpJaKespnMEX9oWE8BIelDSTj3UN02fGnJtdncd5kXQoLv7yk7WjAjo9kpPjUCaLUwYZoyvYY3wl6WpEZuFcj1RHNMbHyYvmQF0v/s320/forrest.jpeg" id="BLOGGER_PHOTO_ID_5363339693708022610" style="cursor: pointer; display: block; height: 138px; margin: 0px auto 10px; text-align: center; width: 244px;" /></a></div>
<div class="western" style="margin-bottom: 0cm;">
e a partir disso resolvi então não escrever de uma só pessoa, mas fazer uma compilação das TOP 5 coisas mais idiotas que já presenciei. Vamos lá então ...</div>
<div class="western" style="margin-bottom: 0cm;">
<br /></div>
<div class="western" style="margin-bottom: 0cm;">
</div>
<div class="western" style="margin-bottom: 0cm;">
5 – Em 1991 a escola onde estudava organizou um teatro com todos os alunos do primeiro ano do segundo grau. Eu e uns colegas tínhamos formado uma banda e pedimos pro diretor deixar a gente fazer uma apresentação no último dia do evento. Foi um dos maiores fiascos pelo qual uma pessoa poderia passar. No dia da apresentação fizemos tudo o que poderia ter sido feito de errado. Na primeira música o cara da batera marcou o tempo e começou a tocar. De repente olhei pra ele e ele tava quase caindo do banco tentando alcançar as partes da bateria. Acontece que existe uma regra básica quando se monta uma bateria: ou prende-se as partes móveis com uma corda ou coloca tudo em cima de um carpete, mas nunca deixe tudo num piso lisinho e encerado e comece a tocar porque as peças andam. Pra resolver o problema um cara da plateia (escrever plateia sem acento é muito estranho) subiu no palco e ficou agachado segurando a batera durante toda a apresentação. Começamos de novo e eu que tava cantando (cara eu era muito corajoso e sem noção mesmo) e tocando guitarra. Acontece que momentos antes da apresentação eu tinha emprestado a guita pra um cara que ia fazer o papel do Elvis numa das peças. Esse cara tinha enchido o c... de cana e, apesar dele nem ligar a guitarra, era só pra encenação, ele detonou de bater nas cordas. Quando comecei a tocar nem me dei conta de que tava tudo desafinado. Continuei assim mesmo, mesmo achando o som meio estranho e na hora que comecei a cantar encostei no microfone e tomei um choque. Outra regra básica que foi totalmente ignorada é que com aquele bando de coisas elétricas ligadas deve haver um mínimo de isolamento pra não acontecer, por exemplo, do microfone dar choque. Eu fui um símbolo de determinação e continuei tocando mesmo tomando uns choques de vez em quando. E foi isso, uma idiotice atrás da outra e o que se seguiu foi uma apresentação horrível em que o resultado foi o grupo ter ficado queimado em toda a escola durante todo o segundo grau onde, diga-se de passagem, é o momento mais importante da vida de um adolescente.</div>
<div class="western" style="margin-bottom: 0cm;">
<br /></div>
<div class="western" style="margin-bottom: 0cm;">
4 – Tem um cara que trabalha comigo que é do norte do país, acho que do Acre. O cara é uma figura. Uma vez viajamos à serviço pra uma cidade aqui do interior do estado e fomos com o carro dele. Num determinado trecho a estrada estava interditada e tinha uma placa indicando o retorno que deveria ser feito. Teríamos que rodar um bom pedaço a mais por causa disso. Ele então cheio de moral disse: “Deixa que eu sei de um atalho!” e simplesmente saiu da estrada e enfiou o carro no mato fechado que tava do lado da pista. Veja só, era um matagal mais alto que o carro e ele foi entrando, botou uns 100 km/h, e tocou a toda. Foi muito tosco. O carro tava riscando toda a lataria e ele nem aí. Andamos mais de 10km desse jeito e eu preocupado de ter alguma árvore ou buraco ou bicho no caminho. Quando saímos do carro a lataria tava toda riscada e com vários amassados pra todo a lado. Foi realmente uma coisa idiota que ele fez. </div>
<div class="western" style="margin-bottom: 0cm;">
<br /></div>
<div class="western" style="margin-bottom: 0cm;">
3 – Tem uma fazenda aqui no estado que os caras criam queixadas. É um porco selvagem, com esses dentes aí saindo da boca e não parecem ser nada calminhos. Essa fazenda abre pra visitações e eles montaram umas plataformas, tipo várias pontes conectadas umas nas outras, e em baixo ficam os queixadas andando de lá pra cá. Eles te dão comida e o pessoal fica lá de cima olhando os bichos e jogando pedaços de pão pra eles. Acontece que um colega meu deixou o boné cair e sem pestanejar pulou na área do queixada. Agora pense um pouco. Olha só a foto de um desses bichos. Agora imagine um lugar com uns 200 deles fazendo barulhos ameaçadores. Por que por todos os santos alguém teria a ideia de pular?? O pior que ele foi, pegou o boné e nem deu nada.</div>
<div class="western" style="margin-bottom: 0cm;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFlVZeGFcNFC0BA6zNxWYa0tKjtt3JLMwPYokfyKlMD-k8qGy4aosFW2vpWoVxi2sbUmkZ_RAZER0PKnk7rims9QQ6ao2iP38jmi7I4MdH2a8FmCPCRcO1k6oYWTo4d1eGOx3V/s1600-h/queixada.jpeg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFlVZeGFcNFC0BA6zNxWYa0tKjtt3JLMwPYokfyKlMD-k8qGy4aosFW2vpWoVxi2sbUmkZ_RAZER0PKnk7rims9QQ6ao2iP38jmi7I4MdH2a8FmCPCRcO1k6oYWTo4d1eGOx3V/s320/queixada.jpeg" id="BLOGGER_PHOTO_ID_5363340566706908482" style="cursor: pointer; display: block; height: 124px; margin: 0px auto 10px; text-align: center; width: 83px;" /></a></div>
<div class="western" style="margin-bottom: 0cm;">
2 – Pode-se dizer que um cara aqui no meu trabalho tem o costume de ir ao banheiro e deixar a porta aberta. Já é costume porque pelo que sei isso já aconteceu umas três vezes. A primeira vez eu vi. O banheiro era unisex e uma colega nossa estava indo na direção da porta. Eu estava indo na direção contrária e paramos pra conversar um pouco. Quando ela abriu a porta pra entrar tava o cara lá, lendo uma revista, sentadão, todo descontraído. Ele tomou um susto e meio que tentou levantar as calças. A menina ficou toda desconcertada, soltou um “ohhh!!” e fechou a porta. Foi tudo muito rápido mas muito engraçado. Até hoje dou risada quando lembro. E não satisfeito, segundo relatos, isso aconteceu duas outras vezes. Agora estamos todos na expectativa pra saber quando será a próxima. </div>
<div class="western" style="margin-bottom: 0cm;">
<br /></div>
<div class="western" style="margin-bottom: 0cm;">
1 – Classifiquei essa em primeiro porque fui eu que fiz e foi realmente ridículo. Em 92, eu acho, fiz uma viagem com um amigo pra Montevidéo no Uruguai. Como éramos dois quebrados na época, resolvemos ir de ônibus, mesmo a viagem dando um total de 36 horas. Quando saímos do Brasil e chegamos no Uruguai, já cansados de tanto ficar sentados, fomos ao guiche comprar nossa passagem pro destino final. Chegando lá tinha uma senhora, já de uns 60 e poucos anos, falando espanhol e vendendo os bilhetes. Quem foi tratar com ela foi meu amigo que arranhava um pouco de espanhol e eu fiquei ali por perto. Acontece que o último ônibus que ia pra Montevidéo naquele dia já estava saindo, tava ali a uns 200 metros da gente e lá eles costumam cumprir o horário. A senhorinha estava demorando muito pra emitir o bilhete e eu já estava impaciente vendo a movimentação do motorista pronto pra cair na estrada. Aí então num ímpeto eu cheguei no vidro do guiche, olhei com uma expressão de desespero e falei no melhor portunhol: “Corriendo, corriendo!” querendo dizer, é claro, “Correndo, correndo!”. Acontece que "correr" pode também significar "transar" . Meu amigo fez uma cara de espanto. A senhora, que estava de cabeça baixa, só levantou os olhos por cima dos óculos e fez uma cara de desaprovação. </div>
<br />
<br />
<br />Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com2tag:blogger.com,1999:blog-21711004.post-88087382245357183692009-06-25T20:05:00.000-07:002010-10-15T07:35:03.089-07:00Todos mereciam já nascer com o seu caddie<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Y86v6mZQsiTldFCY4u0eLCg0-nGCQzHsTuoXFdkoTnMHI-UiHEly9-crC9Sig9_KwceXt4DnJvNn64m1cKqgSzduOJYL9f15JRtsA7q8ZX98tIm76VJQSpT0F2vFqvFrauv-/s1600-h/legend-of-bagger-vance-poster02t.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 111px; height: 165px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Y86v6mZQsiTldFCY4u0eLCg0-nGCQzHsTuoXFdkoTnMHI-UiHEly9-crC9Sig9_KwceXt4DnJvNn64m1cKqgSzduOJYL9f15JRtsA7q8ZX98tIm76VJQSpT0F2vFqvFrauv-/s320/legend-of-bagger-vance-poster02t.jpg" alt="" id="BLOGGER_PHOTO_ID_5351467804509192354" border="0" /></a>Nunca pensei que seria possível fazer um filme interessante sobre o golfe, mas nesse fim de semana assisti um que chegou bem perto. O filme chama-se “Lendas da Vida” ou em inglês “The Legend of Bagger Vance" (2000) e conta a história de um herói da 1ª Guerra Mundial que participa de um campeonato de golfe e lá recebe a ajuda de um <span style="font-style: italic;">caddie</span> misterioso. Achei o filme muito bom. É daquele tipo de filme inspirador, tipo de filme que se deve assistir de vez em quando pra ajudar a dar uma acalmada no espírito, lembrar de coisas importantes que se esquece no dia a dia tumultuado e renovar a esperança nas coisas. E tudo isso sem ser piegas ou chato (palmas para o Robert Redford que foi o diretor). Logo depois de cada cena de lição de moral ou mais romântica o filme volta rapidamente ao ritmo descontraído de antes e assim não fica aquela coisa muito melodramática e pesada.<br />Além de tudo isso, ainda aprende-se um monte sobre o golfe, e de um jeito que faz parecer o jogo realmente interessante. Chegou a dar vontade de tentar um dia. A impressão que sempre tive era de um jogo enfadonho jogado por pessoas mais enfadonhas ainda. Nada disso, é massa! O objetivo como todos já têm uma idéia é ir dando tacadas na bolinha até conseguir coloca-lá no buraco. E isso estando num campo de grama irregular e enorme, cheio de obstáculos como lagos, árvores, vento, etc, e na maioria das vezes a centenas de metros do buraco. Daí que nos jogos reais os caras conseguem tipo, estando quase a 1000 metros de distância , dar uma tacada que leva a bola do lado dele. Caráááio véiiiooo, isso é muito difícil!!! E quando acontece um hole-in-one (acertar o buraco numa só tacada, o que, dependendo da distância, é quase impossível) é como presenciar um milagre com seus próprios olhos.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8kBxh0bSbEh4xS4bXj7sDMteSvrF7Fdo-NHrPJ-UPb8pQbePzOgFeE_Oi5RhD7H7USht4eaifFrMHjCm5aVOuDE2LzVmBW39RGTfuJ2UjUGsq23pZxxTFjcYIcWgdyewOpCkW/s1600-h/legend-of-bagger-vance02.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 215px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8kBxh0bSbEh4xS4bXj7sDMteSvrF7Fdo-NHrPJ-UPb8pQbePzOgFeE_Oi5RhD7H7USht4eaifFrMHjCm5aVOuDE2LzVmBW39RGTfuJ2UjUGsq23pZxxTFjcYIcWgdyewOpCkW/s320/legend-of-bagger-vance02.jpg" alt="" id="BLOGGER_PHOTO_ID_5351469904160911538" border="0" /></a><span style="font-style: italic;">Caddie</span> é aquele carinha que fica levando os tacos do golfista pra lá e pra cá e de vez em quando dá uns pitacos sobre qual melhor taco usar ou melhor estratégia de jogo. O caddie do filme, porém, faz mais do que dar pitacos técnicos. Ele ajudou seu golfista, que era o azarão e jogava contra dois fodões do golfe, a se concentrar e a encontrar seu jogo. O cara tinha ficado 10 anos sem jogar, desde que voltou da primeira guerra mundial. Tinha perdido a fé nas pessoas e em si mesmo. Não é preciso passar pela experiência de uma guerra pra se perder o entusiasmo. Às vezes passamos por experiências tão difíceis que esquecemos quem nós somos e do nosso brilho interior. Nos deixamos consumir por toda a carga negativa que vai se acumulando com o tempo e chega uma hora que vivemos de reflexos, apenas na defensiva, esquivando do mal que pode estar pela frente. E vivendo assim é impossível ter forças pra realizar o que se deseja da vida. Fora o estado emocional, pense na dificuldade que é ser bom no golfe. Quer dizer, você ta lá, com um taco na mão e tem que acertar uma bolinha com força e ao mesmo tempo com precisão pra arremessa-la onde sua vista nem alcança direito. Você tem que medir a força que vai bater na bola e fazer com que seus músculos obedeçam, o jeito que vai bater, calcular a trajetória, pensar nos obstáculos naturais, controlar a respiração. São muitas as variáveis a serem consideradas para que cada tacada saia perfeita. Sabe aquele jogo de lançar argolas para que entrem nas garrafas? Isso já é difícil e a gente está a míseros cinco metros de distância, imagine no golfe.<br /><br />O que eu quis tentar mostrar aí em cima foi como é complicado quando se deseja fazer algo difícil ou então ser o melhor em alguma coisa. São tantos fatores envolvidos, tanto técnicos como emocionais, que sem ajuda às vezes fica impossível. E isso é verdade pra qualquer coisa, em qualquer área, seja esportiva ou não. O <span style="font-style: italic;">caddie</span> (interpretado pelo Will Smith) já sabia disso tudo e ajudou seu parceiro a encontrar o equilíbrio com conselhos certos na hora certa. Isso deve ser comum na área esportiva, quer dizer, o que ele fez deve ser o papel de qualquer treinador por exemplo. Mas o que eu acho é que todo mundo que está empenhado a fazer algo deveria ter ajuda. Todos mereciam ter um <span style="font-style: italic;">caddie</span> por perto, interessado e dando bons conselhos, e, se você já tem alguém assim, vá logo rumo ao sucesso.Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-23211204190296970962009-05-15T20:34:00.000-07:002014-08-13T08:47:22.758-07:0010 coisas que me deixam realmente putoResolvi escrever esse post depois de um incidente que tive – e que será o primeiro relatado aqui – que me deixou extremamente irritado. Lembrei de um dos vídeos que mais gosto que é do pessoal do Terça Insana<br />
<br />
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/V7eR6wtjcxA&hl=pt-br&fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/V7eR6wtjcxA&hl=pt-br&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"></embed></object><br />
<br />
<br />
e daí tentei lembrar de outras situações que me deixam puto e resolvi compartilhar aqui no blog. Veja bem, não é qualquer coisinha atoa, tive que olhar fundo e descobrir coisas que sejam realmente insuportáveis para mim. E vou dizer, não foi fácil conseguir os 10 itens e se você quiser pode deixar uma lista sua num comentário. Lá vai então ...<br />
<br />
1 –Aqui perto de casa tem um sinal que fecha por 2 minutos e abre por três segundo e ele é meu caminho na maioria das vezes que preciso chegar em casa. Acontece que muitas vezes paro no sinal atrás de outros carros e quando o sinal abre geralmente passam só dois carros. <br />
<br />
2 - Quando entra aquele mosquitinho quase invisível no nariz e dá um desespero pra tirar. É impressionante a sensação horrível quando entra alguma coisa pequena no nariz. Serviria até como mecanismo de tortura :)<br />
<br />
3 - Quando preciso muito falar com alguém, espero chamar várias vezes e, quando atende, é a secretária eletrônica. Dá uma sensação que de fato alguém atendeu e a gente chega a falar “Alô!”, aliviado da pessoa estar em casa e pensa ter valido a pena ter esperado tocar todas aquelas vezes.<br />
<br />
4 - Quando fica aquela música que detestamos na cabeça. <br />
<br />
5 - Ver uma geladeira cheia de imã de geladeira. Não sei porque mas isso me deixa irritado. Dá vontade de passar a mão e derrubar tudo.<br />
<br />
6 - Trabalho com informática e uma das coisas que me deixam realmente estressado é a quantidade de coisinhas que é preciso resolver antes de se começar a resolver o problema real. Se preciso instalar um programa X qualquer, para isso entro na internet, procuro umas dicas de procedimento de como fazer e baixo o pacote do programa a ser instalado. Começo a seguir o passo a passo e uma das primeiras coisas é compilar o programa. Mas antes é preciso instalar as bibliotecas, então vou lá e instalo. Compilo o programa e ocorre que está faltando outras bibliotecas. Então paro tudo, faço download e instalo as benditas. Compilo novamente e acusa que uma das bibliotecas que já estava instalada no sistema operacional é incompatível com a versão de uma das bibliotecas que eu recém instalei ... e assim vai ... um ciclo interminável e desesperador que está sendo responsável pelos meus primeiros fios de barba branca.<br />
<br />
7 - Acordar cedo. O ser humano moderno não nasceu pra isso.<br />
<br />
8 – Quando dá pau no Word ou no email e tenho que escrever tudo de novo.<br />
<br />
9 – Minhas tias contando pela bilionésima vez a mesma história.<br />
<br />
10 – Todas as vezes que o Corinthians vence um jogo.Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com1tag:blogger.com,1999:blog-21711004.post-6734914584460940062009-01-17T17:22:00.000-08:002009-02-26T04:59:03.305-08:00A verdade sobre os carros de mensagem de som.Hoje eu passei por um daqueles carros que fazem telegrama falado. Tava escrito assim na lateral “Mensagem de amor pra quem você ama.”. Eu queria saber de uma só pessoa nesse mundo que recebeu um negócio desses e gostou. Sim, porque só quem se diverte com isso são as pessoas que não têm nada a ver com a história. Quem recebe fica com cara de besta e quem manda, depois que percebe o desespero do outro, se toca da burrada que fez e ficam os dois ali tentando disfarçar. Aí a graça só sobra pra quem tá de fora curtindo com a sem graceira deles. E os lugares então, são escolhidos a dedo pra serem o mais constrangedor possível. Na escola, no trabalho, na academia, no futebol do final de semana. A gente leva um tempão pra criar uma áurea de respeito e conseguir a admiração dos colegas e pronto – tudo está destruído assim, em questão de minutos. Eu já recebi um na rodoviária. Vê se isso é lugar de mandar carro de som. Eu ia viajar e era meu aniversário e não iria poder passar com minha namorada. Ela então perguntou pro meu amigo se ele achava que eu iria gostar de receber a mensagem e o miserável disse que sim, que eu iria adorar. Era noite e a rodoviária tava lotada, bem como é uma rodoviária: gente de todo tipo e a maioria emburrada de ter de estar ali com gente de todo tipo. Aquilo já chegou tocando música alto e parou na esquina. Aí eu vi aquela movimentação, aquele vuco-vuco, o povo se aglomerando pra ver o que era e cheguei junto também. Quando vi o carro ali parado e o cara saindo com o microfone pensei “Hahaha quem será o coitado?? Vou ficar aqui só esperando pra ver a cara do otário.” O sujeito começou falar e eu comecei a perceber que tinha a ver comigo. Começou a me dar um frio na barriga. Eu olhei pra minha namorada e ela tava rindo, adorando aquilo tudo. Demorou um pouco e o cara solta meu nome. Não teve jeito, tive que me aproximar e ficar ali, no meio da multidão. Nessas horas você não consegue encarar ninguém, mas consegue perceber, tipo olhando pro horizonte das cabeças, a expressão de “Ihh, se fudeu!” na cara das pessoas. Eu não sei como tava minha cara na hora, tentei dar o sorrisinho menos sem-graça possível e ficar lá torcendo pra tudo acabar logo. <br /><br />Eu também não consigo imaginar de onde surgiu a idéia de que as pessoas iriam gostar de receber uma declaração sentimental de outra, que já não é fácil receber no escurinho do quarto, sendo dita num carro no meio da rua e podendo ser ouvida a quatro quarteirões dali. Eu acho que deve ter acontecido assim: a namorada toda romântica grava uma fita com uma declaração pro namorado e combina com o irmão que tem um carrão todo equipado com a sonzeira - módulo, subwoofer, twister e o escambal – de irem na casa dele fazerem uma surpresa. Chegam lá já tocando música alto e param em frente da casa. O povo lá dentro já se irrita porque aquele som alto ta atrapalhando ouvir a TV e o pai levanta pra ver o que ta acontecendo. Abre a cortina e vê a namorada do filho saindo do carro e grita pro coitado do garoto que é pra ele ir lá fora acabar com aquela zueira. A mãe, ouvindo aquilo, aproveita pra espisinhar a garota, de quem ela já não gosta muito, e começa a ladainha (como que aquela gata gente boa que a gente escolhe pra casar vira uma velha chata dada a ladainhas??). O cara já sai de casa PUTO dando esporro na namorada, o que ela ta pensando, aquilo é uma casa de família, ta aí com esse som nas alturas atrapalhando os vizinhos, tinha que ser coisa desse seu irmão delinqüente mesmo e por aí vai ... Nesse ínterim, o vizinho judeu da frente que acompanhou todo o ocorrido pensa “Jacó pode se dar bem com esse. Até que todo casal receba uma desse e caia na real, Jacó já ta rica.” E chama a filinha pra planejarem o próximo negócio. <br /> <br />Eu andei pesquisando e parece-me que só no Brasil é que existe isso. Refletindo, até que faz sentido, afinal somos um povo pacífico, cordato, que leva tudo no bom humor. Então um negócios desses consegue prosperar por aqui. Agora imagina nos outros países onde o povo já não é tão calminho. Tipo, nos EUA, o jovem recebe um desses na escola, acha que é provocação, saca uma sub-metralhadora e metralha o carro, a namorada, o povo que tava chegando perto e depois se entrega dizendo que eles é que pediram por isso. No Afeganistão - o carro chega, é suspeito, o cara pula em cima e explode tudo. No Japão, o cara namora uma ocidental que manda o carro, ele assiste tudo com aquela expressão de botox, entra na casa e se mata com aquela faquinha pois aquilo foi uma grande afronta à sua honra. Na China – uma empresa ocidental que estava por lá faz um desses pro aniversário de um de seus funcionários. Os chineses vêem, dissecam toda a sistemática do negócio e abrem a maior firma do mundo de mensagem falada com filiais aqui no Brasil.Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com2tag:blogger.com,1999:blog-21711004.post-41764053124261873802009-01-08T21:44:00.000-08:002009-01-10T16:29:13.827-08:00O corte do Samurai"<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNgq8l2WojqXnL4WfjXteNFwxfiXVbSLklBNpGl7pdHgCYaPWq4XP-FfK6IlD6arYzhdpvHZavB3r9RAbLoKAeM1C9Ja7xtE2Wy_oD2uk1Z54F5kNseOX8JdAMFvHeyUzzEbyy/s1600-h/samurai_em_pe.jpeg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 124px; height: 100px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNgq8l2WojqXnL4WfjXteNFwxfiXVbSLklBNpGl7pdHgCYaPWq4XP-FfK6IlD6arYzhdpvHZavB3r9RAbLoKAeM1C9Ja7xtE2Wy_oD2uk1Z54F5kNseOX8JdAMFvHeyUzzEbyy/s400/samurai_em_pe.jpeg" alt="" id="BLOGGER_PHOTO_ID_5289166143635783314" border="0" /></a>De todas as centenas de golpes com a espada que aprendemos nenhum é tão mortal quanto o que chamamos de - O corte do samurai.<br /><br />A espada entra entre os ossos na altura do cotovelo a uma velocidade de nada menos que 142 m/s. Qualquer coisa menor do que isso irá fazer a lâmina resvalar em algum momento. Após passar pelos braços o tronco é atingido numa altura onde não precisamos mais nos preocupar com as costelas, o único osso pela frente é a coluna vertebral. Se assim não fosse seria impossível atingir o resultado. No mais, os principais obstáculos são os rins, intestinos, o músculo abdominal e todo fluído existente. Todo o movimento leva cerca de 2 segundos e requer a aplicação de uma força de aproximadamente 30 quilos. Não é muito se pensarmos que existem animais cuja mordida gera uma pressão 100 vezes maior e não consegue decepar nem um braço.<br /><br />Esse é o corte do samurai. Aprendi aos 12 anos, pouco antes de terminar o treinamento. Tenho orgulho em dizer que fui o primeiro da minha turma. Nunca o executei numa pessoa real. "<br /><br />Katsumiro Otoma descrevendo um dos golpes que aprendeu com a espada em seu treinamento.Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-4371287856603091672007-03-04T22:02:00.000-08:002010-11-30T04:07:41.115-08:00Como anda sua criatividade?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnAXW9BrwGqvO-RzxeMZQb7ZGB8rTssJJKak_-heRzO8oc7d3rhT7_qnlZGnqr45U-9dOtK6YACWG1stH5dU7a87c8wjHY6JJC0qT96GgS1N3_kJ0adP7GGoXCNUG2WRoqi5ft/s1600-h/Einstein-2005.jpg"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnAXW9BrwGqvO-RzxeMZQb7ZGB8rTssJJKak_-heRzO8oc7d3rhT7_qnlZGnqr45U-9dOtK6YACWG1stH5dU7a87c8wjHY6JJC0qT96GgS1N3_kJ0adP7GGoXCNUG2WRoqi5ft/s320/Einstein-2005.jpg" alt="" id="BLOGGER_PHOTO_ID_5038317574294530530" border="0" /></a><br />Nos meus estudos sobre modelagem OO, padrões, frameworks, etc, às vezes fico impressionado com a criatividade das pessoas que geram essas soluções. Gosto de pensar que trabalhar com programação é um tipo de arte, já que existem várias maneiras de combinarmos as peças que compõem uma solução e, dependendo de como isso é feito, pode-se conseguir algo brilhante ou algo que fracaça. A imagem do artista nos remete à liberdade criativa que, para mim, é a maior manifestação de inteligência possível. Einstein é considerado o ser humano mais inteligente de todos os tempos porque teve a idéia mais criativa que se tem notícia. Gostaria de um dia deixar de só consumir o que é produzido em computação (notavelmente quase tudo no exterior) e conseguir criar como “eles”. Falando neles, e como eles criam não? Até se compararmos nosso meio artístico, que em princípio deveria ser formado por pessoas as mais criativas, quase tudo que é feito aqui é algum tipo de cópia. Difícil algo realmente original. O lançamento do iPhone rendeu para a Apple 200 novas patentes. Isso é o que o Brasil registra em um ano. E qual será o motivo disso? Arrisco dizer que um dos principais é que não nos preocupamos em ser criativos. Não é da nossa cultura. Não somos estimulados a isso pelos nossos pais, pela sociedade e pelo governo. A China, conhecida pela pirataria e pelo plágio escancarado de projetos dos outros, quer reverter essa situação e está investindo pesado em ciência. Cientista na China tem status de pop star (como deveria ser em toda parte do mundo). Muito do café que exportamos vai para a Alemanha, que cria diversas roupagens para o produto e o exporta com o triplo do valor. Esse é o principal diferencial entre um país desenvolvido dos outros. O tal do “valor agregado”. Enquanto nos limitarmos a exportar matéria prima, nunca sairemos da condição de colônia.Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0tag:blogger.com,1999:blog-21711004.post-10161600100037486712007-02-21T17:29:00.000-08:002009-03-09T18:11:20.196-07:00A Sublime Arte de Mijar em Pé<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwO-nCKI_cvCxG4NVCY2O6eK1dFS36CmlEn7MUlPGZteVHiioBgbt4qeKYkmS1FvKYoi1MVE-Q4-tCU8JM9ITf3UoamMktwWPfnSwDlP7c7lLbwPJz88ioyEa92Q8NCZOHjx7o/s1600-h/jerry_lewis_drafiting_team.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwO-nCKI_cvCxG4NVCY2O6eK1dFS36CmlEn7MUlPGZteVHiioBgbt4qeKYkmS1FvKYoi1MVE-Q4-tCU8JM9ITf3UoamMktwWPfnSwDlP7c7lLbwPJz88ioyEa92Q8NCZOHjx7o/s320/jerry_lewis_drafiting_team.jpg" alt="" id="BLOGGER_PHOTO_ID_5034165518725402034" border="0" /></a><br /> <style type="text/css"> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --> </style> <p class="western" style="margin-bottom: 0cm; text-align: center;" lang="pt-BR"><br /></p> <p class="western" style="margin-bottom: 0cm;" lang="pt-BR">As mulheres têm razão de sentirem inveja de uma das nossas capacidades mais sublimes, símbolo da liberdade absoluta e o que nos torna, durante alguns segundos, o ser mais poderoso da Terra. Estou falando da incrível capacidade que temos de urinar, virtualmente, em qualquer lugar, a qualquer momento e, principalmente, em qualquer direção.<br /></p> <p class="western" style="margin-bottom: 0cm;" lang="pt-BR">Por quantas vezes já não estivemos naquela situação depois de ter tomado as seis primeiras latinhas sem interrupção e, de repente, como que um juiz apitando um pênalti, nosso cérebro seqüestra todos os nossos sentidos em função de um único objetivo, libertarmos os aproximadamente três litros de xixi que acumulamos nos últimos trinta minutos. Levantamos rapidamente em estado de alerta, tentando não levantar suspeitas da nossa intenção, em direção ao banheiro mais próximo. Chegando lá descobrimos que três garotas, repletas de quites de maquiagem, acabaram de adentrar sem previsão de saída. Ligamos todos os nossos sentidos de localização para tentar encontrar um lugar substituto, quando vemos o anfitrião posicionar-se em frente à porta dizendo, com a maior cara amarela, que aquele é o único banheiro da casa. Começamos a suar frio, a agonia de saber que a bexiga pode explodir a qualquer momento aumentando. O que fazemos então?? Entramos em desespero?? Claro que não! Simplesmente saímos sorrateiramente em busca da primeira árvore mais escura que encontramos e despejamos tudo ali! A sensação de alívio é indescritível, nada pode nos incomodar, afinal, estamos de pé, cabeça erguida, vento na cara, olhando friamente nos olhos de qualquer um que ouse nos criticar.<br /></p> <p class="western" style="margin-bottom: 0cm;" lang="pt-BR">Outra fonte de grande prazer é a possibilidade de dispararmos em qualquer direção. Se estamos na praia, podemos fazer desenhos na areia, exercitando assim nossos dons artísticos. Quando crianças podemos fazer guerrinhas uns com os outros estreitando nossos laços de afeto (deve ser por isso que somos mais companheiros que as mulheres). Se aquele mala do futebol está do nosso lado no vestiário depois da partida, podemos posicionar o jato num ângulo que espirre várias gotas nele e, se ele vier reclamar, pedimos desculpas esfarrapadas (isso às vezes acontece sem querer mesmo), ou então chutamos o balde e apontamos tudo diretamente para ele e seja o que Deus quiser! Nada mais gratificante que, depois de uma seção de Cinemark, entrarmos no banheiro e os urinóis grudados na parede estão cheios de gelo. Fazemos mira e começamos o ataque para derreter os inimigos. Uns mantêm o tiro em uma só pedra até que esta se desintegre por inteiro, outros lançam seus lasers por todos os lados procurando ferir o máximo de alienígenas possível. Qualquer uma que seja a estratégia, nestes segundos somos o Lucky Sky Walker com nosso sabre de luz devotado à derrotar o Darth Vader e salvar o universo!!! As possibilidades são infinitas ....<br /></p> <p class="western" style="margin-bottom: 0cm;" lang="pt-BR">Provavelmente esta flexibilidade é fruto de anos de evolução, pois houve uma época em que era crucial sair correndo de animais selvagens mesmo quando estivéssemos nos aliviando. Isso certamente ajudou na sobrevivência da nossa espécie e garantiu que hoje você possa estar aí lendo esse monte de bobeira. E viva La Evolucion!!</p>Masdevalhttp://www.blogger.com/profile/16076659373060607546noreply@blogger.com0