• Nenhum resultado encontrado

AS BIBLIOTECAS DE JAVA

N/A
N/A
Protected

Academic year: 2019

Share "AS BIBLIOTECAS DE JAVA"

Copied!
90
0
0

Texto

(1)

AS BIBLIOTECAS DE JAVA

Cleyton Caetano de Souza IFPB-Campus Monteiro

(2)

Roteiro

• O que é uma “biblioteca”?

• Javadoc

• Math

• String

• Datas

• Envelopadores

• Coleções

(3)

Introdução

• JAVA é uma linguagem OO, isso significa que ao programarmos pensamos nos problemas como uma sequência de interações entre objetos de diferentes Classes

– Eu vou imaginar as entidades que serão necessárias

• Num sistema acadêmico

• Num sistema de compras online

• Muitos projetos tem funcionalidades em comum!

• Não precisamos sempre programar tudo! – Já existe muita coisa pronta!

(4)

Introdução

• O Java tem uma ampla gama de recursos

padrão

– Desde de tocar um som até enviar um e-mail.

• Esses recursos fazem parte da API (Application

Programming Interface) – em português:

(5)

APIs

• API é um conjunto de rotinas disponibilizados

por um software para a utilização das suas

funcionalidades por aplicativos que não

pretendem envolver-se nos seus detalhes

implementação, mas apenas usar seus

(6)

APIs

• A API é um grupo de programas de suporte

destinados a cumprir funções específicas

– Essas funções estão divididas em diferentes partes (pacotes) relacionadas as suas funcionalidades (o que nós denominamos bibliotecas).

• Para usá-las não precisamos saber como elas

realizam tal tarefa, mas apenas como usar.

– As vezes, descobrir como usar uma classe é

(7)

JavaDoc

• De maneira geral o JavaDoc fornece uma linguagem especifica para enriquecer os comentários que

introduzem classes, atributos e métodos.

• Seu funcionamento baseia-se na inserção de textos

explicativos em forma de um comentário especial, que antecedem um escopo de uma classe ou método,

tendo assim, a responsabilidade de apresentar o mesmo.

• Esses “comentários especiais” são utilizados para gerar

(8)

Documentação

• Todas as classes e métodos que vamos estudar

possuem sua documentação online e que pode ser acessada pelo link abaixo

(9)

Pacotes mais usados da API Java

Pacote API Recurso

java.awt Recursos Gráficos

java.io Entrada e Saída de Dados

java.lang Recursos Fundamentais da

Linguagem Java

java.math Operações Matemáticas

java.util Miscelânea de Recursos

(10)

Classes que vamos conhecer nessa aula:

• Math

• String

• Date e Calendar

• Integer, Float, Boolean, Char...

(11)

Math

• A classe Math do pacote java.lang contém

uma série de métodos matemáticos bastante úteis

– Ex. Gerar Número Aleatório, Arredondar um número, Calcular a Raiz Quadrada, etc.

• Possui definida duas constantes

– public final static double PI

– public final static double E

(12)

Math

Método O que faz Exemplo de utilização Resultado

Math.max Retorna o maior valor entre os valores fornecidos

Math.max(145, 159) 159

Math.min Retorna o menor valor entre os valores fornecidos

(13)

Math

Método O que faz Exemplo de utilização Resultado

Math.abs Retorna o módulo do valor passado como parâmetro

Math.abs(-154) 154

Math.ceil Arredonda o

parâmetro para cima

Math.ceil(8.02) 9.0

Math.floor Arredonda para baixo Math.floor(8.8) 8.0 Math.round Arredonda para o

valor mais próximo

Math.round(1.5) e Math.round(1.4)

(14)

Math

Método O que faz Exemplo de utilização

Resultado

Math.random Retorna um número aleatório no intervalo [0, 1[

Math.random() 0.88

Math.sqrt Retorna a raiz quadrada do número passado como parâmetro

Math.sqrt(4) 2

Math.pow Retorna a potência do primeiro parâmetro elevado ao segundo parâmetro

(15)

Exercício

• Escreva um programa que leia dois números, calcule a potência do primeiro elevado ao

segundo, e imprima a raiz quadrada desse número arredondando para cima.

• Escreva um programa que gere dois números

aleatórios, o primeiro entre 0 e 100 e o segundo entre 1 e 100, em seguida, imprima o maior

desses dois números elevado ao cubo.

(16)

Math

• Para mais detalhes consultem a

documentação da classe Math

(17)

String

• String é uma cadeia de caracteres

• Em Java

– Não há um tipo primitivo para String

(18)

String

• O estudo de como as Strings funcionam em

baixo nível em Java é algo relativamente

avançado que exigiria bastante tempo e que é uma particularidade de Java.

• Nesse momento, o que nos interessa é

(19)

String

• public boolean equals(String other)

– Compara se duas String são iguais

• public boolean equalsIgnoreCase(String other)

(20)

String

• public int length()

– Retorna o comprimento da String

• public char charAt(int i)

(21)

String

• public String toLowerCase()

– Retorna a String em caixa baixa

• public String toUpperCase()

– Retorna a String em caixa alta

• public String replace(char old, char new)

(22)

Exercício

• Escreva um programa que leia uma String e

substitua suas vogais por números (4 por a, 3 por é, 0 por o, i por 1).

• Escreva um programa leia uma String e a

imprima uma String invertida.

• Escreva um programa que leia uma String e

(23)

String

• Para mais detalhes consultem a

documentação da classe String

(24)

Datas em Java

• Em Java, as Datas também são representadas

por objetos Date do pacote java.util

• Como criar uma data que representa o

(25)

Datas em Java

• Em Java, as Datas também são representadas

por objetos Date do pacote java.util

• Como criar uma data que representa o

instante atual?

(26)

Datas em Java

• Em Java, as Datas também são representadas por objetos Date do pacote java.util

• Como criar uma data que representa o instante atual?

• Qual será a saída? – O construtor default

cria uma data que representa o

(27)

Imprimindo Date

Dia da Semana: Sunday

Mês: November

Dia do Mês: 23

Hora: 15h24m20s

Sistema de Tempo: Brazilian Summer Time

(28)

Date

• A classe Date é muito limitada, ela serve para representar uma data como um objeto

• Ela possui poucos métodos que são verdadeiramente úteis, por exemplo:

– after

– before

– compareTo

• Se eu quiser manipular a data ou exibir ela

(29)

Date

• public boolean after(Date outraData)

– Retorna true se a data que chamou o método é posterior a data passada como parâmetro

• public boolean before(Date outraData)

– Retorna true se a data que chamou o método é anterior a data passada como parâmetro

• public int compareTo(Date outraData)

(30)

Date

• Para mais detalhes consultem a

documentação da classe Date

(31)

SimpleDateFormat

• Se eu quero exibir a data com uma certa

formatação eu preciso usar a classe SimpleDateFormat

• Principais métodos que vocês usarão

– public String format(Date data)

(32)

Exibindo a data formatada: format

(33)

Entendendo a Máscara

• Existem símbolos que representam os elementos da data

• Você combina esses símbolos para exibir a data no formato que você quiser

– Exemplos

• d-M-yy

– 1-2-14, 21-1-99, 22-10-11, 1-11-11

• dd/MM/yyyy

– 01/02/2014, 21/01/1999, 22/10/2011, 01/11/2011

• d*MM*yyyy

(34)

Significado dos Símbolos da Máscara

Símbolo Significado Símbolo Siginificado

d Dia do mês D Dia do ano E Dia da semana a Marcador de

am/pm

W Semana do ano W Semana do mês m Minuto M Mês

y Ano G Designador de era (AC/DC)

H Hora em am/pm (1 a 12)

H Hora do dia (0 a 23)

k Hora do dia (1 a 24) K Hora em am/pm (0 a 11)

s Segundos S Milissegundos z Sistema de Tempo

(general time zone)

(35)

Exercício

• Qual a máscara que deve ser utilizada para exibir a data nesse formato?

– 1/1/99 17:00

– 03-7-2014 - 8:8 pm

– 31/Dez/77, 19:40

– 0:59:00

– Terça-feira, 22 de janeiro de 14

• Teste cada uma das máscaras para uma data

(36)

Transformando String em Date: parse

(37)

try... catch... exceções

O método parse pode resultar em um erro! Quando?

(38)

try... catch... exceções

• O código tem que estar preparado para tratar

esse erro, por isso precisamos do “try catch”

• Algumas das classes que vocês vão utilizar lançam exceções que devem ser tratadas de forma semelhante!

O estudo de exceções faz parte do módulo V

(39)

try... catch... (Genérico)

try {

//fazer isso

} catch (Exception e) {

//se der errado venha para cá

(40)

Exercício

• Utilizando método parse da classe

SimpleDateFormat, crie uma data que representa o dia do seu nascimento.

• Utilize o SimpleDateFormat para representar a

data do seu nascimento utilizando a seguinte máscara

(41)

SimpleDateFormat

• Para mais detalhes consultem a

documentação da classe SimpleDateFormat

(42)
(43)

Criando Datas Específicas

• A classe Date possui um construtor para criar datas específicas:

• Esse construtor é deprecated, isso significa que ele

está obsoleto e a comunidade não recomenda que você o utilize

• Um método deprecated ainda está disponível, mas não é recomendado utilizá-lo por diversas razões:

(44)

Criando Datas Específicas

Métodos deprecated aparecerão

com esse traço no código

(45)

Criando Datas Específicas

• Aqui, você encontrará uma discussão

interessante do porquê não utilizar esse construtor da classe Date

– http://stackoverflow.com/questions/460423/why-

was-new-dateint-year-int-month-int-day-deprecated

(46)

Calendar

• A classe Calendar foi criada para substituir e/ou complementar a classe Date

– A classe Date permite representar um instante no tempo como um objeto

– A classe Calendar permite, além disso, fazer diversas operações com datas

• Adicionar uma unidade de tempo a uma data

(47)

Calendar

• Como utilizar a classe Calendar?

– A classe Calendar não pode ser instanciada utilizando o operador new e seu construtor

• Isso não é possível Calendar c = new Calendar();

– Nem todos os seus métodos são estáticos, logo não posso chamá-los com o nome da classe

• Isso não é possível Calendar.set(1989, 0, 30)

(48)

Calendar

• Como obter um objeto do tipo Calendar?

(49)

Calendar

• Calendar utiliza um padrão de projeto para criar objetos do tipo de Calendar

• Para obter uma instância de Calendar, utiliza-se o método estático Calendar.getInstance()

• Calendar.getInstance() retorna um objeto do

tipo Calendar

• Esse método retornará um objeto calendar

(50)

Criando Datas Específicas com

Calendar

Obtendo uma instância de Calendar

Alterando a data

padrão para uma data específica

(51)
(52)

Exercício

• Utilizando Calendar crie uma data que

representa o dia do seu nascimento e imprima ela no console utilizando essa máscara.

– dd/MM/yyyy EEEE

• Adicione ao campo anos do seu nascimento a

diferença entre o ano atual e o ano do seu

(53)

Calendar

• Para mais detalhes consultem a

documentação da classe Calendar

(54)

Coleções

• As vezes, na maioria das vezes na verdade, precisamos manipular mais que um objeto

– Precisamos manipular diversos objetos

• Java fornece uma rica API para manipulação

de coleções de objetos

– Uma coleção é uma estrutura que permite armazenar diversos objetos

(55)

Coleções

• Não precisamos nos ater aos detalhes de

implementação sobre como essas estruturas para armazenar coleções de objetos

funcionam

• O programador deve se preocupar apenas sobre como utilizar essas coleções

(56)

Coleções

• Cada Classe dessa API tem suas próprias características

• Nos próximos slides, vamos analisar algumas

(57)

Coleções

• A forma como a Classe vai representar a coleção de objetos vai determinar como os objetos serão guardados e recuperados

• Cada classe representa de uma forma diferente uma coleção de objetos

– Ex. Vetor, Lista, Conjunto, Tabela Indexada

– Cada classe tem seu contrato de uso, que você precisa compreender para poder usá-la

(58)

Vetor

• Características do Vetor – Tamanho fixo

– Acesso direto aos elementos por meio do índice

(59)

Classe: Arrays

• Contém um conjunto de métodos estáticos

(60)

Exercício

• Usando a classe Arrays, escreva um programa,

em Java, para ler 10 números inteiros, ordenar e imprimi-los

• Usando a classe Arrays, escreva um programa,

em Java, para gerar 10 números inteiros aleatórios (1 até 100). O programa deverá

obter um número do usuário, verifique se esse número está contido no vetor e informe ao

(61)

Exercício

• Usando a classe Arrays, escreva um programa, em Java, para gerar dois vetores de tamanho 5, com números aleatórios entre 1 e 3. Compare e informe se esses vetores são iguais. Imprima os vetores gerados.

• Usando a classe Arrays, escreva um programa, em Java,

para preencher um vetor de 30 números “int” da seguinte forma

– Até o índice 9: com um número aleatório entre 0 e 9

– Do índice 10 ao 19: com um número aleatório entre 10 e 19

(62)

Arrays

• Para mais detalhes consultem a

documentação da classe Arrays

(63)
(64)

Listas

• Uma lista é uma coleção de elementos

arrumados numa ordem linear

– Isto é, onde cada elemento tem um antecessor (exceto, o primeiro) e um sucesso (exceto o

último)

• Estruturas conceitualmente dinâmicas

(65)

Listas

• Operações

– Adição de elementos

• Adicionar um objeto em qualquer lugar da lista, fornecendo o índice desejado

– Remoção de elementos

• Remover um objeto presente em qualquer lugar da lista, fornecendo o índice desejado

– Acesso aos elementos

• Obter o elemento de qualquer posição da lista, fornecendo o índice desejado

– Pesquisa de elementos

• Descobrir se um elemento está na lista

• Descobrir o índice de um elemento na lista

– Indagar sobre os atributos

• Obter o número de elementos da lista

(66)

ArrayList

• ArrayList é um dos diversos tipos de lista que existe na API de coleções

• Como declarar e usar ArrayList em Java – Importe:

import java.util.ArrayList;

– Por ser um tipo diferente, sua sintaxe é um pouco diferente do que você já viu até então:

ArrayList< Classe> nomeDoArrayList = new ArrayList< Classe>();

– No exemplo a seguir, vamos usar um ArrayList de String

(67)

ArrayList

Método O que faz? Exemplo de Utilização

add(Element e) Adiciona um elemento no fim da lista

nomes.add(“José”) add(int index, Element e) Adiciona um elemento em uma

posição específica

nomes.add(1, “Maria”) remove(Element e) Remove a primeira ocorrência do

elemento na lista, se ele existir.

nomes.remove(“Maria”) remove(int index) Remove o elemento da posição

especificada, deslocando para a esquerda os elementos a direita dessa posição.

nomes.remove(0)

get(int index) Retorna o elemento da posição especificada.

nomes.get(2) set(int index, Element e) Substitui o elemento na posição

especificada pelo passada como parâmetro.

(68)

ArrayList

Método O que faz? Exemplo de Utilização

isEmpty Retorna true se a lista está vazia. nomes.isEmpty() size Retorna o total de elementos

presente na lista.

nomes.size()

toArray Retorna um Array contendo os mesmos elementos da lista.

nomes.toArray()

contains(Element e) Retorna true se o elemento existir na lista.

nomes.contains(“Ana” )

indexOf(Element e) Retorna a posição na lista do elemento passado como parâmetro, se ele existir.

nomes.indexOf(“Mari

a”)

clear Apaga todos os elementos da lista.

(69)

Exercício

1. Crie um ArrayList de Strings

2. Adicione ao ArrayList alguns nomes de parentes da sua família e seu nome

3. Imprima a posição do seu nome 4. Remova o primeiro nome

(70)

ArrayList

• Para mais detalhes consultem a

documentação da classe ArrayList

(71)
(72)

Conjuntos

• Um conjunto consiste em um tipo de coleção

de objetos em que não pode haver elementos repetidos e que os elementos podem ou não estar organizados

– Como conjuntos em matemática

A B

(73)

HashSet e TreeSet

• No HashSet, os objetos do conjunto encontram-se desordenados

– Como usar

• Importe

java.util.HashSet

• Instancie

HashSet<String> nomes = new HashSet<String>();

• No TreeSet, os objetos do conjunto encontram-se ordenados

– Como usar

• Importe

java.util.TreeSet

• Instancie

(74)

HashSet e TreeSet

Método O que faz? Como usar?

add(Element e) Adiciona um elemento no conjunto.

nomes.add(“João”).

contains(Element e) Retorna true se o elemento passado como parâmetro existe no conjunto.

nomes.contains(“José”);

isEmpty() Retorna true se o conjunto está vazio.

nomes.isEmpty();

remove(Element e) Remove o elemento do conjunto.

nomes.remove(“João”);

size() Retorna a quantidade de elementos do conjunto.

nomes.size();

toArray() Retorna um array com os mesmos elementos do conjunto.

(75)

HashSet e TreeSet

• Mais detalhes sobre essas coleções podem ser

encontrados em suas documentações

– https://docs.oracle.com/javase/7/docs/api/java/u til/HashSet.html

(76)
(77)

Mapas

• Funcionam como um dicionário

– Cada elemento está associado a uma chave, utilizando a chave, acessa-se o elemento

diretamente.

– CADA ELEMENTO É MAPEADO POR UMA CHAVA

(78)

HashMap

• A classe HashMap é uma das principais

implementações de Mapa da API de Java.

– Não é sincronizada

(79)

HashMap

• O uso principal da classe HashMap é quando

queremos associar chaves e valores e,

posteriormente, recuperar valores baseados em suas chaves.

• Como utilizar

– Importe

import java.util.HashMap;

– Instancie

(80)

HashMap

Método O que faz? Como usar?

put(Key k, Element e) Insere no mapa o

elemento e o associa a sua chave.

Pessoa p = new Pessoa(“Cleyton”); mapa.put(“cleyton”, p)

get(Key k) Retorna o elemento passando sua chave.

mapa.get(“cleyton”)

remove(Key k) Remove o elemento passando sua chave.

mapa.remove(“cleyton”)

isEmpty() Retorna true se o mapa está vazio.

mapa.isEmpty()

size() Retorna o número de chaves que existem no mapa.

(81)

HashMap

Método O que faz? Como usar?

keySet() Retorna um

conjunto contendo as chaves do mapa.

Set set = mapa.keySet();

values() Retorna uma lista contendo os

elementos do mapa.

List list = mapa.values()

containsKey(Key k) Retorna true se a chave existe no mapa.

mapa.containsKey(“cleyton”)

containsValue(Element e) Retorna true se o elemento existe no mapa.

(82)

HashMap

• Para mais detalhes consultem a

documentação da classe HashMap

(83)

Envelopadores

• Coleções só podem conter objetos!

– Como criar um ArrayList de inteiro?

(84)

Envelopadores

• Os envelopadores (wrappers, em inglês) são

classes em Java que servem para representar os tipos primitivos

(85)

Envelopadores

Tipo Primitivo Classe

boolean Boolean

char Char

byte Byte

short Short

int Integer

long Long

float Float

(86)

Envelopadores

(87)

Exemplos

• A classe Integer possui o método longValue que converte um inteiro para double

– Integer i = new Integer(1);

– double d = i.doubleValue();

• A classe Integer possui o método estático

parseInt, o qual converte uma String em um número inteiro.

(88)

Exercício

(89)

Exercício

• Utilize método estático parseInt e o método nextLine de Scanner para ler uma String e convertê-la em um número

• Solução

– Scanner s = new Scanner(System.in);

(90)

Próximo Estágio

Referências

Documentos relacionados

Dizem os mizeraveis moradores dos lugares da Petisqueira, Guadramil, Rio de Honor, e Valverde do termo da cidade de Bragança Reguengueiros do Almoxarifado da dita Cidade, ao qual

Você reconhece que os dados coletados pela Natura são utilizados especialmente para (i) a prestação dos serviços disponibilizados e desenvolvidos nos Sites e Aplicativos,

Trabalhou por cinco anos na equipe regulatória da B3, onde fez parte do grupo responsável pela última reformulação do Regulamento do Novo Mercado e da elaboração do Programa

PARÁGRAFO TERCEIRO - O valor das multas aplicadas deverá ser recolhido no prazo de 5 (cinco) dias, a contar da data da notificação. Se o valor da multa não for pago, ou depositado,

Palavras-chaves: Séries de Legendre da linha geodésica; função erro para latitude; função erro para longitude e função erro para azimute; modelo de ajustamento pelo MMQ; teste

constantemente postos em causa devido a alterações passageiras da situação existente no país de origem dos beneficiários, assegurando a estabilidade da sua

Todavia, se retirarmos o efeito da linha Outras Receitas (Despesas) Operacionais em ambos os anos, por terem uma natureza não recorrente, temos um crescimento de

O PRP- Programa de Residência Pedagógica da CAPES, em parceria com a IES- Instituições de Ensino Superior FACHUSC – Faculdade de Ciências Humanas do Sertão