140 likes | 272 Views
Monitoria IP ~if669 Garbage Collection e pacotes. Tópicos. Pacotes: Como e porque usá-los Garbage Collection: Descrição do Mecanismo. Por que usar pacotes?. ORGANIZAÇÃO E MODULARIZAÇÃO!
E N D
Monitoria IP ~if669 Garbage Collection e pacotes
Tópicos • Pacotes: Como e porque usá-los • Garbage Collection: Descrição do Mecanismo
Por que usar pacotes? • ORGANIZAÇÃO E MODULARIZAÇÃO! • É o mesmo motivo porque existem diretórios e pastas nos sistemas operacionais, tudo poderia estar no C:/ , mas isso seria altamente caótico(conflitos de nomes, etc. )
Como usar? • Simples! Tipos* quesão do mesmogrupo, pertencemaomesmopacote. • Ex. O pacote java.io tem tiposusadosparaentrada e saída, enquanto o pacotejava.langpossuitiposque tem funçõesbásicas. • *classes e interfaces
Como usar? Exemplo prático • Imaginem que vocês desenvolveram uma série de tipos que representam objetos gráficos, círculos, retângulos, linhas, pontos etc.
Como usar? Exemplo prático • Todos esses tipos devem ser distribuídas dentro do mesmo pacote: • Vocês e outros programadoressabemqueessestiposestãorelacionados. • Vocês e outros programadoressabemondeachartiposquefornecemfunçõesgráficas. • Os nomes de seustiposnãoirãoentraremconflito com classes de outrospacotes.
Como usar? Sintaxe • Deve ser declaradonaprimeiralinha do códigofonte. Sóescrever package seguido do nome. package graphics; publicclassCirculo{ . . . } • Não é recomendáveldeixar o campo package embranco.
Como usar? Sintaxe • Para acessarumaclassequeestádentro de um pacote, bastausar o import packagebr.cin.ufpe.util; importjava.util.ArrayList; publicclassTeste { privateArrayListlista; . . . }
Como usar? Nomeandoospacotes • A convenção é usar o dominioinvertidodainstituição: • www.cin.ufpe.br -> br.ufpe.cin.nomedopacote • www.empresa.org -> org.empresa.nomedopacote • Sósãopermitidosnomesminúsculossemcaracteresespeciais(com exceçãodo ‘_’)
Como usar? Nomeandoospacotes • Porqueusar as convenções? • Evitapossíveisconflitos de nomes, jáquepacotesnãopodempossuir o mesmonome. • Algunsnomessãomuitointuitivos e bastanteusados, como base, examples, graphics, io, util, etc. Usaressesnomessem o prefixo da instituiçãopodecausarproblemas com a distribuição do programa
Garbage Collection • Em java não é possíveldestruir um objetodiretamente • O garbage collector percebequando um objetonãoserámaisusado e o destróiautomaticamente • Podemos “ajudar” o cg do java, bastaapontar um objetopara null queeleprovavelmenteserátratadomaisrápido: privateArrayListlista; . . . //Usandolista lista = null; //Lista não é mais necessária
Garbage Collection - Nemtudosãoflores • É impossívelfazer um Garbage Collector funcionarperfeitamente, então um códigoquefoibemescritoonde o programadordesalocouosobjetosmanualmentesempreséramaiseficiente. • É impossíveltercertezaquando e onde o Garbage Collector vaiatuar.
Garbage Collection – Vantagens • Códigomaisenxuto • O programadornãoprecisa se preocuparemdesalocarosobjetos • Menoserros • Muitasaplicaçõesnãosentem o peso de performance do CG