<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: BarbaraKarvalho</title>
    <description>The latest articles on DEV Community by BarbaraKarvalho (@barbarakarvalho).</description>
    <link>https://dev.to/barbarakarvalho</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F992434%2F54bc1346-8b1a-4afd-83f9-8630fb52173d.jpeg</url>
      <title>DEV Community: BarbaraKarvalho</title>
      <link>https://dev.to/barbarakarvalho</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/barbarakarvalho"/>
    <language>en</language>
    <item>
      <title>Conceitos iniciais sobre Programação Orientação a Objeto (POO)</title>
      <dc:creator>BarbaraKarvalho</dc:creator>
      <pubDate>Sun, 18 Dec 2022 16:32:07 +0000</pubDate>
      <link>https://dev.to/barbarakarvalho/conceitos-iniciais-sobre-programacao-orientacao-a-objeto-poo-lig</link>
      <guid>https://dev.to/barbarakarvalho/conceitos-iniciais-sobre-programacao-orientacao-a-objeto-poo-lig</guid>
      <description>&lt;h2&gt;
  
  
  Origem
&lt;/h2&gt;

&lt;p&gt;Orientação a Objeto tem como origem a Linguagem Simula (Simula Language), que surgiu na década de 60. Conseguinte a Orientação a Objeto tem como propósito criar a similaridade com o mundo real e surgiu na década de 70 com o Alan Kay.&lt;/p&gt;

&lt;h2&gt;
  
  
  Principais pilares
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. Classe
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Uma estrutura que abstraí um conjunto de objetos com características similares. Essa classe, define o comportamento dos seus objetos através de método e define o estado através de atributos. Em suma, a classe irá definir e servir de base para o que futuramente será o objeto.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Profissional&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Venda&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Classe pode ser de &lt;strong&gt;entidade de abstração física:&lt;/strong&gt; pessoa; carro etc. Ou, pode ser de &lt;strong&gt;entidade de abstração conceitual:&lt;/strong&gt; venda; produto etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;É necessário pensar na estrutura que vimos no exemplo acima, que é constituído dos seguintes elementos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modificador de acesso&lt;/strong&gt; (ex: public ou private) + &lt;strong&gt;class&lt;/strong&gt; + &lt;strong&gt;Nome da classe&lt;/strong&gt; (ex: profissional, venda, pessoa etc.)&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Atributo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;São as características definidas para a classe, sendo possível alterar ou manipular. Em suma, o atributo é responsável por definir a estrutura de dados de uma classe.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Classes possuem atributos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modificador de acesso&lt;/strong&gt; + &lt;strong&gt;Tipo de dados&lt;/strong&gt; (primitivo/String) + &lt;strong&gt;Descrição&lt;/strong&gt; (substantivo/adjetivo)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Profissional&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;nomeProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;matriculaProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;Double&lt;/span&gt; &lt;span class="n"&gt;vhProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;disponibilidade&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Métodos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Para entender o método é preciso sempre lembrar que sua função é identificar as ações, ou seja, identifica os serviços/ações que a classe tem a oferecer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Modificador de acesso&lt;/strong&gt; + &lt;strong&gt;Tipo de retorno&lt;/strong&gt; (set, Tipo primitivo ou VOID) + &lt;strong&gt;Descrição&lt;/strong&gt; (verbo de ação)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Profissional&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;nomeProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;matriculaProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;Double&lt;/span&gt; &lt;span class="n"&gt;vhProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;disponibilidade&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

        &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;getDisponibilidade&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;disponibilidade&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setDisponibilidade&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;disponibilidade&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;disponibilidade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;disponibilidade&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;getNomeProfissional&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;nomeProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setNomeProfissional&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;nomeProfissional&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;nomeProfissional&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nomeProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;getMatriculaProfissional&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;matriculaProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setMatriculaProfissional&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;matriculaProfissional&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;matriculaProfissional&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;matriculaProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;Double&lt;/span&gt; &lt;span class="nf"&gt;getValorHoraProfissional&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;valorHoraProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setValorHoraProfissional&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Double&lt;/span&gt; &lt;span class="n"&gt;vhProfissional&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;valorHoraProfissional&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;valorHoraProfissional&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Resumo
&lt;/h2&gt;

&lt;p&gt;Esse é o básico, tentei abordar os assuntos gradativamente para não ter o mesmo impacto negativo que eu tive, mas antes de encerrar vamos resumir alguns conceitos já vistos nos códigos acima, pode até ser que não faça muito sentido. Entretanto, para esse quebra cabeça fazer sentido, será importante.&lt;/p&gt;

&lt;h3&gt;
  
  
  Modificadores de acesso:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Public - Pode ser acessado por outras classes&lt;/li&gt;
&lt;li&gt;Private - Não pode ser acessado por outras classes, ou seja, só poderá ser acessado na própria classe.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Atributos são acessados por meio de getters e setters:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Get - OBTER o atributo + return = retornar o atributo&lt;/li&gt;
&lt;li&gt;Set - ALTERAR  o atributo + não retorna nada, ou seja, public void (vazio)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  This
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Palavra reservada usada para autorreferência, ou seja, é usado para referenciar métodos e atributos da classe e objeto&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Espero que gostem e aguardem a continuação deste trabalho...&lt;/p&gt;

&lt;h1&gt;
  
  
  Referências
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;CARVALHO, Thiago Leite. Título: Orientação a Objetos Aprenda Seus Conceitos e Suas Aplicabilidades de Forma Efetiva.pdf.&lt;/li&gt;
&lt;li&gt;ALVES, Nelio. Título: Java COMPLETO Programação Orientada a Objetos + Projeto (Udemy).&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
  </channel>
</rss>
