{"id":579,"date":"2019-05-25T15:41:40","date_gmt":"2019-05-25T18:41:40","guid":{"rendered":"http:\/\/lucianodev.com.br\/blog\/?p=579"},"modified":"2019-05-25T15:41:40","modified_gmt":"2019-05-25T18:41:40","slug":"o-que-e-realmente-programacao-orientada-a-objetos-poo-entenda","status":"publish","type":"post","link":"https:\/\/lucianodev.com.br\/blog\/o-que-e-realmente-programacao-orientada-a-objetos-poo-entenda\/","title":{"rendered":"O que \u00e9 REALMENTE Programa\u00e7\u00e3o Orientada a Objetos (POO)? Entenda."},"content":{"rendered":"<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-4648498281437791\" data-ad-slot=\"5451138398\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p>Ol\u00e1 Pessoal,<\/p>\n<p>Venho atrav\u00e9s deste POST falar sobre um t\u00f3pico muito abordado e usado em desenvolvimento de sistemas que AINDA GERA D\u00daVIDAS quanto ao seu significado. Estou falando da famosa PROGRAMA\u00c7\u00c3O ORIENTADA A OBJETOS ou simplesmente (POO).<\/p>\n<p>Apesar de n\u00e3o ser uma t\u00e9cnica nova, a mesma apresenta ser DESAFIADORA para os estudantes em programa\u00e7\u00e3o (e at\u00e9 mesmo alguns profissionais), que encontram dificuldades em seu uso e implementa\u00e7\u00e3o no c\u00f3digo pelo fato do termo &#8220;orienta\u00e7\u00e3o a objetos&#8221; gerar muita confus\u00e3o.<\/p>\n<p>Ent\u00e3o vamos entender neste POST o que \u00e9 <strong>REALMENTE<\/strong> a Programa\u00e7\u00e3o Orientada a Objetos.<\/p>\n<p>&nbsp;<\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-4648498281437791\" data-ad-slot=\"5451138398\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<h2><strong>Entendendo o que \u00e9 Programa\u00e7\u00e3o Orientada a Objetos (POO)<\/strong><\/h2>\n<p>Muitos estudantes que iniciam os seus estudos com programa\u00e7\u00e3o por meio do aprendizado da l\u00f3gica de programa\u00e7\u00e3o com a implementa\u00e7\u00e3o de algoritmos estruturados entende que a constru\u00e7\u00e3o de programas consiste em escrever instru\u00e7\u00f5es expressas por meio de uma linguagem de programa\u00e7\u00e3o, que ser\u00e3o executadas passo a passo para a realiza\u00e7\u00e3o de tarefas (conceitualmente falando, um algoritmo). Neste aprendizado s\u00e3o vistos t\u00f3picos como Introdu\u00e7\u00e3o \u00e0 Programa\u00e7\u00e3o, Vari\u00e1veis e Tipos de Dados, Estruturas Condicionais, Estruturas de Repeti\u00e7\u00e3o e etc.<\/p>\n<p>Apesar de toda a introdu\u00e7\u00e3o inicialmente parecer um pouco dif\u00edcil para aqueles que est\u00e3o come\u00e7ando a programar pela primeira vez, a persist\u00eancia pelo estudo e conhecimento faz com que o aluno adquira a experi\u00eancia, eliminando aos poucos as dificuldades (e em certa parte o MEDO) de desenvolver programas b\u00e1sicos. (Recomendo um artigo meu sobre \u201cMotivos para perder o medo de aprender a programar\u201d, clicando <strong><a href=\"https:\/\/lucianodev.com.br\/blog\/motivos-para-nao-ter-medo-de-aprender-a-programar\/\">NESTE LINK<\/a><\/strong>).<\/p>\n<p>Ap\u00f3s aprender todos os t\u00f3picos fundamentais sobre programa\u00e7\u00e3o, sentimos a sensa\u00e7\u00e3o que aprendemos \u201ctudo\u201d (de alguma forma) sobre criar programas de computador, at\u00e9 que surge em nossa frente a bendita Programa\u00e7\u00e3o Orientada a Objetos (mudando toda a nossa perspectiva).<\/p>\n<p>As linguagens de programa\u00e7\u00e3o atualmente dispon\u00edveis hoje em dia s\u00e3o orientadas a objetos. O que torna confuso o aprendizado na verdade \u00e9 o <strong>REAL SIGNIFICADO<\/strong> do que vem a ser Programa\u00e7\u00e3o Orientada a Objetos, que explicarei agora.<\/p>\n<p>Normalmente, quem ouve o termo Programa\u00e7\u00e3o Orientada a Objetos pela primeira vez quando aprende a construir programas pensa que ir\u00e1 aprender a CONSTRUIR INTERFACES VISUAIS PARA APLICA\u00c7\u00c3O COM OBJETOS, que envolvem bot\u00f5es, formul\u00e1rios, caixas de textos e etc., que por incr\u00edvel que pare\u00e7a <strong>N\u00c3O TEM NADA A VER <\/strong>com aplica\u00e7\u00e3o visual.<\/p>\n<p>A Programa\u00e7\u00e3o Orientada a Objetos (POO) que vem do ingl\u00eas Object-Oriented Programming (OOP) nada mais \u00e9 do que um PARADIGMA DE LINGUAGEM DE PROGRAMA\u00c7\u00c3O, onde s\u00e3o usados \u201cobjetos\u201d como unidade b\u00e1sica de dados e a\u00e7\u00f5es de um programa. Na verdade, a Programa\u00e7\u00e3o Orientada a Objetos \u00e9 uma evolu\u00e7\u00e3o da Programa\u00e7\u00e3o Estruturada que conhecemos.<\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-4648498281437791\" data-ad-slot=\"5451138398\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<h2><strong>Entendendo rapidamente o que s\u00e3o Classes e Objetos<\/strong><\/h2>\n<p>Em Programa\u00e7\u00e3o Orientada a Objetos ouve-se muito no termo \u201cobjeto\u201d, que muitos associam como um elemento visual ou componente gr\u00e1fico que ser\u00e1 visualizado em uma aplica\u00e7\u00e3o, que por incr\u00edvel que pare\u00e7a est\u00e1 totalmente longe disso.<\/p>\n<p>Para entendermos o que \u00e9 um \u201cobjeto\u201d em POO preciso explicar primeiramente o conceito de classe.<\/p>\n<p>Em POO chamamos de classe uma estrutura (ou abstra\u00e7\u00e3o) que cont\u00e9m uma s\u00e9rie de funcionalidades englobando o uso de atributos (vari\u00e1veis da classe) e m\u00e9todos (fun\u00e7\u00f5es da classe), que ser\u00e1 usado por uma aplica\u00e7\u00e3o (por meio do objeto).<\/p>\n<p>J\u00e1 o \u201cobjeto\u201d consiste na inst\u00e2ncia da classe carregada em mem\u00f3ria, que ser\u00e1 utilizado na aplica\u00e7\u00e3o. De uma forma mais \u201ccompreensiva\u201d o objeto nada mais \u00e9 do que uma vari\u00e1vel (tamb\u00e9m chamada de \u201cvari\u00e1vel objeto\u201d) que &#8220;armazena&#8221; uma classe que pode ser manipulada durante a execu\u00e7\u00e3o.<\/p>\n<p>Ent\u00e3o pela conclus\u00e3o que chegamos, Programa\u00e7\u00e3o Orientada a Objetos n\u00e3o tem nada a ver com elementos visuais de uma aplica\u00e7\u00e3o, visto que essa t\u00e9cnica pode ser usada at\u00e9 em programas baseados em \u201cconsole\u201d ou \u201cprompt de comando\u201d (assim como podemos construir uma interface visual usando s\u00f3 programa\u00e7\u00e3o estruturada \u201cpura\u201d).<\/p>\n<p>As linguagens mais populares que adotam o uso da Programa\u00e7\u00e3o Orientada a Objetos s\u00e3o: Java, C#, C++, Ruby, Phyton, PHP, Javascript, Kotlin e etc. (OBS: A linguagem \u201cC\u201d pura n\u00e3o possui POO).<\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-4648498281437791\" data-ad-slot=\"5451138398\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<h2><strong>Quais s\u00e3o as principais Vantagens da Programa\u00e7\u00e3o Orientada a Objetos?<\/strong><\/h2>\n<p>Uma das caracter\u00edsticas da Programa\u00e7\u00e3o Orientada a Objetos mais marcantes \u00e9 o \u201creaproveitamento de c\u00f3digos\u201d, atrav\u00e9s da t\u00e9cnica e \u201cHeran\u00e7a\u201d, onde uma classe (estrutura) pode \u201cherdar\u201d a\u00e7\u00f5es (m\u00e9todos) e\/ou atributos de outra classe existente, sem a necessidade de reescrever o c\u00f3digo (desnecessariamente), economizando tempo.<\/p>\n<p>Outra vantagem \u00e9 o \u201cEncapsulamento\u201d, onde podemos separar aspectos internos e externos (envolvendo atributos e m\u00e9todos) de uma classe por meio dos modificadores de escopo, que definem o n\u00edvel de acesso aos elementos da classe.<\/p>\n<p>Bom pessoal, por hoje \u00e9 s\u00f3, espero que voc\u00eas tenham compreendido o <strong>REAL SIGNIFICADO<\/strong> da Programa\u00e7\u00e3o Orientada a Objetos.<\/p>\n<p>Em breve farei um POST demonstrando na pr\u00e1tica o uso da programa\u00e7\u00e3o orientada a objeto passo a passo, englobando as principais e essenciais t\u00e9cnicas de uma forma clara e f\u00e1cil.<\/p>\n<p>Se voc\u00ea gostou desse POST n\u00e3o deixe de compartilhar, ele pode ser muito \u00fatil para outras pessoas interessadas no assunto.<\/p>\n<p>Um forte abra\u00e7o para todos<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 Pessoal, Venho atrav\u00e9s deste POST falar sobre um t\u00f3pico muito abordado e usado em desenvolvimento de sistemas que AINDA GERA D\u00daVIDAS quanto ao seu significado. Estou falando da famosa&hellip;<\/p>\n","protected":false},"author":1,"featured_media":581,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,18,3],"tags":[],"class_list":["post-579","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","category-poo","category-programacao"],"_links":{"self":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/comments?post=579"}],"version-history":[{"count":4,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/579\/revisions"}],"predecessor-version":[{"id":584,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/579\/revisions\/584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/media\/581"}],"wp:attachment":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/media?parent=579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/categories?post=579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/tags?post=579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}