Documente Academic
Documente Profesional
Documente Cultură
EntendendointerfacesemJava
EntendendointerfacesemJava
Vejanesteartigocomofuncionamecomoutilizar
interfaces,umrecursodaslinguagensorientadasa
objetosquepermitedefinirumpadroaserseguidopor
classesdeumdeterminadocontexto.
21
Gostei(3)
Curtir
16
(0)
Introduo
AinterfaceumrecursomuitoutilizadoemJava,bemcomonamaioriadaslinguagens
orientadasaobjeto,paraobrigaraumdeterminadogrupodeclassesatermtodosou
propriedadesemcomumparaexistiremumdeterminadocontexto,contudoosmtodos
podemserimplementadosemcadaclassedeumamaneiradiferente.Podesedizer,a
grossomodo,queumainterfaceumcontratoquequandoassumidoporumaclassedeve
serimplementado.
UtilizandointerfaceemJava
Dentrodasinterfacesexistemsomenteassinaturasdemtodosepropriedades,cabendo
classequeautilizarrealizaraimplementaodasassinaturas,dandocomportamentos
prticosaosmtodos.
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
1/7
9/10/2015
EntendendointerfacesemJava
AbaixopossvelverumexemplodeumainterfacechamadaFiguraGeometricacomtrs
assinaturasdemtodosqueviroaserimplementadospelasclassesreferentessfiguras
geomtricas.
Listagem1:InterfaceFiguraGeometrica
publicinterfaceFiguraGeometrica
{
publicStringgetNomeFigura();
publicintgetArea();
publicintgetPerimetro();
}
Pararealizarachamada/refernciaaumainterfaceporumadeterminadaclasse,
necessrioadicionarapalavrachaveimplementsaofinaldaassinaturadaclassequeir
implementarainterfaceescolhida.
Sintaxe:
publicclassnome_classeimplementsnome_interface
Onde:
nome_classeNomedaclasseaserimplementada.
nome_InterfaceNomedainterfaceaseimplementadapelaclasse.
AbaixopossvelverduasclassesqueimplementamainterfaceFiguraGeometrica,uma
chamadaQuadradoeoutraTriangulo.
Listagem2:ClasseQuadrado
/**
*
*@authorRobsonFernandoGomes
*/
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
2/7
9/10/2015
EntendendointerfacesemJava
publicclassQuadradoimplementsFiguraGeometrica{
privateintlado;
publicintgetLado(){
returnlado;
}
publicvoidsetLado(intlado){
this.lado=lado;
}
@Override
publicintgetArea(){
intarea=0;
area=lado*lado;
returnarea;
}
@Override
publicintgetPerimetro(){
intperimetro=0;
perimetro=lado*4;
returnperimetro;
}
@Override
publicStringgetNomeFigura(){
return"quadrado";
}
}
Listagem3:ClasseTriangulo
/**
*
*@authorRobsonFernandoGomes
*/
publicclassTrianguloimplementsFiguraGeometrica{
privateintbase;
privateintaltura;
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
3/7
9/10/2015
EntendendointerfacesemJava
privateintladoA;
privateintladoB;
privateintladoC;
publicintgetAltura(){
returnaltura;
}
publicvoidsetAltura(intaltura){
this.altura=altura;
}
publicintgetBase(){
returnbase;
}
publicvoidsetBase(intbase){
this.base=base;
}
publicintgetLadoA(){
returnladoA;
}
publicvoidsetLadoA(intladoA){
this.ladoA=ladoA;
}
publicintgetLadoB(){
returnladoB;
}
publicvoidsetLadoB(intladoB){
this.ladoB=ladoB;
}
publicintgetLadoC(){
returnladoC;
}
publicvoidsetLadoC(intladoC){
this.ladoC=ladoC;
}
@Override
publicStringgetNomeFigura(){
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
4/7
9/10/2015
EntendendointerfacesemJava
return"Triangulo";
}
@Override
publicintgetArea(){
intarea=0;
area=(base*altura)/2;
returnarea;
}
@Override
publicintgetPerimetro(){
intperimetro=0;
perimetro=ladoA+ladoB+ladoC;
returnperimetro;
}
}
Comopossvelveracima,ambasasclassesseguiramocontratodainterface
FiguraGeometrica,pormcadaumadelasaimplementoudemaneiradiferente.
Aocontrriodaheranaquelimitaumaclasseaherdarsomenteumaclassepaiporvez,
possvelqueumaclasseimplementevariasinterfacesaomesmotempo.
Imagine,porexemplo,umainterfacechamadaVeiculoeoutrachamadaMotor.
Listagem4:InterfaceVeiculo
/**
*
*@authorRobsonFernandoGomes
*/
publicinterfaceVeiculo{
publicStringgetNome();
publicStringgetId();
}
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
5/7
9/10/2015
EntendendointerfacesemJava
Listagem5:InterfaceMotor
/**
*
*@authorRobsonFernandoGomes
*/
publicinterfaceMotor{
publicStringgetModelo();
publicStringgetFabricante();
}
Aseguirpossvelvisualizaraimplementaodasinterfacesemumaclassechamada
Carro.
Listagem6:ClaseCarro
/**
*
*@authorRobsonFernandoGomes
*/
publicclassCarroimplementsVeiculo,Motor{
@Override
publicStringgetId(){
}
@Override
publicStringgetNome(){
}
@Override
publicStringgetFabricante(){
}
@Override
publicStringgetModelo(){
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
6/7
9/10/2015
EntendendointerfacesemJava
}
}
Concluso
Porfim,interfacenadamaisqueumaespciedecontratoderegrasqueumaclassesdeve
seguiremumdeterminadocontexto.ComoemJavanoexisteheranamltipla,ainterface
passaaserumaalternativa.
Esperoqueestecontedo,apesardebreve,possasertilprincipalmenteparaaquelesque
estoiniciandoosestudosemJavaeOrientaoaObjetos.
Ataprxima.
data:text/htmlcharset=utf8,%3Cheader%20style%3D%22webkittaphighlightcolor%3A%20transparent%3B%20paddingbottom%3A%2045px%3B%20
7/7