Java dispom de um extenso conjunto de classes predefinidas que estam a disposiçom da programadaora. Estas classes, contidas em paquetes, conformam a Java Application Programming Interface (Java API) ou biblioteca de classes.
Estas classes som um conjunto de subrutinas, funçons e procedimentos (classes e métodos na programaçom orientada a objetos) que se ponhem a disposiçom dos e das programadoras para a realizaçom de tarefas comuns e habituáis. Por exemplo:
- Entrada e saída de dados desde consola, ficheiros, rede, etc.
- Cáculos matemáticos complexos coma raizes quadradas, exponentes, etc.
- Gestom de erros em tempo de execuçom.
- Uso de estruturas avançadas de dados coma listas, árvores, etc.
- Contruçom da Interface Gráfica de Usuário (GUI nas suas síglas em Inglês)
O número destas classes e paquetes é imenso, estando organizados por temáticas em diferentes paquetes e subpaquetes.
A documentaçom oficial etá disponível tanto online coma offline, e é um recurso moi importante, fundamental, para programar em Java.
A documentaçom para a API do JDK que istalamos no anterior artigo atopamo-la aqui:
https://docs.oracle.com/javase/8/docs/api/
Aqui podemos consultar a documentaçom para outras verssons:
https://www.oracle.com/technetwork/java/api-141528.html
E para ter a documentaçom offline podemos descarrega-la de aqui:
https://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-2133158.html
E como fazemos uso destas classes e os seus métodos?
Temos que importar a classe, menos as do paquete java.lang, que se importam automaticamente. Por exemplo: java.lang.Math ou java.lang.System
Depois temos que invocar o método da classe se é estático, como por exemplo o Math.sqrt ou se nom é estático, teremos que criar um novo objeto para chamar a classe.
Imos fazer um programinha que nos pida um texto e logo o imprima:
class Texto {
public static void main(String[] args) {
//declara umha variável String
String texto;
//imprime por pantalha
System.out.println("Escreve um texto:");
/*Crea um novo objeto da classe Scanner do
paquete java.utils chamado ent*/
java.util.Scanner ent = new java.util.Scanner(System.in);
//Armazena no String texto o texto que se introduza
texto = ent.nextLine();
//imprime o texto armazenado
System.out.println("Este é o texto que introduziches: "+ texto);
}
}
Como podemos observar, para fazer uso da classe Scanner temos que escrever de cada vez que a queremos utilizar o caminho completo do paquete que a contem. Para evitar isto, podemos fazer uso da declaraçom import.
A declaraçom import facilita a localizaçom de dita classe por parte do compilador e evita que tenhamos que indicar o nome do paquete de cada vez que a usemos.
As declaraçons import sempre vam ao começo do arquivo. Vejamos o exemplo de antes modificado com a declaraçom import:
//declaraçom import
import java.util.Scanner;
class Texto {
public static void main(String[] args) {
//declara umha variável String
String texto;
//imprime por pantalha
System.out.println("Escreve um texto:");
/*Crea um novo objeto da classe Scanner do paquete java.utils chamado ent*/
Scanner ent = new Scanner(System.in);
//Armazena no String texto o texto que se introduza
texto = ent.nextLine();
//imprime o texto armazenado
System.out.println("Este é o texto que introduziches: "+ texto);
}
}
A seguir podemos ver outro exemplo, que mostra a hora actual por meio de umha interface gráfica, onde se utilizam métodos estáticos das classes que se importam:
import javax.swing.JOptionPane; // Importamos a classe JOptionPane do paquete javax.swing
import java.time.LocalTime; // Importamos a classe LocalTime do paquete java.time
class DemoAPI {
public static void main(String[] args) {
/*
Chamada ao método estático showMessageDialog() da classe JOptionPane para que mostre a hora atual, obtida por meio do método estático now() da classe LocalTime
*/
JOptionPane.showMessageDialog(null, "A hora atual é: " + LocalTime.now());
}
}