{"id":1649,"date":"2013-11-10T22:29:48","date_gmt":"2013-11-11T01:29:48","guid":{"rendered":"https:\/\/devkico.itexto.com.br\/?p=1649"},"modified":"2014-01-22T08:15:21","modified_gmt":"2014-01-22T11:15:21","slug":"como-cai-java-na-programacao-orientada-objetos","status":"publish","type":"post","link":"https:\/\/devkico.itexto.com.br\/?p=1649","title":{"rendered":"Como cai no Java e na programa\u00e7\u00e3o orientada a objetos"},"content":{"rendered":"<figure id=\"attachment_1650\" aria-describedby=\"caption-attachment-1650\" style=\"width: 180px\" class=\"wp-caption alignright\"><a href=\"http:\/\/pt.wikipedia.org\/wiki\/Franz_Weissmann\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1650 \" alt=\"Cubo Vazado - Franz Weissmann\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/cubovazado-300x268.jpg\" width=\"180\" height=\"161\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/cubovazado-300x268.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/cubovazado.jpg 412w\" sizes=\"(max-width: 180px) 100vw, 180px\" \/><\/a><figcaption id=\"caption-attachment-1650\" class=\"wp-caption-text\">Cubo Vazado &#8211; Franz Weissmann<\/figcaption><\/figure>\n<p>No post anterior disse que<a href=\"https:\/\/devkico.itexto.com.br\/?p=1632\"> o valor que mais apreciso em Groovy e Grails<\/a> \u00e9 \u00a0a populariza\u00e7\u00e3o que este propicia da plataforma Java EE. Mais do que simplesmente trocar de linguagem, n\u00e3o raro ocorre tamb\u00e9m a inclus\u00e3o de um novo paradigma de desenvolvimento: a programa\u00e7\u00e3o orientada a objetos (POO). Esta n\u00e3o \u00e9 uma &#8220;mudan\u00e7a&#8221; f\u00e1cil (se \u00e9 que pode ser chamada de mudan\u00e7a: prefiro o verbo\u00a0<strong>agregar<\/strong>), e acredito que ao expor minha pr\u00f3pria experi\u00eancia talvez possa ajudar aqueles que neste momento estejam passando por esta experi\u00eancia.<\/p>\n<h2>Minha origem com TK-85 e MSX<\/h2>\n<figure id=\"attachment_1651\" aria-describedby=\"caption-attachment-1651\" style=\"width: 300px\" class=\"wp-caption alignright\"><a href=\"http:\/\/pt.wikipedia.org\/wiki\/TK_85\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1651\" alt=\"Ah... TK-85!\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/tk85_large-300x185.jpg\" width=\"300\" height=\"185\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/tk85_large-300x185.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/tk85_large.jpg 442w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-1651\" class=\"wp-caption-text\">Ah&#8230; TK-85!<\/figcaption><\/figure>\n<p>O primeiro computador no qual pude por as m\u00e3os era um TK-85 em 1985. Meu pai era radioamador e naquela \u00e9poca voc\u00ea podia ligar um cartucho atr\u00e1s desta maquininha e com isto transmitir e receber mensagens em <a href=\"http:\/\/pt.wikipedia.org\/wiki\/C%C3%B3digo_Morse\">c\u00f3digo morse<\/a>, \u00a0substituindo o modo tradicional usando algum <a href=\"http:\/\/pt.wikipedia.org\/wiki\/Telegrafia\">telegrafo<\/a>.<\/p>\n<p>Foi amor \u00e0 primeira vista. Este computador era ligado a uma televis\u00e3o preto e branco que servia de monitor. N\u00e3o tinha disquetes ou CD-ROM. Se n\u00e3o me engano tinha apenas uma entrada para cartucho (ou algo assim) e outra para um gravador de fitas K7 aonde voc\u00ea podia salvar seus dados acredite se quiser. Eu tinha seis anos.<\/p>\n<p>O que me lembro bem \u00e9 que eu podia criar meus pr\u00f3prios jogos nele usando <a href=\"http:\/\/pt.wikipedia.org\/wiki\/BASIC\">BASIC<\/a>. Como eu fazia isto? Existiam livros nos quais vinha impresso o c\u00f3digo fonte dos jogos. Ent\u00e3o eu pacientemente os digitava naquele teclado de borracha linha a linha. Terminava tudo e em seguida mandava executar. Se tudo estivesse certo o jogo aparecia, caso contr\u00e1rio eu tinha de fazer tudo de novo. Este foi o meu primeiro contato com a programa\u00e7\u00e3o. Ent\u00e3o, se o Dijkstra estiver certo, sim: j\u00e1 comecei me mutilando.<\/p>\n<blockquote><p>\u00c9 pr\u00e1ticamente imposs\u00edvel ensinar boa program\u00e7\u00e3o a estudantes que tenham sido expostos anteriormente ao BASIC: como potenciais programadores eles se encontram mentalmente mutilados sem qualquer chance de recupera\u00e7\u00e3o.\u00a0&#8211; Edger Dijkstra<\/p><\/blockquote>\n<p>O legal \u00e9 que j\u00e1 naquela \u00e9poca eu percebia que mudando alguns trechos do c\u00f3digo o jogo se comportava diferente. Foi tamb\u00e9m minha primeira experi\u00eancia &#8220;hacker&#8221;.<\/p>\n<figure id=\"attachment_1652\" aria-describedby=\"caption-attachment-1652\" style=\"width: 180px\" class=\"wp-caption alignright\"><a href=\"http:\/\/pt.wikipedia.org\/wiki\/MSX#Gradiente_Expert_XP-800\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1652 \" alt=\"MSX\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/Gradiente_XP800_System_s1-300x245.jpg\" width=\"180\" height=\"147\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/Gradiente_XP800_System_s1-300x245.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/Gradiente_XP800_System_s1.jpg 350w\" sizes=\"(max-width: 180px) 100vw, 180px\" \/><\/a><figcaption id=\"caption-attachment-1652\" class=\"wp-caption-text\">MSX<\/figcaption><\/figure>\n<p>Logo em seguida veio o MSX que era bem mais avan\u00e7ado que o TK-85. Eu devia ter uns sete anos e a hist\u00f3ria era basicamente a mesma: livros de jogos escritos em BASIC que eu alterava conforme ia digitando no computador.<\/p>\n<p>E logo ap\u00f3s isto veio o hiato de dez anos. S\u00f3 voltei a programar quando fui para um curso t\u00e9cnico de inform\u00e1tica em Belo Horizonte.<\/p>\n<h2>Visual Basic, Delphi, PHP, C, Pascal<\/h2>\n<p>De novo meu amig\u00e3o Basic, desta vez sob a forma do Visual Basic 3 da Microsoft. Era coisa de louco o neg\u00f3cio: eu criava meus formul\u00e1rios s\u00f3 arrastando e soltando. Logo em seguida eu adicionava um evento ou outro nos meus bot\u00f5es e componentes e pronto: l\u00e1 estava meu programa &#8220;profissional&#8221;. Meu primeiro &#8220;hit&#8221;, o <a href=\"http:\/\/www.oocities.org\/br\/edmilsonaleixo\/matmaker.htm\">MatMaker<\/a>, foi escrito nesta linguagem. Era um &#8220;solucionador de problemas matem\u00e1ticos&#8221;. Fui citado em diversas teses de mestrado, trabalhos de conclus\u00e3o de curso, etc. Foi meu grande incentivo para seguir a carreira.<\/p>\n<p>Mas o Visual Basic tinha um problema: eu precisava distribuir diversos arquivos junto com o execut\u00e1vel. Foi quando conheci o Delphi, que gerava apenas um EXE. Ent\u00e3o atualizei o MatMaker e esta foi por um bom tempo minha linguagem de programa\u00e7\u00e3o favorita. Comecei no Delphi 3 e, como a maior parte dos delpheiros, terminei no 7.<\/p>\n<p>Logo em seguida brinquei um pouco com C, Pascal e PHP. Mas n\u00e3o era nada muito avan\u00e7ado: basicamente programa\u00e7\u00e3o que tentava ser estruturada. Olhando hoje para aqueles sistemas da vontade de estapiar aquele moleque de 17 anos. :)<\/p>\n<h2>Primeiro contato com orienta\u00e7\u00e3o a objetos no Delphi<\/h2>\n<p>Em 2001 lancei meu primeiro produto. Se chamava Livreiro: era um ERP vertical para livrarias feito em Delphi (lembra aquela vers\u00e3o gratuita do Delphi 5 que vinha em uma revista?). Naquele momento j\u00e1 sabia programa\u00e7\u00e3o estruturada e, na pr\u00e1tica, o que eu realmente fazia era programa\u00e7\u00e3o baseada em eventos de interface.<\/p>\n<p>O Livreiro foi crescendo e com isto a manuten\u00e7\u00e3o foi ficando complicada. Era preciso ter c\u00f3digo reaproveit\u00e1vel. Surgem meus primeiros componentes sob a forma de <a href=\"http:\/\/pt.wikipedia.org\/wiki\/DLL\">DLLs<\/a>. Basicamente um amontoado de fun\u00e7\u00f5es e formul\u00e1rios que eu usava o tempo inteiro.<\/p>\n<p>O pr\u00f3ximo passo foi a orienta\u00e7\u00e3o a objetos. Eu n\u00e3o via uma classe como uma classe, mas sim como uma maneira de eu digitar menos c\u00f3digo. Pegava o c\u00f3digo que usava em diversos pontos e colocava em uma classe. Logo em seguida o que eu fazia era simplesmente criar algo que herdasse daquela classe. E este foi meu primeir\u00edssimo contato com a orienta\u00e7\u00e3o a objetos. N\u00e3o era Programa\u00e7\u00e3o Orientada a Objetos, mas sim Baseada em Objetos no m\u00e1ximo, tal como eu j\u00e1 fazia com o Visual Basic.<\/p>\n<h2>De mecanismo de reuso \u00e0 cria\u00e7\u00e3o de objetos reais<\/h2>\n<figure id=\"attachment_1653\" aria-describedby=\"caption-attachment-1653\" style=\"width: 300px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1653\" alt=\"Brucutu!\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/obra_brucutu-300x237.jpg\" width=\"300\" height=\"237\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/obra_brucutu-300x237.jpg 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/obra_brucutu.jpg 345w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-1653\" class=\"wp-caption-text\">Brucutu!<\/figcaption><\/figure>\n<p>No meu primeiro est\u00e1gio tive a que talvez foi a experi\u00eancia mais emocionante da minha carreira: desenvolvi o sistema de comissionamento da <a href=\"http:\/\/pt.wikipedia.org\/wiki\/Brucutu_(mina)\">Mina de Brucutu<\/a>. Enquanto programava eu observava que haviam &#8220;categorias de objetos&#8221;, cada uma representando uma funcionalidade diferente do programa.<\/p>\n<p>Quando liguei a palavra &#8220;categoria&#8221; ao termo &#8220;classe&#8221; a coisa passou a fazer sentido. Finalmente entendia O QU\u00ca eram as tais das classes. Eram categorias de objetos, cada qual com a sua pr\u00f3pria responsabilidade. Pela primeira vez escrevi um sistema REALMENTE modular, \u00a0REALMENTE expansivel.<\/p>\n<p>Cada classe passava a representar algo como se fosse uma personagem em uma pe\u00e7a de teatro. E elas interagiam entre si de tal forma que aquele ato que encenavam era na realidade o meu sistema.<\/p>\n<h2>Padr\u00f5es de projeto e Java<\/h2>\n<figure id=\"attachment_1654\" aria-describedby=\"caption-attachment-1654\" style=\"width: 200px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1654\" alt=\"Aprneda em 24 horas Java 1.1 - Livro massa!\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/java24horas.jpg\" width=\"200\" height=\"200\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/java24horas.jpg 200w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/java24horas-150x150.jpg 150w\" sizes=\"(max-width: 200px) 100vw, 200px\" \/><figcaption id=\"caption-attachment-1654\" class=\"wp-caption-text\">Aprneda em 24 horas Java 1.1 &#8211; Livro massa!<\/figcaption><\/figure>\n<p>Aquele sistema foi feito em Visual Basic. Ent\u00e3o eu n\u00e3o tinha orienta\u00e7\u00e3o a objetos, mas programa\u00e7\u00e3o baseada em objetos pois o Visual Basic 6 n\u00e3o tinha heran\u00e7a direito. Eu no m\u00e1ximo conseguia simular algo pr\u00f3ximo. No entanto quando aprendi Visual Basic 3 estava surgindo um neg\u00f3cio chamado Java, que aprendi lendo um livro chamado &#8220;Aprenda Java em 24 horas&#8221;.<\/p>\n<p>(S\u00f3 pra lembrar, mais ou menos naquela \u00e9poca a Microsoft havia feito a CAGADA de lan\u00e7ar um VB.net completamente incompat\u00edvel com a vers\u00e3o anterior. Muita gente foi pro Java com medo de se ferrar de novo com a mesma hist\u00f3ria. Isto rendeu um <a href=\"https:\/\/devkico.itexto.com.br\/?p=145\">post aqui<\/a> em 2008.)<\/p>\n<p>Aquele livro era massa! Mas n\u00e3o falava muito em orienta\u00e7\u00e3o a objetos: s\u00f3 o b\u00e1sico. Sabia que existia heran\u00e7a, interfaces, um tal de polimorfismo e s\u00f3. De resto at\u00e9 ent\u00e3o Java s\u00f3 me servia para escrever alguns applets (algu\u00e9m lembra disto?) bem tolos.<\/p>\n<p>Para os pr\u00f3ximos projetos Java parecia (e era) uma op\u00e7\u00e3o interessante. Comprei ent\u00e3o o &#8220;Java como Programar&#8221; dos Deitel e a\u00ed sim aprendi o que era polimorfismo, heran\u00e7a, etc. E havia tamb\u00e9m o <a href=\"http:\/\/www.guj.com.br\">GUJ<\/a>, que me ajudava HORRORES com algumas discuss\u00f5es que eram simplesmente fant\u00e1sticas.<\/p>\n<p>Eu ouvia falar de padr\u00f5es de projeto mas n\u00e3o entendia o que eram. Ent\u00e3o comprei dois livros: o &#8220;<a href=\"http:\/\/www.amazon.com\/Design-Patterns-Elements-Reusable-Object-Oriented\/dp\/0201633612\">Padr\u00f5es de Projeto<\/a>&#8221; original e o &#8220;<a href=\"http:\/\/www.livrariasaraiva.com.br\/produto\/1995765\/\">Use a cabe\u00e7a: Padr\u00f5es de Projeto<\/a>&#8220;. Foram livros important\u00edssimos na minha forma\u00e7\u00e3o pois pela primeira vez eu via que outras pessoas enfrentavam os mesmos problemas que n\u00f3s tinhamos na empresa! Ao mesmo tempo foi tamb\u00e9m um alerta, pois foi quando vi tamb\u00e9m que o uso de padr\u00f5es apenas por serem padr\u00f5es pode ser a maior cilada (escrevo sobre isto um dia).<\/p>\n<h2>Como liguei as palavras &#8220;categoria&#8221; e &#8220;classe&#8221;<\/h2>\n<p>Em 2001 comecei o curso de Filosofia na UFMG. E l\u00e1 entrei em contato com os textos de Plat\u00e3o e Arist\u00f3teles. Diversos comentadores usam a met\u00e1fora do &#8220;mundo das id\u00e9ias&#8221; do Plat\u00e3o, ent\u00e3o eu pude ver algo parecido com &#8220;classes&#8221;.<\/p>\n<p>Junto a isto vinha o texto &#8220;Categorias&#8221; do Arist\u00f3teles que, mesmo n\u00e3o tendo o lido, tomei contato sobre o mesmo atrav\u00e9s dos comentadores, ou seja, quem acidentalmente me preparou para a orienta\u00e7\u00e3o a objetos foi o curso de Filosofia da UFMG. Sei que n\u00e3o \u00e9 o caso da maior parte dos programadores, ent\u00e3o fica a dica aqui: pesquisem a respeito.<\/p>\n<h2>A transi\u00e7\u00e3o foi f\u00e1cil?<\/h2>\n<p>N\u00e3o foi f\u00e1cil: foi horr\u00edvel. Eu estava habituado ao modo de trabalho anterior que por mais que critiquem era e \u00e9 extremamente produtivo. Primeiro montavamos a interface e em seguida iamos enriquecendo o sistema com fun\u00e7\u00f5es compartilhadas, m\u00f3dulos, o banco de dados e o resto. Conforme ia entrando no Java parecia que era um modo de trabalho extremamente retr\u00f3grado.<\/p>\n<p>Conforme o tempo foi passando vi que aquela minha impress\u00e3o era s\u00f3 uma impress\u00e3o. Meus c\u00f3digos iam melhorando conforme ia me habituando com a orienta\u00e7\u00e3o a objetos. Eu conseguia ter uma vis\u00e3o mais ampla do sistema, conseguia gerar solu\u00e7\u00f5es que eram f\u00e1ceis de serem alteradas no futuro. Ent\u00e3o aquela perda da interface &#8220;arrastar e soltar&#8221; come\u00e7ava a valer muito \u00e0 pena.<\/p>\n<p>Diversos colegas n\u00e3o conseguiram fazer a transi\u00e7\u00e3o. Na primeira dificuldade sempre acabav am voltando para o VB com a promessa de depois refazer a coisa em Java ou C#, o que nunca ocorria. H\u00e1 sempre um medo na mudan\u00e7a: o segredo \u00e9 perceber que o ganho compensa no final. Para mim compensou bastante: fez minha carreira. Foi a mudan\u00e7a fundamental.<\/p>\n<p>Sobre este medo, \u00e9 sempre bom terminar com este v\u00eddeo da Carli Fiorina: &#8220;The Dynamics of Change and Fear&#8221;:<\/p>\n<p><iframe loading=\"lazy\" src=\"\/\/www.youtube.com\/embed\/w3IbKbDhfKw\" height=\"315\" width=\"420\" allowfullscreen=\"\" frameborder=\"0\"><\/iframe><\/p>\n<p><a href=\"http:\/\/www.youtube.com\/watch?v=w3IbKbDhfKw\">http:\/\/www.youtube.com\/watch?v=w3IbKbDhfKw<\/a><\/p>\n<p>PS: depois que voc\u00ea supera esta barreira (acredito que ela sempre surja no momento em que voc\u00ea rompe o primeiro paradigma com o qual se sentia seguro) a coisa muda. Tudo fica mais f\u00e1cil: da\u00ed surgiram diversas outras linguagens como por exemplo Javascript, Groovy, Lisp, Clojure, C++ e tantas outras que tem preenchido minha vida desde ent\u00e3o. Acredite: vale \u00e0 pena. Insista.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No post anterior disse que<a href=\"https:\/\/devkico.itexto.com.br\/?p=1632\"> o valor que mais apreciso em Groovy e Grails<\/a> \u00e9 \u00a0a populariza\u00e7\u00e3o que este propicia da plataforma Java EE. Mais do que simplesmente trocar de linguagem, n\u00e3o raro ocorre tamb\u00e9m a inclus\u00e3o de um novo paradigma de desenvolvimento: a programa\u00e7\u00e3o orientada a objetos (POO). Esta n\u00e3o \u00e9 uma &#8220;mudan\u00e7a&#8221; f\u00e1cil (se \u00e9 que pode ser chamada de mudan\u00e7a: prefiro o verbo\u00a0<strong>agregar<\/strong>), e acredito que ao expor minha pr\u00f3pria experi\u00eancia talvez possa ajudar aqueles que neste momento estejam passando por esta experi\u00eancia.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[34],"tags":[],"class_list":["post-1649","post","type-post","status-publish","format-standard","hentry","category-paideia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como cai no Java e na programa\u00e7\u00e3o orientada a objetos - \/dev\/Kico<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devkico.itexto.com.br\/?p=1649\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como cai no Java e na programa\u00e7\u00e3o orientada a objetos - \/dev\/Kico\" \/>\n<meta property=\"og:description\" content=\"No post anterior disse que o valor que mais apreciso em Groovy e Grails \u00e9 \u00a0a populariza\u00e7\u00e3o que este propicia da plataforma Java EE. Mais do que simplesmente trocar de linguagem, n\u00e3o raro ocorre tamb\u00e9m a inclus\u00e3o de um novo paradigma de desenvolvimento: a programa\u00e7\u00e3o orientada a objetos (POO). Esta n\u00e3o \u00e9 uma &quot;mudan\u00e7a&quot; f\u00e1cil (se \u00e9 que pode ser chamada de mudan\u00e7a: prefiro o verbo\u00a0agregar), e acredito que ao expor minha pr\u00f3pria experi\u00eancia talvez possa ajudar aqueles que neste momento estejam passando por esta experi\u00eancia.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?p=1649\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:published_time\" content=\"2013-11-11T01:29:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-01-22T11:15:21+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.itexto.net\/devkico\/wp-content\/uploads\/2013\/11\/cubovazado-300x268.jpg\" \/>\n<meta name=\"author\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@loboweissmann\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=1649\",\"url\":\"https:\/\/devkico.itexto.com.br\/?p=1649\",\"name\":\"Como cai no Java e na programa\u00e7\u00e3o orientada a objetos - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=1649#primaryimage\"},\"image\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=1649#primaryimage\"},\"thumbnailUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/cubovazado-300x268.jpg\",\"datePublished\":\"2013-11-11T01:29:48+00:00\",\"dateModified\":\"2014-01-22T11:15:21+00:00\",\"author\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=1649#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?p=1649\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=1649#primaryimage\",\"url\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/cubovazado.jpg\",\"contentUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/cubovazado.jpg\",\"width\":412,\"height\":369,\"caption\":\"Cubo Vazado - Franz Weissmann\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=1649#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como cai no Java e na programa\u00e7\u00e3o orientada a objetos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\",\"url\":\"https:\/\/devkico.itexto.com.br\/\",\"name\":\"\/dev\/Kico\",\"description\":\"Desenvolvendo software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devkico.itexto.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\",\"name\":\"Kico (Henrique Lobo Weissmann)\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"caption\":\"Kico (Henrique Lobo Weissmann)\"},\"sameAs\":[\"https:\/\/x.com\/loboweissmann\"],\"url\":\"https:\/\/devkico.itexto.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Como cai no Java e na programa\u00e7\u00e3o orientada a objetos - \/dev\/Kico","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/devkico.itexto.com.br\/?p=1649","og_locale":"pt_BR","og_type":"article","og_title":"Como cai no Java e na programa\u00e7\u00e3o orientada a objetos - \/dev\/Kico","og_description":"No post anterior disse que o valor que mais apreciso em Groovy e Grails \u00e9 \u00a0a populariza\u00e7\u00e3o que este propicia da plataforma Java EE. Mais do que simplesmente trocar de linguagem, n\u00e3o raro ocorre tamb\u00e9m a inclus\u00e3o de um novo paradigma de desenvolvimento: a programa\u00e7\u00e3o orientada a objetos (POO). Esta n\u00e3o \u00e9 uma \"mudan\u00e7a\" f\u00e1cil (se \u00e9 que pode ser chamada de mudan\u00e7a: prefiro o verbo\u00a0agregar), e acredito que ao expor minha pr\u00f3pria experi\u00eancia talvez possa ajudar aqueles que neste momento estejam passando por esta experi\u00eancia.","og_url":"https:\/\/devkico.itexto.com.br\/?p=1649","og_site_name":"\/dev\/Kico","article_published_time":"2013-11-11T01:29:48+00:00","article_modified_time":"2014-01-22T11:15:21+00:00","og_image":[{"url":"http:\/\/www.itexto.net\/devkico\/wp-content\/uploads\/2013\/11\/cubovazado-300x268.jpg"}],"author":"Kico (Henrique Lobo Weissmann)","twitter_card":"summary_large_image","twitter_creator":"@loboweissmann","twitter_misc":{"Escrito por":"Kico (Henrique Lobo Weissmann)","Est. tempo de leitura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?p=1649","url":"https:\/\/devkico.itexto.com.br\/?p=1649","name":"Como cai no Java e na programa\u00e7\u00e3o orientada a objetos - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devkico.itexto.com.br\/?p=1649#primaryimage"},"image":{"@id":"https:\/\/devkico.itexto.com.br\/?p=1649#primaryimage"},"thumbnailUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/cubovazado-300x268.jpg","datePublished":"2013-11-11T01:29:48+00:00","dateModified":"2014-01-22T11:15:21+00:00","author":{"@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7"},"breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?p=1649#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?p=1649"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/?p=1649#primaryimage","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/cubovazado.jpg","contentUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2013\/11\/cubovazado.jpg","width":412,"height":369,"caption":"Cubo Vazado - Franz Weissmann"},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?p=1649#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"Como cai no Java e na programa\u00e7\u00e3o orientada a objetos"}]},{"@type":"WebSite","@id":"https:\/\/devkico.itexto.com.br\/#website","url":"https:\/\/devkico.itexto.com.br\/","name":"\/dev\/Kico","description":"Desenvolvendo software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devkico.itexto.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7","name":"Kico (Henrique Lobo Weissmann)","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","caption":"Kico (Henrique Lobo Weissmann)"},"sameAs":["https:\/\/x.com\/loboweissmann"],"url":"https:\/\/devkico.itexto.com.br\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/1649"}],"collection":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1649"}],"version-history":[{"count":4,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/1649\/revisions"}],"predecessor-version":[{"id":1723,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/1649\/revisions\/1723"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}