Anda di halaman 1dari 3

1

POJO, Interface é Heranças Multiplas


Weslley Reis Silva
∗ Universidade Federal do Tocantins, Brasil
weslley.reis@mail.uft.edu.br

Abstract—Esse ártico apresenta informações introdutórias so- anotações fossem removidas, ele ainda poderia ser considerado
bre POJO, Interface e Heranças Múltiplas em Java, relatando um POJO. Então, o objeto básico permanece um POJO,
diferenças entre ele é semelhanças, para auxiliar na compreensão pois não possui caracterı́sticas especiais (como uma interface
dessas ferramentas.
implementada) que o torna um ”Objeto Java Especializado”
Index Terms—POJO, Interface, Herança Multiplas (SJO ou (sic) SoJO).
2) JavaBean: Existe objetos Java que são POJO mesmo
I. POJO não seguido os requisitos para tal, como o JavaBeans que é
um POJO serializável, possui um construtor sem argumentos e
A. Introdução permite acesso a propriedades usando métodos getter e setter

N A engenharia de software, um plain old Java object


(Objetos Java Antigos Simples), (POJO) é um objeto
Java comum, não limitado por nenhuma restrição especial e
que seguem uma convenção de nomenclatura simples. Devido
a essa convenção, referências declarativas simples podem ser
feitas para as propriedades de JavaBeans arbitrários. O código
não exigindo nenhum caminho de classe. O termo foi cunhado que usa tal referência declarativa não precisa saber nada
por Martin Fowler, Rebecca Parsons e Josh MacKenzie em sobre o tipo do bean, e o bean pode ser usado com muitos
setembro de 2000. O termo ”POJO” inicialmente denotava frameworks sem que esses frameworks precisem conhecer o
um objeto Java que não segue nenhum dos principais modelos, tipo exato do bean. A especificação JavaBeans, se totalmente
convenções ou estruturas de objetos Java; hoje em dia ”POJO” implementada, interrompe ligeiramente o modelo POJO, pois,
também pode ser usado como um acrônimo para ”Plain Old a classe deve implementar o Serializable interface para ser um
JavaScript Object”, em cujo caso o termo denota um objeto verdadeiro JavaBean. Muitas classes POJO ainda chamadas de
JavaScript de pedigree similar. JavaBeans não atendem a esse requisito. Como o Serializable
que é uma interface de marcador (sem método), isso não é um
B. Metodologia fardo muito grande.
• Este exemplo mostra uma classe POJO que segue o
1) Requerimento do POJO: Idealmente falando, um POJO
padrão JavaBean;
é um objeto Java não limitado por nenhuma restrição além
daquelas forçadas pela Especificação da Linguagem Java; ou
public class Carro implements java.io.Serializable
seja, um POJO não deveria ter que;
{
• Estender classes pré-especificadas, como em;
private String nome;
private String cor;
classe pública Foo estende javax . servlet . http . public Carro() { }
HttpServlet { ... public Carro(String nome, String cor) { this.nome =
nome; this.cor = cor; }
• Implemente interfaces pré-especificadas, como em; public String getCor() { return cor; }
public void setCor(String cor) { this.cor = cor; }
public class Bar implementa javax . ejb . EntityBean { public String getNome() { return nome; }
... public void setNome(String nome) { this.nome = nome;
}}
• Contém anotações pré-especificadas , como em;

@ javax.persistence.Entity classe pública Baz {


... II. I NTERFACE
A. Introdução
No entanto, devido a dificuldades técnicas e outras razões, Vemos que um ponto crı́tico que define uma classe POJO
muitos produtos de software ou estruturas descritas como como JavaBean e a implementação da Serializable interface,
compatı́veis com POJO na verdade ainda exigem o uso sabemos que uma interface é o contrato entre a classe e o
de anotações pré-especificadas para que recursos como per- mundo exterior. Quando uma classe implementa uma interface,
sistência funcionem corretamente. A ideia é que, se o ob- se compromete a fornecer o metodos publicados por esta in-
jeto (na verdade, classe) fosse um POJO antes de quaisquer terface. As classes ajudam a definir um objeto e seus metodos
anotações serem adicionadas e retornasse ao status POJO se as e as interfaces que auxiliam na definição dessas classes.
2

B. Metodologia de superclasses, classes base ou classe pai. Uma subclasse


As interfaces são formadas pela declaração de um ou mais herda métodos e atributos de sua superclasse; apesar disso,
métodos, os quais obrigatoriamente são abstratos. pode escrevê-los novamente para uma forma mais especı́fica
de representar o comportamento do método herdado.
• Interface FiguraGeometrica;
Já Herança múltipla, em orientação a objetos, é o conceito
public interface FiguraGeometrica
de herança de duas ou mais classes. Ela é implementada nas
{
linguagens de programação C++ e em Python, por exemplo.
public String getNomeFigura();
A linguagem Java possui apenas herança simples (uma classe
public int getArea();
possui no máximo uma classe pai), mas permite que uma
public int getPerimetro();
classe implemente várias interfaces, que são separada por
}
virgula durante a implementação.

As interfaces funcionam como modelos para a criação de


outros modelos, ou seja, as classes, não necessariamente que B. Metodologia
a classe deva ser idêntica a interface, mas tem que ter todos 1) Interface multipla
os métodos publicados da interface, sendo que uma classe : Primeira Interface.
pode implementar uma ou mais interfaces, além de métodos public class TV {
próprios da própria classe. private int tamanho;
• Classe Quadrado; private int canal;
private int volume;
//@author Robson Fernando Gomes private boolean ligada;
public TV(int tamanho)
public class Quadrado implements FiguraGeometrica {
{ this.tamanho = tamanho;
private int lado; this.canal = 0;
public int getLado(); { this.volume = 0;
return lado; this.ligada = false;
} }
public void setLado(int lado) { }
this.lado = lado;
} Segunda Interface.
@Override public interface ControleRemoto {
public int getArea() { void mudarCanal(int canal);
int area = 0; void aumentarVolume (int taxa);
area = lado * lado; void diminuirVolume (int taxa);
return area; boolean ligar();
} boolean desligar();
@Override }
public int getPerimetro() { Implementação.
int perimetro = 0; public class ModeloTV001 extends TV implements
perimetro = lado * 4; ControleRemoto
return perimetro; {
} public final String MODELO = ”TV001”;
@Override public ModeloTV001(int tamanho)
public String getNomeFigura() { {
return ”quadrado”; super(tamanho);
} }
} public void desligar() {
super.setLigada(false);
}
III. H ERANÇA M ULTIPLA public void ligar() {
super.setLigada(true);
A. Introdução }
Semelhante a interface, as heranças são um princı́pio da public void aumentarVolume(int taxa) { }
POO que permite a criação de novas classes a partir de outras public void diminuirVolume(int taxa) { }
previamente criadas. Essas novas classes são chamadas de public void mudarCanal(int canal) { }
subclasses, classes derivadas ou classes filhas; e as classes }
já existentes, que deram origem às subclasses, são chamadas
3

IV. C ONCLUS ÃO


Como foi demostrado aqui podemos perceber que o POJO
em relação a interface é mais flexı́vel, o que torna mais
favorável em certas ocasiões a qual se necessita apenas de
um método simples, mesmo sendo que esse esteja presente
em uma interface não será de muita utilidade se tiver qual-
quer outro método presente nela, assim tornando a utilização
do POJO mais fácil é viável. Também temos as heranças
simples de classe que estão presentes na programação Java,
sendo as heranças múltiplas representada pela implementação
de múltiplas interfaces vemos um modo criativo para con-
torna uma deficiência da plataforma, demostrando que na
programação não se deve apenas conhecer os métodos é
funções, se deve entender como eles funcionam para que assim
seja possı́vel criar novas soluções para problemas antigos e
novos.

R EFERENCES
[1] Varios. (2018, março) Plain old java object. [Online]. Available:
https://en.wikipedia.org/wiki/Plaino ldJ avao bject
[2] ——. (2018, março) Plain old java objects. [Online]. Available:
https://pt.wikipedia.org/wiki/PlainO ldJ avaO bjects
[3] D. W. Xavier. (2018, março) Interfaces. [Online]. Available:
http://www.tiexpert.net/programacao/java/interfaces.php
[4] R. Fernando. (2018, março) Entendendo interfaces em java.
[Online]. Available: https://www.devmedia.com.br/entendendo-interfaces-em-
java/25502
[5] W. Balbo. (2018, março) Interfaces: Programação orientada a objetos.
[Online]. Available: https://www.devmedia.com.br/interfaces-programacao-
orientada-a-objetos/18695
[6] H. Geovane. (2018, março) Entendendo e aplicando herança em java.
[Online]. Available: https://www.devmedia.com.br/entendendo-e-aplicando-
heranca-em-java/24544
[7] B. Nardini. (2018, março) Método padrão e herança múltipla no
java 8. [Online]. Available: http://www.brunonardini.com.br/desenv-back-
end/metodo-padrao-e-heranca-multipla-no-java-8
[1] [2] [3] [4] [5] [6] [7]

Anda mungkin juga menyukai