Programação Java Herança Encapsulamento Modificadores de acesso Construtores

Programação Java Herança Encapsulamento Modificadores de acesso Construtores. Linguagem Java. Herança:

Em orientação a Objetos surge o conceito de Herança, com intenções como diminuir duplicação de código Colocando membros(Variaveis e métodos) em comum em uma classe onde outras podem herdar dela e criar um relacionamento entre Classes.Temos o mesmo conceito de Taxonomia da Biologia.

Programação Java Herança Encapsulamento Modificadores de acesso Construtores

A classe que contem membros em comum é chamado Parent Class ou Super Class. As Classes que herdam ou extends da classe que contem membros em comum são chamadas Child Class ou Sub Class.

Em java temos o conceito de Herança Simples oque significa que uma Classe so pode ter uma Parent Class/SuperClasse.
Para saber se uma Classe é realmente Child Class, faça o teste do “is a”, se a Classe é uma Parent Class também então, ela esta dentro do conceito,

<p>
  Vejamos o exemplo:
</p>

<p>
  </span></span></span><a style="font-family: arial; color: rgb(0, 0, 0);" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CdmD2AaXIBs/SqZJO7e3RkI/AAAAAAAAAW0/JoFGuPupUzQ/s1600-h/heranca.png"><img style="cursor: pointer; width: 320px; height: 152px;" src="http://3.bp.blogspot.com/_CdmD2AaXIBs/SqZJO7e3RkI/AAAAAAAAAW0/JoFGuPupUzQ/s320/heranca.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379067325774775874" border="0" /></a> <span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span style="font-weight: bold;"><br />Clique na imagem para ampliar</p> 

  <p>
    Na figura acima,</span><span>Podemos Observar que:</p> 

    <p>
      1 &#8211; <span style="font-weight: bold;">Chefe</span> &ldquo;is a (é um)&rdquo; Encarregado<br />2 &#8211; </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">Chefe</span> &ldquo;is a (é um)&rdquo; Funcionário<br />3 &#8211; <span style="font-weight: bold;">Chefe</span> tem tanto: nome,salario quanto bonusSalarial quanto carroEmpresa<br />4 &#8211; <span style="font-weight: bold;">Chefe</span> é uma Especialização de Encarregado e de Funcionário<br />5 &#8211; <span style="font-weight: bold;">Chefe</span> é apenas uma Child Class ou Sub Class de Encarregado e de Funcionário<br />6 &#8211; <span style="font-weight: bold;">Encarregado</span> </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>&ldquo;is a (é um)&rdquo; Funcionário</span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br />7 &#8211; <span style="font-weight: bold;">Encarregado</span> </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>tem tanto: nome,salario quanto bonusSalarial<br /></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>8 &#8211; <span style="font-weight: bold;">Encarregado é </span>Child Class de Funcionário e Parent Class de Chefe<br />9 &#8211; </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">Encarregado é uma </span>Especialização de Funcionário e Generalização de Chefe<br />10 &#8211; </span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Funcionário é </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Parent Class ou Super Class de Encarregado e de Chefe, nessa respectiva ordem<br />11 &#8211; </span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Funcionário tem </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>nome e salário<br />12 &#8211; </span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Funcionário é uma Generalização de </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Encarregado<br />13 &#8211; </span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Funcionário é uma Generalização de Chefe<br />Ou seja,<br />*Chefe tem tudo que um Encarregado tem e tudo que um funcionário tem, </span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>mais membros adicionais ao cargo</span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;"><br /></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>*Encarregado tem tudo que um funcionário tem, mais </span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>membros adicionais ao cargo</span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><br /><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>*Funcionário tem tudo que o cargo atribui a ele.</p> 

      <p>
        Esse conceito de criar um classe com base em um ja existente é chamada de SUBDIVISÃO DE CLASSE.
      </p>

      <p>
        <span style="font-size:130%;">Como declarar uma SuperClasse?</span>
      </p>

      <p>
        </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Você Declara uma <span style="font-weight: bold;">SuperClasse</span> igual declara uma classe em java:</p> 

        <p>
          [modificador_de_acesso] <span style="font-weight: bold;">class</span> identificador{
        </p>

        <p>
          bloco_de_codigo
        </p>

        <p>
          }</span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;"><br /></span><span style="font-size:130%;"><br />Como Declarar um SubClass?</p> 

          <p>
            </span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:130%;"><span style="font-size:100%;"> Use a keyword extends.</span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"></p> 

            <p>
              [modificador_de_acesso] class identificador extends identificador_parent_class
            </p>

            <p>
              *modificador_de_acesso &#8211;</span> </span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">É uma keyword opcional, podemos ter public,abstract ou final, se nenhum dos três for especificado então consideramos o modificador de acesso default.<br />*</span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">class &#8211; </span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">Indica que o escopo é uma declaração de Classe</span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><br />*identificador &#8211; </span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">O nome que você atribui a Classe</span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><br />*extends &#8211; </span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">Diz ao compilador que ela é uma Child Class</span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><br />*</span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">identificador_parent_class &#8211; </span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">É o identificador da Parent Class</span></span></span></span></span> <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span></p> 

              <p>
                <span style="font-size:180%;">Modificadores de acesso:</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                <p>
                  <span style="font-weight: bold;">Source:</span> <a rel="nofollow" target="_blank" href="http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html">http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html</a>
                </p>

                <p>
                  Os membros(Método e Atributos) de uma classe podem ter quatro níveis de acesso.<span style="font-weight: bold;">Classes só podem ter dois niveis de acesso ou public ou default(sem nenhum).Os modificadores de acesso indicam como será o acesso aquele membro ou aquela Classe, COMO vai se relacionar internamente ou externamente.</p> 

                  <p>
                    </span></span></span></span></span></span>
                  </p>

                  <table style="width: 604px; height: 166px; font-family: arial; color: rgb(0, 0, 0);" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0">
                    <col width="51"> <col width="51"> <col width="51"> <col width="51"> <col width="51"> <tr valign="top">
                      <td style="text-align: center; font-weight: bold;" width="20%">
                        <p>
                          Modificador
                        </p>
                      </td>

                      <td style="text-align: center; font-weight: bold;" width="20%">
                        <p>
                          Mesma Classe
                        </p>
                      </td>

                      <td style="text-align: center; font-weight: bold;" width="20%">
                        <p>
                          Mesmo Pacote
                        </p>
                      </td>

                      <td style="text-align: center; font-weight: bold;" width="20%">
                        <p>
                          SubClasse
                        </p>
                      </td>

                      <td style="text-align: center; font-weight: bold;" width="20%">
                        <p>
                          Universo
                        </p>
                      </td>
                    </tr>

                    <tr valign="top">
                      <td style="text-align: left; font-weight: bold;" width="20%">
                        <p>
                          <span style="font-size:100%;"><code>public</code></span>
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>
                    </tr>

                    <tr valign="top">
                      <td style="text-align: left; font-weight: bold;" width="20%">
                        <p>
                          <code>protected</code>
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                        </p>
                      </td>
                    </tr>

                    <tr valign="top">
                      <td style="text-align: left; font-weight: bold;" width="20%">
                        <p>
                          <span style="font-size:100%;">default</span>
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                        </p>
                      </td>
                    </tr>

                    <tr valign="top">
                      <td style="text-align: left; font-weight: bold;" width="20%">
                        <p>
                          <span style="font-size:100%;"><code>private</code></span>
                        </p>
                      </td>

                      <td style="text-align: center;" width="20%">
                        <p>
                          Sim
                        </p>
                      </td>

                      <td width="20%">
                        <p>
                        </p>
                      </td>

                      <td width="20%">
                        <p>
                        </p>
                      </td>

                      <td width="20%">
                        <p>
                        </p>
                      </td>
                    </tr>
                  </table>

                  <p>
                    <span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;">*Um modificador de acesso é considerado default, quando nenhum modificador é especificado.</span> <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:180%;"></p> 

                    <p>
                      Construtores:</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                      <p>
                        Constutores são usados toda vez que um objeto é Instanciado.<span style="font-weight: bold;">Construtores não são Membros de um classe.</span>
                      </p>

                      <p>
                        <span style="font-weight: bold;">Como declarar um construtor?</span>
                      </p>

                      <p>
                        </span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">[modificador_de_acesso] class </span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">identificador {</p> 

                        <p>
                          </span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">[modificador_de_acesso] identificador([argumentos]){</p> 

                          <p>
                            </span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;">bloco_de_codigo</span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                            <p>
                              }</span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><br />}</p> 

                              <p>
                                </span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><br />*modificador_de_acesso &#8211;</span> </span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span>É uma keyword opcional, que indica como o construtor será acessado externamente a classe.<br />*</span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span>identificador &#8211; </span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span>É o nome do construtor, <span style="font-weight: bold;">deve</span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span> ser o mesmo nome da CLASSE</span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><br /><span style="font-weight: bold;">*argumentos</span> &#8211; São variáveis locais ao bloco_de_codigo do construtor, Perceba que os argumentos são opcionais <span style="font-weight: bold;">porem os [ ] &#8211; Parenteses NÃO.</span><br /><span style="font-weight: bold;">*bloco_de_codigo</span> &#8211; Conjunto de instruções que serão interpretadas quando o construtor for invocado<br /></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:180%;"><br />Vejamos exemplo:</span></span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                                <p>
                                  public class <span style="font-weight: bold;">MinhaClasse</span>{
                                </p>

                                <p>
                                  private int <span style="font-weight: bold;">idade</span>;
                                </p>

                                <p>
                                  public </span></span></span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-weight: bold;">MinhaClasse(int minhaIdade){</p> 

                                  <p>
                                    idade = minhaIdade;
                                  </p>

                                  <p>
                                    }<br /></span></span></span></span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                                    <p>
                                      public static void <span style="font-weight: bold;">main</span>(String [ ] array){<br /></span></span></span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-weight: bold;">MinhaClasse objeto = new </span></span></span></span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-weight: bold;">MinhaClasse( 21);</span></span></span></span></span></span></span></span><br /><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                                      <p>
                                        }<br />}
                                      </p>

                                      <p>
                                        *Relembrando alguns conceitos, Por causa de main, temos <span style="font-weight: bold;">o &ldquo;poder&rdquo; de ter um PROCESSO VINHA LINHA DE COMANDO.</span><br /></span></span></span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                                        <p>
                                          </span></span></span></span></span><a style="color: rgb(0, 0, 0);" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CdmD2AaXIBs/SqbH4Zk5v1I/AAAAAAAAAYU/-crTyXEg9JE/s1600-h/construtor.png"><img style="cursor: pointer; width: 320px; height: 151px;" src="http://3.bp.blogspot.com/_CdmD2AaXIBs/SqbH4Zk5v1I/AAAAAAAAAYU/-crTyXEg9JE/s320/construtor.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379206576692903762" border="0" /></a><br /><span style="font-weight: bold; color: rgb(0, 0, 0);"></p> 

                                          <p>
                                            Clique na imagem para ampliar</span>
                                          </p>

                                          <p>
                                            <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:180%;">Construtor Padrão:</span><br /></span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"> Toda vez que o construtor não for explicitamente escrito ele é implicitamente colocado pelo compilador.Se você explicitamente declarar um construtor, você perde o construtor que o compilador ia colocar. <span style="font-weight: bold;">Vejamos o exemplo:</span></p> 

                                            <p>
                                              <span style="font-weight: bold;">Em sintaxe java:</span><br />public class Funcionario{
                                            </p>

                                            <p>
                                              }
                                            </p>

                                            <p>
                                              <span style="font-weight: bold;">Em sintaxe bytecode:</span>
                                            </p>

                                            <p>
                                              <span style="font-weight: bold;">public Funcionario(); </span><br />Code:<br />0: aload_0<br />1: invokespecial #1; //Method java/lang/Object.&ldquo;<init>&rdquo;:()V<br />4: return
                                            </p>

                                            <p>
                                              }
                                            </p>

                                            <p>
                                              Perceba que no exemplo acima, <span style="font-weight: bold;">O construtor da classe NÃO foi explicitamente escrito porem, FOI implicitamente colocado pelo COMPILADOR.</p> 

                                              <p>
                                                Vejamos agora com o construtor explicitamente escrito:
                                              </p>

                                              <p>
                                                Em Sintaxe java:
                                              </p>

                                              <p>
                                                </span>public class<span style="font-weight: bold;"> Funcionario{<br />public Funcionario( ){</p> 

                                                <p>
                                                  }<br />}<br /></span></init></span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><br />Em Sintaxe bytecode:</p> 

                                                  <p>
                                                    public Funcionario();<br /></span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"> Code:<br />0: aload_0<br />1: invokespecial #1; //Method java/lang/Object.&ldquo;<init>&rdquo;:()V<br />4: return</init></span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                                                    <p>
                                                      }
                                                    </p>

                                                    <p>
                                                      Neste exemplo o construtor explicitamente dito é igual ao colocado pelo compilador, foi somente para exemplificar porem, o construtor implicito do compilador é substituido pelo explicito declarado.
                                                    </p>

                                                    <p>
                                                      </span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:180%;"><br />Herança Simples Padrão:</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                                                      <p>
                                                        Toda classe em java <span style="font-weight: bold;">que não é especificado</span> a Parent Class, Herda da Classe Object(java.lang.Object).A partir do momento que você especifica A parent Class de uma classe sua classe deixa de ser DIRITAMENTE uma child Class de object.
                                                      </p>

                                                      <p>
                                                        <span style="font-weight: bold;">Vamos provar oque estou dizendo?</p> 

                                                        <p>
                                                          Em Sintaxe java:
                                                        </p>

                                                        <p>
                                                          </span><span>public</span><span style="font-weight: bold;"><span style="font-weight: bold;"> class Test{ //Declaração de Classe</p> 

                                                          <p>
                                                            }<br /></span></span></span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><br />Em Sintaxe bytecode:</p> 

                                                            <p>
                                                              </span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span>Compiled from &ldquo;Test.java&rdquo;<br />public class Test <span style="font-weight: bold;">extends java.lang.Object</span>{<br />public Test();<br />Code:<br />0: aload_0<br />1: invokespecial #1; //Method java/lang/Object.&ldquo;<init>&rdquo;:()V<br />4: return</p> 

                                                              <p>
                                                                }</init></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"></p> 

                                                                <p>
                                                                  Isso significa:</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><br />Vejamos um exemplo, Classe: <span style="font-weight: bold;">Gerente</span> extends <span style="font-weight: bold;">Funcionario</p> 

                                                                  <p>
                                                                    </span>public class<span style="font-weight: bold;"> Funcionario{</p> 

                                                                    <p>
                                                                      }
                                                                    </p>

                                                                    <p>
                                                                      </span>public class <span style="font-weight: bold;">Gerente extends Funcionario{</p> 

                                                                      <p>
                                                                        }<br /></span><br /></span></span></span></span><a style="color: rgb(0, 0, 0); font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CdmD2AaXIBs/SqZbxexTJMI/AAAAAAAAAW8/DjqWum6d46g/s1600-h/heranca2.png"><img style="cursor: pointer; width: 167px; height: 189px;" src="http://1.bp.blogspot.com/_CdmD2AaXIBs/SqZbxexTJMI/AAAAAAAAAW8/DjqWum6d46g/s320/heranca2.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379087710572192962" border="0" /></a> <span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-weight: bold;"></p> 

                                                                        <p>
                                                                          Isso é chamado de UML
                                                                        </p>

                                                                        <p>
                                                                          </span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"></p> 

                                                                          <p>
                                                                            Como podemos Observar,</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"> explicitamente <span style="font-weight: bold;">Gerente é um funcionário logo</span>, A parent Class de gerente é funcionário, Vejamos <span style="font-weight: bold;">a class Gerente em bytecode:</span></p> 

                                                                            <p>
                                                                              Compiled from &ldquo;Gerente.java&rdquo;<br />public class <span style="font-weight: bold;">Gerente extends Funcionario</span>{<br />public Gerente();<br />Code:<br />0: aload_0<br />1: invokespecial #1; //Method Funcionario.&ldquo;<init>&rdquo;:()V<br />4: return
                                                                            </p>

                                                                            <p>
                                                                              }
                                                                            </p>

                                                                            <p>
                                                                              Isso foi explicitamente feito, mais e a classe Funcionario <span style="font-weight: bold;">Vejamos bytecode de Funcionario:</p> 

                                                                              <p>
                                                                                </span>Compiled from &ldquo;Funcionario.java&rdquo;<br />public class <span style="font-weight: bold;">Funcionario extends java.lang.Object</span>{<br />public Funcionario();<br />Code:<br />0: aload_0<br />1: invokespecial #1; //Method java/lang/Object.&ldquo;<init>&rdquo;:()V<br />4: return
                                                                              </p>

                                                                              <p>
                                                                                }<span style="font-weight: bold;"></p> 

                                                                                <p>
                                                                                  Isso quer dizer o seguinte, Gerente é um funcionário e também é um Objeto, vejamos o Porque:
                                                                                </p>

                                                                                <p>
                                                                                  </span></init></init></span></span></span></span><a style="color: rgb(0, 0, 0); font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CdmD2AaXIBs/SqZbz3qfaxI/AAAAAAAAAXE/G-tmqjTz7R4/s1600-h/heranca3.png"><img style="cursor: pointer; width: 320px; height: 142px;" src="http://3.bp.blogspot.com/_CdmD2AaXIBs/SqZbz3qfaxI/AAAAAAAAAXE/G-tmqjTz7R4/s320/heranca3.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379087751614262034" border="0" /></a> <span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;"></p> 

                                                                                  <p>
                                                                                    Clique na imagem para ampliar</span><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;font-size:130%;">Oque podemos Tirar de conclusão sobre Gerente?</span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><br />&#8211; Gerente é um funcionário<br />&#8211; Gerente é um Object(Pois Funcionário é um Object e Gerente é um funcionário)</span> <span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><init><init></p> 

                                                                                    <p>
                                                                                      <span style="font-weight: bold;font-size:130%;">Oque acontece se eu Instanciar um Objeto Gerente?</span>
                                                                                    </p>

                                                                                    <p>
                                                                                      </init></init></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;">public class <span style="font-weight: bold;">Gerente extends Funcionario{</p> 

                                                                                      <p>
                                                                                        </span><span>public static void</span><span style="font-weight: bold;"> main(String array[ ]){<br /></span><span>Gerente objeto</span><span style="font-weight: bold;"> = new Gerente( );// Instanciando um objeto, ou seja chamando<br /></span><span> //o construtor da classe Gerente</span><span style="font-weight: bold;"></p> 

                                                                                        <p>
                                                                                          }<br />}</span></span></span></span></span> <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br />Acabamos de Obter isso:<br /></span></span></span><a style="color: rgb(0, 0, 0); font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CdmD2AaXIBs/SqZeUtOlBxI/AAAAAAAAAXM/-J3iR2q15Ik/s1600-h/ObjetoGerente.png"><img style="cursor: pointer; width: 220px; height: 276px;" src="http://4.bp.blogspot.com/_CdmD2AaXIBs/SqZeUtOlBxI/AAAAAAAAAXM/-J3iR2q15Ik/s320/ObjetoGerente.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379090514771773202" border="0" /></a><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;"></p> 

                                                                                          <p>
                                                                                            Clique na imagem para ampliar, Lembra-se do Gerente é um Funcionário e é um Object, Então agora faz sentido ne?</span> <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span></p> 

                                                                                            <p>
                                                                                              </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-weight: bold;font-size:130%;">Oque acontece se eu Instanciar um Objeto Funcionario?</span></span></span></span></span> <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br /></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;">public class <span style="font-weight: bold;">Funcionario{</p> 

                                                                                              <p>
                                                                                                </span><span>public static void</span><span style="font-weight: bold;"> main(String array[ ]){<br /></span><span>Funcionario objeto</span><span style="font-weight: bold;"> = new Funcionario( );// Instanciando um objeto, ou seja chamando<br /></span><span> //o construtor da classe Funcionario</span><span style="font-weight: bold;"></p> 

                                                                                                <p>
                                                                                                  }<br />}
                                                                                                </p>

                                                                                                <p>
                                                                                                  </span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><a style="color: rgb(0, 0, 0); font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CdmD2AaXIBs/SqZe8jr2S1I/AAAAAAAAAXU/2tjWNuJIodo/s1600-h/ObjetoFuncionario.png"><img style="cursor: pointer; width: 223px; height: 267px;" src="http://1.bp.blogspot.com/_CdmD2AaXIBs/SqZe8jr2S1I/AAAAAAAAAXU/2tjWNuJIodo/s320/ObjetoFuncionario.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379091199404952402" border="0" /></a><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;"></p> 

                                                                                                  <p>
                                                                                                    Clique na imagem para ampliar, Lembra-se que toda classe extends java.lang.Object quando não extends nenhuma outra explicitamente!!! Ou seja todo objeto Instanciado é também um objeto da Parent Class</span> <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span></p> 

                                                                                                    <p>
                                                                                                      <span style="font-size:130%;">Membros de classe:</p> 

                                                                                                      <p>
                                                                                                        </span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:130%;"><span style="font-size:100%;">Atributos e métodos são membros da classe, o construtor não é considerado um membro<br />&#8211; Membros com modificador de acesso public são considerados interface de uma classe, pois fazem a conexão com o mundo externo<br />&#8211; Membros com modificador de acesso private são considerados encapsulados<br /></span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br /><span style="font-size:180%;"><br />Encapsulamento:</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"></p> 

                                                                                                        <p>
                                                                                                          Em orientação a objetos têm-se o conceito de encapsulamento <span style="font-weight: bold;">que é esconder dados da sua classe e apenas deixá-los disponivel através de métodos. </span>O conceito de encapsulamento é feito em java utilizando modificadores de acesso nos membros e construtor da classe.<br />Toda vez que um membro tem <span style="font-weight: bold;">modificador de acesso public</span>, <span style="font-weight: bold;">ele é considerado uma interface</span>, <span style="font-weight: bold;">pois ele interage com o meio externo ao objeto</span>, toda vez que u<span style="font-weight: bold;">m membro tem modificador de acesso private</span> ele é considerado <span style="font-weight: bold;">encapsulado pois não existe interação externa.</span>
                                                                                                        </p>

                                                                                                        <p>
                                                                                                          </span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Exemplos:<br /></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span> Em um objeto com membros considerados interfaces(ou seja interagem com o meio externo) o acesso a eles é feito sem nenhum problema com a notação de ponto.</p> 

                                                                                                          <p>
                                                                                                            </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>public class <span style="font-weight: bold;">Pessoa</span>{<br /><span style="font-weight: bold;">public</span> int idade; // veja que pelo modificador de acesso sabemos que é uma interface</p> 

                                                                                                            <p>
                                                                                                              }<br /></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br /></span></span></span> <span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>public class <span style="font-weight: bold;">ClasseTest</span>{</p> 

                                                                                                              <p>
                                                                                                                public static void <span style="font-weight: bold;">main</span>(String array[ ]){<br /></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">Pessoa</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;"> jose = new </span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">Pessoa</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">( );</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><span style="color: rgb(0, 0, 0);font-family:arial;">jose</span><span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;">.idade</span><span style="color: rgb(0, 0, 0);font-family:arial;"> = 21;</span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span> // Notação de ponto na Variavel de instancia Normalmente</p> 

                                                                                                                <p>
                                                                                                                  }
                                                                                                                </p>

                                                                                                                <p>
                                                                                                                  }
                                                                                                                </p>

                                                                                                                <p>
                                                                                                                  <span style="font-weight: bold;">Em sintax bytecode temos no método main:</span><br />public static void main(java.lang.String[]);<br />Code:<br />0: new #2; //class Pessoa<br />3: dup<br />4: invokespecial #3; //Method Pessoa.&ldquo;<init>&rdquo;:()V<br />7: astore_1<br />8: aload_1<br />9: bipush 21<br />11: putfield #4; //Field Pessoa.idade:I<br />14: return
                                                                                                                </p>

                                                                                                                <p>
                                                                                                                  }<br /><span style="font-weight: bold;">De uma forma resumida, na instrução 11 do bytecode teremos isso:<br />A instrução putfield nesse caso, requer o endereço do objeto e o inteiro que será colocado na instance variable do objeto<br /></span>
                                                                                                                </p>

                                                                                                                <p>
                                                                                                                  </init></span></span></span><a style="font-family: arial; color: rgb(0, 0, 0);" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CdmD2AaXIBs/SqZujIA8lWI/AAAAAAAAAXc/lAJ6bfOLpV8/s1600-h/Encapsulamento.png"><img style="cursor: pointer; width: 320px; height: 197px;" src="http://1.bp.blogspot.com/_CdmD2AaXIBs/SqZujIA8lWI/AAAAAAAAAXc/lAJ6bfOLpV8/s320/Encapsulamento.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379108354666567010" border="0" /></a><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span></p> 

                                                                                                                  <p>
                                                                                                                    Clique na imagem para ampliar,e ao fim da instrução 11 teremos:
                                                                                                                  </p>

                                                                                                                  <p>
                                                                                                                    </span></span></span><a style="font-family: arial; color: rgb(0, 0, 0);" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CdmD2AaXIBs/SqZulxfqE_I/AAAAAAAAAXk/Bk9wQzRV2wU/s1600-h/Encapsulamento2.png"><img style="cursor: pointer; width: 320px; height: 197px;" src="http://2.bp.blogspot.com/_CdmD2AaXIBs/SqZulxfqE_I/AAAAAAAAAXk/Bk9wQzRV2wU/s320/Encapsulamento2.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379108400160969714" border="0" /></a><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;">Clique na imagem para ampliar</span> <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span></p> 

                                                                                                                    <p>
                                                                                                                      <span style="font-size:130%;">Agora usando encapsulamento:</span>
                                                                                                                    </p>

                                                                                                                    <p>
                                                                                                                      </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>public class <span style="font-weight: bold;">Pessoa</span>{<br /><span style="font-weight: bold;">private</span> int idade; // membro encapsulado ou seja, não pode haver acesso externo a classe Pessoa</p> 

                                                                                                                      <p>
                                                                                                                        }<br /></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br /></span></span></span> <span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>public class <span style="font-weight: bold;">ClasseTest</span>{</p> 

                                                                                                                        <p>
                                                                                                                          public static void <span style="font-weight: bold;">main</span>(String array[ ]){<br /></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">Pessoa</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;"> jose = new </span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">Pessoa</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">( );</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><span style="color: rgb(0, 0, 0);font-family:arial;">jose</span><span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;">.idade</span><span style="color: rgb(0, 0, 0);font-family:arial;"> = 21;</span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span> // Notação de ponto na Variavel de instancia , Erro de compilação</p> 

                                                                                                                          <p>
                                                                                                                            }
                                                                                                                          </p>

                                                                                                                          <p>
                                                                                                                            }</span></span></span> <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span></p> 

                                                                                                                            <p>
                                                                                                                              Existe um Campo de força na variavel atributo, para ter acesso a ela somente via a mesma classe, Isso é chamado de Encapsulamento.
                                                                                                                            </p>

                                                                                                                            <p>
                                                                                                                              </span></span></span><a style="font-family: arial; color: rgb(0, 0, 0);" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CdmD2AaXIBs/SqZv4JI2PSI/AAAAAAAAAXs/pN3eKsIAgdk/s1600-h/Encapsulamento3.png"><img style="cursor: pointer; width: 320px; height: 196px;" src="http://3.bp.blogspot.com/_CdmD2AaXIBs/SqZv4JI2PSI/AAAAAAAAAXs/pN3eKsIAgdk/s320/Encapsulamento3.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379109815257021730" border="0" /></a><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;"></p> 

                                                                                                                              <p>
                                                                                                                                Clique na imagem para ampliar, Erro de compilação</span> <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span></p> 

                                                                                                                                <p>
                                                                                                                                  <span style="font-size:180%;">Métodos get e set:</span>
                                                                                                                                </p>

                                                                                                                                <p>
                                                                                                                                  <span style="font-size:100%;"><span style="font-size:100%;"><br /></span><span style="font-size:100%;"> Métodos </span></span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-size:100%;"><span style="font-size:100%;"><span style="font-size:100%;">get e set nada mais são doque boas práticas quando se usa encapsulamento, que é usar métodos que deem acesso aos membros encapsulados de uma classe, alem disso podemos ter um lógica antes de configurar o valor de algum membro, existe uma certa verificação de valores.</span></p> 

                                                                                                                                  <p>
                                                                                                                                    <span style="font-weight: bold;">Métodos get</span> tem retorno e não tem argumentos<br /><span style="font-weight: bold;">Métodos set</span> tem argumentos e não tem retorno
                                                                                                                                  </p>

                                                                                                                                  <p>
                                                                                                                                    </span></span></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Exemplo:</p> 

                                                                                                                                    <p>
                                                                                                                                      </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>public class <span style="font-weight: bold;">Pessoa</span>{<br /><span style="font-weight: bold;">private</span> int idade; // membro encapsulado ou seja, não pode haver acesso externo a classe Pessoa</p> 

                                                                                                                                      <p>
                                                                                                                                        public void <span style="font-weight: bold;">setIdade</span>(<span style="font-weight: bold;">int x</span>){<br />idade = x;
                                                                                                                                      </p>

                                                                                                                                      <p>
                                                                                                                                        }
                                                                                                                                      </p>

                                                                                                                                      <p>
                                                                                                                                        public <span style="font-weight: bold;">int</span> <span style="font-weight: bold;">getIdade</span>(){<br /><span style="font-weight: bold;">return idade;</span>
                                                                                                                                      </p>

                                                                                                                                      <p>
                                                                                                                                        }
                                                                                                                                      </p>

                                                                                                                                      <p>
                                                                                                                                        }<br /></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br /></span></span></span> <span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>public class <span style="font-weight: bold;">ClasseTest</span>{</p> 

                                                                                                                                        <p>
                                                                                                                                          public static void <span style="font-weight: bold;">main</span>(String array[ ]){<br /></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">Pessoa</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;"> jose = new </span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">Pessoa</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">( );</span></span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;"> </span><span style="color: rgb(0, 0, 0);font-family:arial;">jose</span><span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;">.setIdade(21);</span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span></p> 

                                                                                                                                          <p>
                                                                                                                                            }
                                                                                                                                          </p>

                                                                                                                                          <p>
                                                                                                                                            }</span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;"></span></p> 

                                                                                                                                            <p>
                                                                                                                                              Lembra-se que o acesso a membros private so pode ser feito na mesma classe? Pois bem os métodos </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><span style="font-weight: bold;">getIdade e setIdade estão na mesma classe e tem modificador de acesso public, oque permite o acesso externo a classe e interno ao membros encapsulados.</span></span></span></span><br /><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br /></span></span></span><a style="font-family: arial; color: rgb(0, 0, 0);" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CdmD2AaXIBs/SqZ2PosnIOI/AAAAAAAAAX0/v18ZXuH_gPg/s1600-h/Encapsulamento4.png"><img style="cursor: pointer; width: 266px; height: 320px;" src="http://2.bp.blogspot.com/_CdmD2AaXIBs/SqZ2PosnIOI/AAAAAAAAAX0/v18ZXuH_gPg/s320/Encapsulamento4.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379116815935283426" border="0" /></a><br /><span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;"><br />Clique na imagem para ampliar</span><br /><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br /></span></span></span>
                                                                                                                                            </p>

                                                                                                                                            <div style="text-align: center; color: rgb(0, 0, 0);">
                                                                                                                                              <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:130%;"><span>Basicamente o acesso é feito ao método do objeto, e depois o atributo. Vejamos resumidamente:</p> 

                                                                                                                                              <p>
                                                                                                                                                </span></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sqa3a4407wI/AAAAAAAAAX8/kSLWV32DKVk/s1600-h/Encapsulamento5.png"><img style="cursor: pointer; width: 320px; height: 307px;" src="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sqa3a4407wI/AAAAAAAAAX8/kSLWV32DKVk/s320/Encapsulamento5.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5379188477515853570" border="0" /></a></div> 

                                                                                                                                                <p>
                                                                                                                                                  <span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span></p> 

                                                                                                                                                  <p>
                                                                                                                                                    É hora da revisão:<br />&#8211; </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Child Class é a Mesma coisa que SubClass</span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span><br />&#8211; Parent Class é a Mesma coisa que SuperClass<br /></span></span></span><span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>&#8211; Java </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>so tem o conceito de Herança simples, ou seja uma Sub Class so pode ter uma Super Classe<br />&#8211; Os modificadores de acesso indicam como será o acesso aquele membro externamente ou internamente.<br />&#8211; Classes só podem ter modificador de acesso public ou default<br />&#8211; Modificador de acesso default é quando nenhum outro é especificado explicitamente<br />&#8211; Membros de classe(métodos e atributos ) e construtores que tem modificador de acesso public são considerados interfaces da classe<br />&#8211; </span></span></span><span style="color: rgb(0, 0, 0);font-family:arial;font-size:100%;"><span style="font-size:100%;"><span>Membros de classe(métodos e atributos ) e construtores que tem modificador de acesso private são encapsulados</span></span></span> <em>Programação Java Herança Encapsulamento Modificadores de acesso Construtores</em>
                                                                                                                                                  </p>