25
DASS - Programação Orientada a Objetos com Java - Prof Gilmar Carvalho 1. Como criar projetos na IDE NetBeans 1.1 Escolher tipo do projeto. Após abrir o NetBeans clique em arquivo/novo 1.2 Escolher a localização do projeto. O nome do projeto deverá sempre começar com a primeira letra em maiúsculo e as demais em minúsculo. Caso o nome seja composto por duas palavras, a segunda deverá, também, começar com maiúsculo e o restante em minúsculo. 1

Sistema de Biblioteca Java

Embed Size (px)

DESCRIPTION

Um sistema de blioteca em java com documentações

Citation preview

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    1. Como criar projetos na IDE NetBeans 1.1Escolhertipodoprojeto.ApsabriroNetBeanscliqueemarquivo/novo

    1.2Escolheralocalizaodoprojeto.Onomedoprojetodeversemprecomearcomaprimeiraletraemmaisculoeasdemaisemminsculo.Casoonomesejacompostoporduaspalavras,asegundadever,tambm,comearcommaisculoeorestanteemminsculo.

    1

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    1.3ConfiguraoinicialdoprojetoControleBibliotecario

    2

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    1.4Criandoospacotes doprojetoMVC

    Cliquecomobotodireitodomousesobreooconedopacoteeapareceratela

    3

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    CliqueemPacoteJavaealtereonomedopacoteparacontrolebibliotecario.view

    Repitaoprocedimentoanteriorparacriarospacotescontrolebibliotecario.controlecontrolebibliotecario.model.Aofinalvocteraaseguinteconfiguraodepacotes:

    1.5ContedodosPacotesparaaquiteturaMVC(Model,VieweControl)

    PacotecontrolebibliotecarioEstepacoteconterapenasumaclasse.Estaclassesempreteronomedoprojeto

    (ControleBibliotecario.java)eapenasomtodoprincipal(publicstaticvoidmain(String[]args))

    Pacotecontrolebibliotecario.controlEstepacoteconterasclassesdecontrole.Classesdecontrolesoclassesquefazemumaponteentreospacotesdaviewemodel.

    Estasclassesimplementamoslisteners.

    Pacotecontrolebibliotecario.model

    4

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    Estepacoteconterasclassesdepersistnciadedados,ouseja,asclassesdedecontrole(CRUDCreate,Read,UpdateeDelete)edeEntidadesdeBancodeDados.

    Pacotecontrolebibliotecario.viewEstepacoteconterasclassesdetelasdaaplicao.

    2. Exemplo de uma aplicao com apenas duas camadas (view e model) 2.1Anlise2.1.1DescriotextualdoSistemaControleBibliotecrioUmabibliotecaquerautomatizarseusregistrosdelivros,leitoreseemprstimos.Nessabibliotecaoprazodedevoluodeumasemana,nohmulta,enohlimitepararetiradadelivros.Osistemadevepermitir,aoleitoroubibliotecria,amanutenodocadastrodelivros(incluso,exclusoeconsulta)eregistrodeconsultas(paraverificarseolivroestdisponvelouemprestado).OSistematambmdevefornecerconsultasausuriosematrasoelivrosdisponveiseretirados.2.1.2CasosdeUso

    Manter(incluir,excluir,alterar)livros Consultarlivros Consultarusuriosematraso Manterusurios Consultarlivrosdisponveis Consultarlivrosemprestados

    2.1.3CasodeUsoManterLivros

    Sistema: ControleBibliotecrioNomedoCasodeUso: ManterLivrosAtor: BibliotecriaPrcondio: MenudosistemadisponvelparaaBibliotecria1)OcasodeusocomeaquandoaBibliotecriaacessaatelaManterLivros2)OSistemaexibeumatelacomoscamposparacadastramento(cdigodolivro,ttulo,autor,ISBN,Editora)3)ABibliotecriadigitaocdigodolivro4)ABibliotecriaclicanobotoconsultar5)OSistemalocalizaolivroeexibeosdadosnatela.

    5

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    6)Abibliotecriapreencheosdadosnatela.7)Abibliotecriaclicanumdosbotes:Incluir,ExcluirouAlterar8)OSistemavalidaosdados(exceo1)9)OSistemafazamanuteno(inclui,excluioualtera)olivro.Exceo1OSistemaenviaaobibliotecrioumamensagemdizendoqualcampofoipreenchidoincorretamente.TeladeMenuTeladoCasodeUsoManterLivros

    2.1.3CasodeConsultarLivros

    Sistema: ControleBibliotecrioNomedoCasodeUso: ConsultarLivrosAtor: BibliotecriaeUsurioPrcondio: MenudosistemadisponvelparaaBibliotecria/usurio1)OcasodeusocomeaquandoaBibliotecria/usuarioacessaaconsultarlivros2)OSistemaexibeumatelacomasopcesdeconsulta3)ABibliotecriaoptaporumadasopesdeconsulta:autor,titurlo,editoraouano.4)ABibliotecriaclicanobotoconsultar5)OSistemalocalizaoslivroseexibeosdadosnatela.6)Abibliotecriaclicanobotolimpar

    6

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    7)OSistemalmpaatela

    2.1.4EntidadedeBancodeDados

    Biblioteca (cdigo,nome,endereo,CEP,cidade,UF)Livro (cdigo,ttulo,autor,editora,ISBN,ano)Leitor (cdigo,nome,endereo,CEP,cidade,UF)Emprstimo (cdigoLivro,cdigoLeitor,dataSaida,dataDevoluo)

    DiagramadeClases

    7

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    8

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    2.2DesenvolvimentodoprojetoemJavacomNetBeans2.2.1CriandoatelaManterLivros(pacoteview)

    AbraoprojetoControleBibliotecario(file/openproject) Cliquecomobotodireitodomousesobreopacotecontrolebibliotecario.view

    9

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    CliquenaopoFormJFrame.Casonoencontreestaopocliqueemoutros(others)eoptepelacotegoriaFormsGUISwingetipodearquivoFormJFrame.

    Cliqueemprximo(next)eatribuaonomedaclasseTelaManutencaoLivros.Verifiqueseo

    pacotecontrolebibliotecario.viewecliqueemFinalizar.

    10

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    Serexibidoaseguintetela:

    Nocantoesquerdotemosaestruturadoprojeto.Nocentroumatelaembrancoparaondeseroarrastadososcomponentes(Controles

    Swing)Nadireitatemososcomponentes(ControlesSwing)

    NestaprimeiraetapavamosusarapenasoscomponetesLabel,CampodeTextoeBoto.Rtulo(Label)Componenteutilizadoparaescreverumrtulonatela(Ttulodatela,

    descriadocontedodeumcomponente,etc.)CampodeTexto(JTextField)Componentequepermiteaentradadeumalinhadetexto

    (String).Boto(Button)Componentequeexecutaumaaoparaatela.

    InserindoottulodatelaCliquenocomponenteLabelecliquenatela(centro).

    AparecerumcompoentejLabel1 Paraalteraraspropriedadesdestecomponente,cliquecomobotodadireitasobreele.

    Apareceromenu: AopoEditarTextopermitealterarotextodoLabel.Cliquenestaopoeescrevaottulodatela:ManutenodeLivros.

    Inserindooscamposdeentradadedados

    11

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    PorenquantovamosusarapenasocomponteCampodeTexto(JTextField).ParacadaCampodeTextoqueinserirmosnatelavamosacrescentarumLabel(JLabel)

    descrevendooqueconterestecampo.CliquenocomponeteCampodeTextodapaletaControlesSwing(direitadatela).Agoracliquenaposiodatelaquevocquerqueestecomponenteaparea.Agoracliquecomobotodadireitasobreeleparalimparotexto(EditarTexto)do

    componenteedarumnomeparaestecomponente(AlteraroNomedaVarivel).ONomedaVariveldeverobedeceropadrodenomesparavariveisdojava.NestecasousaremosonomedevarivelcodigoDoLivro.

    Repitaestaoperaoparaosdemaiscamposdetextodatela. Inserindoosbotes

    CliquenocomponenteBoto dapaletadeControlesSwingcliquenaposiodatelaquevocquerqueestecomponenteaparea.MudeortulodobotoclicandocomobotodadiretasobreestecomponenteecliqueemEditarTexto(digiteottulodoboto:Consultar,Gravar,AlterarouExcluir).CliquecomobotodadireitasobreocomponenteecliqueemAlterarNomedaVarivel(ex:botaoConsultar,botaoGravar,botaoAlterar,botaoExcluir).2.2.2CriandoasclassesdeEntidadesdeBancodeDados(pacotemodel)NaanlisedosistemaControleBibliotecrio,identificamosasseguintesClassesdeEntidadesdeBancodeDados:

    Biblioteca (cdigo,nome,endereo,CEP,cidade,UF)Livro (cdigo,ttulo,autor,editora,ISBN,ano)Leitor (cdigo,nome,endereo,CEP,cidade,UF)Emprstimo (cdigoLivro,cdigoLeitor,dataSaida,dataDevoluo)

    CriandoaClasseEntidadedeBancodeDadosparaaclasseLivro.

    12

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    Cliquecomobotodadireitasobreopacotemodel,NovoeClasseJava.

    DonomeLivroparaaclasse.

    Digiteocdigoabaixo:

    packagecontrolebibliotecario.model

    importjava.util.ObjectspublicclassLivro{privateStringcodigoLivroprivateStringtituloprivateStringautorprivateStringeditoraprivateStringISBNprivateIntegerano

    13

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    publicLivro(StringcodigoLivro,Stringtitulo,Stringautor,Stringeditora,StringISBN,Integerano){//codigoLivroumavarivellocall//this.codigoLivroumatributothis.codigoLivro=codigoLivrothis.titulo=titulothis.autor=autorthis.editora=editorathis.ISBN=ISBNthis.ano=ano}publicStringgetCodigoLivro(){returncodigoLivro}publicvoidsetCodigoLivro(StringcodigoLivro){this.codigoLivro=codigoLivro}publicStringgetTitulo(){returntitulo}publicvoidsetTitulo(Stringtitulo){this.titulo=titulo}publicStringgetAutor(){returnautor}publicvoidsetAutor(Stringautor){this.autor=autor}publicStringgetEditora(){returneditora}publicvoidsetEditora(Stringeditora){this.editora=editora}

    14

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    publicStringgetISBN(){returnISBN}publicvoidsetISBN(StringISBN){this.ISBN=ISBN}publicIntegergetAno(){returnano}publicvoidsetAno(Integerano){this.ano=ano}@OverridepublicStringtoString(){return"Livro{"+"codigoLivro="+codigoLivro+",titulo="+titulo+",autor="+autor+",editora="+editora+",ISBN="+ISBN+",ano="+ano+'}'}@OverridepublicinthashCode(){inthash=5hash=37*hash+Objects.hashCode(this.codigoLivro)returnhash}@Overridepublicbooleanequals(Objectobj){if(obj==null){returnfalse}if(getClass()!=obj.getClass()){returnfalse}finalLivroother=(Livro)objif(!Objects.equals(this.codigoLivro,other.codigoLivro)){returnfalse}returntrue

    15

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    } }

    AgoravamoscriaraclasseContraladoraparaLivro.EstaclasseseraresponsvelporfazeroCRUDdeLivro,ouseja,inserirumlivro,recuperarumlivro,atualizarosdadosdeumlivroouexcluirumlivro.

    Cliquecomobotodadireitasobreopacotemodel,NovoeClasseJava.

    DonomedeControleLivrosparaestaclasse.

    . Digiteocdigoabaixo:

    importcontrolebibliotecario.model.Livroimportjava.util.ArrayListimportjava.util.List

    16

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    publicclassControleLivros{ArrayListlivros=newArrayList()publicvoidincluirLivro(Livrox){livros.add(x)}publicvoidexcluirLivro(Livrox){for(Livroy:livros){if(y.equals(x)){livros.remove(y)}}}publicvoidalterarLivro(Livrox){for(Livroy:livros){if(y.equals(x)){y.setAutor(x.getAutor())y.setTitulo(x.getTitulo())y.setEditora(x.getEditora())y.setISBN(x.getISBN())y.setAno(x.getAno())}}}publicLivroconsultarLivro(StringcodigoLivro){LivrolivroRetorno=nullfor(Livroy:livros){if(y.getCodigoLivro().equals(codigoLivro)){livroRetorno=y}}returnlivroRetorno} }

    17

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    2.2.3ModeloUMLdaAplicaocomduascamadas(VieweModel)

    DiagramadeClasses

    Essediagramadeclassesexibecomoasclassesestorelacionadaseopacoteaquepertencem.Hdoistiposderelacionamentos:a)Dependncia( )Estetipoderelacionamentosedatravsdeummtodo.Avarivelderefernciadoobjetonocasoacima,umainstnciadaclasseTelaManterLivrosumavarivellocaldentrodeumamtododaclasseControleBibliotecario.Portanto,assimqueomtodonessecasoomtodomaindaclasseControleBibliotecrioterminar,avarivelserdescartada.EsserelacionamentoexistetambmentreaclasseTelaManterLivroseaclasseLivro(videexemplosabaixo).Exemplos:publicstaticvoidmain(String[]args){TelaManterLivrostml=newTelaManterLivros()tml.setVisible(true)}privatevoidbotaoIncluirActionPerformed(java.awt.event.ActionEventevt){ LivroumLivro=newLivro(this.codigoLivro.getText(),this.tituloLivro.getText(),this.autor.getText(),this.isbn.getText(),Integer.parseInt(this.ano.getText()))

    18

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    controleLivros.incluirLivro(umLivro) } b)Associao( )Estetiporelacionamentosedatravsdeumatributodotipoumaclasse.Esserelaciomentoexisteenquantooobjetoexistir.Exemplos:publicclassTelaManterLivrosextendsjavax.swing.JFrame{privateControleLivroscontroleLivrospublicclassControleLivros{privateArrayListlivros2.2.4ComoConectarasClassesdesseSistema(relacionamentos)

    1. Classe ControleBibliotecrio com TelaManterLivros AClasseManterLivrosaclasseapartirdoqualosistemaserinicializado.EssaclassetemapenasomtodomainmtodoqueexecutadopelamquinavirtualJava.

    Essemtodocriarumainstncia/objeto(new)daclasseTelaManterLivroseexecutaromtodosetVisible(true)desseobjeto.OrelacionamentodaclasseControleBibliotecariocomaTelaManterLivrosserdotipodependncia( ),quesignificaumrelacionamentoacionadoatravsdeummtodo,portanto,temporrio.

    publicclassControleBibliotecario{ publicstaticvoidmain(String[]args){ TelaManterLivrostml=newTelaManterLivros() tml.setVisible(true) }

    }

    2. Classe TelaManterLivros com ControleLivros EssaclassetersempreassociadoaelaumatributodotipoControleLivros,queservirparafazeroCRUDdeLivro.Essarelaodotipoassociaao( )significaqueessaclassetemumatributodotipoControleLivros.

    19

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    publicclassTelaManterLivrosextendsjavax.swing.JFrame{privateControleLivroscontroleLivros

    publicTelaManterLivros(){

    controleLivros=newControleLivros() initComponents()

    }Vamosassociaraosbotes(Consultar,Incluir,AlterareExcluir),mtodosqueseroacinadosquandoclicarmosnessesbotes.Paraassociarumevento(clicar)sobreumcomponentedotipoboto(JButton):

    a)BotoConsultar:CliquecomobotodadireitadomousesobreoobotoConsultar.

    b)CliquenaopoEventos/Action/actionPerformed.Sercriadoummtodoque

    seracionado(videabaixo)semprequeclicarmosnoboto.

    privatevoidbotaoConsultarActionPerformed(java.awt.event.ActionEventevt){

    StringcodigoLivro=this.codigoLivro.getText() LivroumLivro=controleLivros.consultarLivro(codigoLivro) if(umLivro!=null){ this.autor.setText(umLivro.getAutor()) this.ano.setText(umLivro.getAno().toString()) this.isbn.setText(umLivro.getISBN()) }else{ JOptionPane.showMessageDialog(null,"LivroInexistente") }

    }

    c)BotoIncluir:CliquecomobotodadireitadomousesobreobotoIncluir.

    privatevoidbotaoIncluirActionPerformed(java.awt.event.ActionEventevt){

    LivroumLivro=newLivro( this.codigoLivro.getText(), this.tituloLivro.getText(), this.autor.getText(),

    20

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    this.isbn.getText(), Integer.parseInt(this.ano.getText())) controleLivros.incluirLivro(umLivro)

    }

    d)BotoExcluir

    3. Classe ControleLivros de Livro AclasseControleLivrosterumconjunto(ArrayList)deobjetosdotipoLivro.EssaclasseterosmtodosquepermirofazeroCRUD(incluir,consultar,alterareexcluir)deobjetosdotipoLivrodoArrayListdeLivro.EssarelaoentreControleLivroseLivrodotipoassociaoessaclasseterumatributodotipoArrayList.Temos,atravsdaclasseArrayList,umrelacionamentodotipoumparamuitos,oumelhor,umobjetodaclasseControleLivrosterumconjuntodezeroounobjetosdotipoLivro.packagecontrolebibliotecario.modelimportjava.awt.Listimportjava.util.ArrayListpublicclassControleLivros{privateArrayListlivrospublicControleLivros(){livros=newArrayList()}publicvoidincluirLivro(Livrox){livros.add(x)}publicvoidalterarLivro(Livrox){for(Livroy:livros){if(x.equals(y)){y.setAno(x.getAno())y.setAutor(x.getAutor())y.setISBN(x.getISBN())y.setTitulo(x.getTitulo())}}}

    21

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    publicvoidexcluirLivro(Livrox){for(Livroy:livros){if(x.equals(y)){livros.remove(x)}}}publicLivroconsultarLivro(StringcodigoLivro){LivrolivroRetorno=nullfor(Livroy:livros){if(y.getCodigoLivro().equals(codigoLivro)){livroRetorno=y}}returnlivroRetorno}}

    2.3DiagramadeSequncia(UML)doCDUManterLivrosOsDiagramasdeSequnciasoutilizadosparamodelarosaspectosdinmicosde

    sistemas.Essediagramamostraumainterao(geralmenteumCasodeUso),formadaporumconjuntodeobjetoseseusrelacionametnos,incluindoasmensagensquepoderoserenviadasentreeles.Essedigramaenfatizaordenaotemporaldasmensagens.

    22

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    No exemplo acima vemos um trecho de diagrama de sequncia para o caso de uso ManterLivro. Os retngulos representam os objetos (varivel de referncia : Classe). As setas so as mensagens (mtodos) que um objeto requisita de outro. As mensagens (chamadas de mtodos de um objeto por outro) pode ser sncronas ou assncronas. Quando a mensagem assncrona (sem retorno), a seta fina, quando sncrona (chamada com retorno) a linha tem uma seta retangular cheia. Uma resposta deumamensagemsncronarepresentadaporumalinhatracejadacomumasetafina.2.4ConceitosdeOrientaoaObjetosutilizadosnesteprojeto.2.4.1CamadadeViso2.4.1.1Componente

    UmcomponenteumobjetoquetemumarepresentaogrficaquepodeserexibidonumatelaGUI(GraphicalUserInterface)equepodeinteragir(respoderaeventoscomoclicar,arrastar,etc.)comousurio.Exemplosdecomponentessoosbuttons,checkboxes,comboboxes,radiobuttons,textfields,labels,frames,etc.

    Oscomponentesqueforamutilizadosnessaaplicaopertencemaopacotejavax.swingeestoagrupadosemControlesSwingdapaletadecomponentesdoNetBeans:javax.swing.JButton,javax.swing.JCheckBox,javax.swing.JComboBox,javax.swing.JRadioButton,javax.swing.JTextFiled,javax.swing.JLabel,etc.

    2.4.1.2Herana

    Umoutrotipodecomponentessooscontineres.Oscomponentesdotipocontinerpodemagruparoutroscomponentesnoseuinterior(Ex.JFrame,JPanel,JScrollPanel,etc.)

    QuandocriamosatelaManterLivrosoptamospeloJFramequeumcomponentedotipocontiner.AocriarmosaclasseManterLivros,oqueaconteceufoiqueessaclassepassouaserumJFrame,ouseja,herdouascaractersticas(atributos)ecomportamentos(mtodos)daclasseJFrame.PodemosveressaheranaexplcitanocdigodaclasseManterLivros:

    publicclassTelaManterLivrosextendsjavax.swing.JFrame{EmUML

    23

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    2.4.1.3Tratamentodeeventos

    Umcomportamentoassociadoasclassesquedefinemoscomponentesacapacidadedeinteragircomosusurios.Assim,umcomponentepodeserprogramado(mtodo)paraterumaaoquandoousrioclicanele,arrasta,entra,sai,etc.

    Oseventossoobjetoscriadosquandoumaaosobreumcomponenteexecutada.Porexemplo,quandoprogramamosobotoConsultarparaqueeleexecutasseumaconsultalistadelivros,optamospeloeventoActionPerformed(clicarsobreoboto)paraexecutaraaodesejada.Vimosentoquefoicriadooseguintemtodo:

    privatevoidbotaoConsultarActionPerformed(java.awt.event.ActionEventevt){

    }Nomedomtodo:botaoConsultarActionPerformedRetornodomtodo:voidParmetrosdomtodo:ActionEventevtPercebemosque:a)onomedomtodoestassociadoaonomedocomponente+onomedoevento,b)omtodonodevolver(return)nenhumvalor,apsotrminodaexecuo,c)omtodoreceberumobjetodotipoActionEventassociadoavarivelevt.Ositensaebsoperfeitamenteentendidos.Aquestocomoassociaraumcomponenteumevento.SeexpandirmosomtodoinitComponents()veremosque:a)foigeradoumainstnciadeJButton:consultar=newjavax.swing.JButton()b)foiacionadoomtodoaddActionListenerdobotoconsultar:botaoconsultar.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){consultarActionPerformed(evt)}})Paraentenderestecomandoprecisoentenderque:

    24

  • DASS - Programao Orientada a Objetos com Java - Prof Gilmar Carvalho

    a)OmtodoaddActionListenerrecebeumparmetroqueumobjetodotipoActionListener.b)SeobservamosadescriodoparmetroveremosocomandonewindicandoquealisercriadoumobjetodotipoActionListener.c)Essaformadecriarumobjetodiretamentonoparmetrochamadodeinnerclassannima.

    2.4.1.4Estadodeumobjeto.

    Oestadodeumobjetoenvolvetodososatributos(propriedades)doobjetojuntamentecomvaloresatuaisdecadaumadessesatributos.Oestadodeumobjetodinmico.Assim,aovisualizarseuestado,estamosrealmenteespecificandoovalordeseuestadoemumdeterminadomomentonotempoenoespao.

    Umaclassequenotemnenhumatributoprprioouherdado,tersempreomesmoestadoparatodososobjetoscriados.Omesmovaleseosatributosforemtodosdotipostatic.Nessecaso,geralmenteosmtodosdaclassetmomodificadorstaticindicandoqueomtodopodeserchamadosemanecessidadedecriarumainstncia/objeto,bastandoapenasquesefaarefernciaaonomedaclasse,seguidodepontoeonomedomtodo.AsclassesqueagrupamfunescomoaclasseMathdopacotejava.lang,tmseusmtodosdeclaradoscomostatic,portantopodemosacionarseusmtodosdiretamentepelonomedaclasse(Ex.Math.cos(),Math.pow(doublea,doubleb),Math.cos(doublea),Math.sqrt(doublea),Math.round(doublea),Math.random(),etc.).

    2.4.2CamadaModelo2.4.2.1ClassedeEntidade2.4.2.2ClassedeControle2.4.2.3Listas(ArrayList)

    25