Mindmap
Java III - Principais APIs e Bibliotecas
Inhalt der Mindmap
Java III - Principais APIs e Bibliotecas
01 - Pacotes
- interfaces modelos main sistema
- main TestaConta.java
- modelos Conta.java
- sistema AtualizadorDeContas.java
- interfaces Autenticavel.java
- Diretórios
- br.com.nomedaempresa.nomedoprojeto.nomedapasta
- Import
- br.com.caelum.banco.NomeDaClasse;
- Boa prática: Importar de UM em UM.
- br.com.caelum.banco.NomeDaClasse;
- Import
- Criados automaticamente pelo Eclipse
- br.com.nomedaempresa.nomedoprojeto.nomedapasta
- Modificadores de Acesso
- public
- Todos. (para Classes, atributos, construtores e métodos)
- protected
- Classes do mesmo pacote e Classes filhas. (para atributos, construtores e métodos)
- padrão (sem nenhum modificador) package-private é utilizado
- Classes do mesmo pacote. (para Class, atributo, construtor e método)
- private
- Somente a própria Class. (para atributos, construtores e métodos)
- Classes públicas: O Java não permite mais de uma classe pública por arquivo e o arquivo deve ser NomeDaClasse.java.
- public
- interfaces modelos main sistema
02 - Jar e Javadoc
- Jar
- Gerando o JAR pelo Eclipse
- Export: botão direito nome do projeto
- Selecione a opção "JAR file". Next.
- Selecione diretório onde irá salvar. Next.
- Não modifica nenhuma informação nesta tela. Next.
- Defina quem será a "Main class:". Finish.
- Teste Prompt: java -jar banco.jar
- Defina quem será a "Main class:". Finish.
- Não modifica nenhuma informação nesta tela. Next.
- Selecione diretório onde irá salvar. Next.
- Selecione a opção "JAR file". Next.
- Boa prática: Nome do arquivo = empresa-projeto-versão = caelum-banco-1.0.jar.
- Export: botão direito nome do projeto
- Gerando o JAR pelo Eclipse
- Javadoc
- Gerando o Javadoc
- Menu > Project > Generate Javadoc...
- Selecione todas as classes. Defina "Destination".
- Abra o arquivo index.html.
- Selecione todas as classes. Defina "Destination".
- Inserindo comentários:
- /** * Classe responsável por moldar as Contas do Banco * * @author Manoel Santos da Silva */
- Menu > Project > Generate Javadoc...
- Gerando o Javadoc
- Jar
04 - java.lang
- Único com importação automática.
- PRINCIPAIS CLASSES
- classe System
- classeRuntime
- Rodar algum programa:
- Runtime rt = Runtime.getRuntime(); Process p = rt.exec("dir");
- Deve ser evitado ao máximo. Risco de dependência do sis operacional.
- Runtime rt = Runtime.getRuntime(); Process p = rt.exec("dir");
- Rodar algum programa:
- classe Object
- Todas as classes herdam de Object
- Todo objeto pode ser referenciado como Object
- Casting de referências
- Conta contaResgatada = (Conta) object;
- Exception: ClassCastException
- Conta contaResgatada = (Conta) object;
- Métodos do Object: equals e toString
- toString: retorna nome classe + @ + No. identidade:
- Sobrescrever: public String toString() { return "Uma conta com valor: " + this.saldo; }
- equals: compara variáveis referência "==".
- Sobrescrev para comparar atributos.
- Na classe conta...
- public boolean equals(Object object) { if (!(object instanceof Conta)) return false; Conta outraConta = (Conta) object; return this.saldo == outraConta.saldo; }
- Na classe conta...
- Sobrescrev para comparar atributos.
- toString: retorna nome classe + @ + No. identidade:
- Casting de referências
- Todo objeto pode ser referenciado como Object
- Todas as classes herdam de Object
- classe String
- Transformar String/ int / String
- int i = 100; String s = "" + i; System.out.println(s); double d = 1.2; String s2 = "" + d; System.out.println(s2);
- Transformar String em um número int: classe Integer.método estático.
- String s = "101"; int i = Integer.parseInt(s);
- Guarda referência, não guarda valor.
- Transformar String/ int / String
- classe StringBuffer
- É mutável e não possui pool. Ao trabalhar muito com a manipulação de uma mesma String dentro de um laço por exemplo.
- classe Math
- Métodos estáticos para operações com números.Arredondar, tirar raiz, etc...
- import static java.lang.Math.*;
- Isso elimina a necessidade de usar o nome da classe, sob o custo de legibilidade:
- PRINCIPAIS CLASSES
- Único com importação automática.
Collections framework
- Arraylist
- Arraylist<restringe à classe>
- foreach: No eclipse, você pode escrever foreach e dar ctrl+espaço, que ele vai gerar o esqueleto desse enhanced for! Muito útil!
- Collections.sort(nomes);
- Conta implements Comparable<Conta>{
- public int compareTo(Conta outra){
- Conta implements Comparable<Conta>{
- Collections.sort(nomes);
- foreach: No eclipse, você pode escrever foreach e dar ctrl+espaço, que ele vai gerar o esqueleto desse enhanced for! Muito útil!
- ArrayList<String> nomes = new ArrayList<String>();
- Arraylist<restringe à classe>
- List
- List<String> nomes = new LinkedList<String>();
- Permite dois valores iguais na lista. Pode-se ordenar.
- reverse(List<?> list) - Inverte a ordem dos elementos em uma lista específica. rotate(List<?> list, int distance) - Rotaciona os elementos de uma lista específica a uma distância específica. shuffle(List<?> list) - Troca aleatoriamente a lista específica usando um código padrão de aleatoriedade.
- Permite dois valores iguais na lista. Pode-se ordenar.
- Ideal ao declarar atributos: private List<Funcionario> empregados = new ArrayList<>();
- List<String> nomes = new LinkedList<String>();
- Set (de conjunto)
- Set<String> nomes = new HashSet<String>();
- Ignora elementos repetidos dentro da lista. Sem ordem.
- Processo de busca mais rápido que outras coleções. É preciso relacionar o objeto com um número.
- Ctrl + 3 > Generate HashCode()
- Processo de busca mais rápido que outras coleções. É preciso relacionar o objeto com um número.
- Ignora elementos repetidos dentro da lista. Sem ordem.
- ArrayList e LinkedList = inserção rápida e busca muito lenta! TreeSet e HashSet = inserção rápida (mais lenta do que a das listas.) Busca muito rápida!
- Dominar o uso e o funcionamento do hashCode é fundamental para o bom programador.
- Set<String> nomes = new HashSet<String>();
- Pode ser também: Collection<String> nomes = new ArrayList<String>();
- A interface é a mesma. A implementação é diferente.
- Map: não pertence a interface Collections
- Map<String, Conta> contas = new HashMap<String, Conta>();
- Trabalha com coleções do tipo chave/valor. Quero saber qual é o salário do diretor.
- contas.put("diretor", c1);
- imprime(contas.get("diretor").getSaldo());
- contas.put("diretor", c1);
- Trabalha com coleções do tipo chave/valor. Quero saber qual é o salário do diretor.
- Map<String, Conta> contas = new HashMap<String, Conta>();
- Comparable
- Método compareTo();
- Configura ordenação dos dados que poderá ser baseada em um ou mais critérios.
- Na classe String, por padrão, já foi configurado o método para ordenar por ordem alfabética.
- Configura ordenação dos dados que poderá ser baseada em um ou mais critérios.
- Método compareTo();
- A classe Collections traz uma grande quantidade de métodos estáticos úteis na manipulação de coleções. Consulte a documentação e conheça mais.
- Boas práticas:
- Você deve criar uma coleção já com uma capacidade grande, para evitar o excesso de redimensionamento.
- Evite usar coleções que guardam os elementos pela sua ordem de comparação quando não há necessidade.
- Neste caso prefira um HashSet no lugar de TreeSet.
- Não itere sobre uma List utilizando um for de 0 até list.size(). Use Iterator.
- Neste caso prefira um HashSet no lugar de TreeSet.
- Evite usar coleções que guardam os elementos pela sua ordem de comparação quando não há necessidade.
- Você deve criar uma coleção já com uma capacidade grande, para evitar o excesso de redimensionamento.
- Programe voltado a interface, e não à implementação!
- Ex.: Collection<Integer> teste = new ArrayList<>(); em vez de:
- ArrayList<Integer> teste = new ArrayList<>();
- Polimorfismo
- Busque sempre programar se referindo a essas interfaces menos específicas, na medida do possível: Métodos costumam receber e devolver Collections, Lists e Sets em vez de referenciar diretamente uma implementação (Ex.:ArrayList).
- Ex.: Collection<Integer> teste = new ArrayList<>(); em vez de:
- Arraylist
Informationen
- Beschreibung
- Preparatoria Abierta Java Mindmap am Java III - Principais APIs e Bibliotecas, erstellt von Alexandre Freire am 02/02/2017.
- Erstellt von
- Alexandre Freire
- Aufrufe
- 0
- Bewertung