JAVA – Introdução a sua API

A API do Java é composta por dois tipos de recursos distintos: classes e interfaces. Ela é como um bloco dividido em duas grandes partes, são centenas de Interfaces e milhares de classes que acompanham o kit de desenvolvimento do Java e que podem ser empregadas para a realização de diversos tipos de tarefas durante

A API do Java é composta por dois tipos de recursos distintos: classes e interfaces. Ela é como um bloco dividido em duas grandes partes, são centenas de Interfaces e milhares de classes que acompanham o kit de desenvolvimento do Java e que podem ser empregadas para a realização de diversos tipos de tarefas durante a construção de um programa.

Na API do Java, não existem métodos ou quaisquer tipos de dados desgarrados. O seu caráter fortemente orientado a objetos obriga a declaração de todos os métodos dentro de uma classe ou de uma interface. Do mesmo modo, não é possível declarar uma variável ou constante fora do escopo de uma classe ou de uma interface. A representação de dados deve ser feita, necessariamente, através de atributos que pertencem a uma classe ou interface específica.

As classes formam uma hierarquia dentro da API do Java, e a classe java.lang.Object é a raiz dessa hierarquia. Direta ou indiretamente, toda classe tem Object como a sua superclasse, assim, todos os métodos por ela implementados são herdados por todas as demais classes.

Organização

As classes e interfaces que compõem a API do Java estão divididas em pacotes, e cada pacote agrupa um conjunto de classes e interfaces que possuem propósitos comuns. Lembre-se de que um pacote também pode conter outros pacotes, de modo que eles acabam formando uma estrutura complexa de compartimentos.

A estrutura dos pacotes que abriga as classes e interfaces de Java reflete apenas a estrutura de diretórios onde os seus arquivos compilados estão dispostos. Mas, na verdade, as classes e interfaces do JDK não estão armazenadas em uma estrutura de diretórios que tenha sido criada efetivamente. Elas se encontram em um arquivo compactado chamado rt.jar, que se encontra no diretório: jrelib.

Assim como a localização de um arquivo no disco rígido compõe-se da identificação de todos os diretórios e subdiretórios e de seu nome, a localização de uma classe ou interface compõe-se da identificação do pacote raiz, de todos os sub pacotes e de seu nome. A classe String, por exemplo, está localizada no pacote lang e este pacote está contido no pacote java. Desse modo, a localização da classe String é escrita do seguinte modo: java.lang.String.

O pacote java

O pacote que fora chamado de java contém os recursos fundamentais do Java. É nele que estão contidas as classes e interfaces essenciais à consecução dos seus desígnios enquanto linguagem de programação, e também recursos indispensáveis para a realização de tarefas extremamente importantes para a construção de quaisquer programas.

O pacote java divide-se em 13 pacotes, e cada um deles contém classes e interfaces distribuídas em diversos sub pacotes. Conhecer cada um dos milhares de componentes contidos nesse pacote é uma meta que exigira muito tempo e esforço, e não se justifica. O que importa não é dominar todos os recursos disponíveis nesse e nos outros pacotes, mas tão somente saber utilizar aquelas classes e interfaces que precisam ser aplicadas para construir determinado tipo de aplicação que você deseja desenvolver.

Conteúdo do pacote java:


  Descrição


  Provê as classes necessárias para criar um applet e as classes que um applet usa para se comunicar com seu contexto.


  Contém classes e interfaces utilizadas para desenhar gráficos e imagens e construir GUIs.


  Contém classes relacionadas ao desenvolvimento de componentes beans baseados na arquitetura denominada como JavaBean.


  Provê entrada e saída para o sistema através de fluxo, serialização e arquivos de sistema.


  Provê classes que são fundamentais ao desígnio de Java enquanto linguagem de programação.


  Provê classes para executar aritmética de inteiros de precisão arbitrária e aritmética decimal de precisão.


  Provê classes para implementação de aplicações de redes.


  Define “buffers”, que são recipientes para dados e proveem uma prévia dos outros pacotes NIO.


  Provê classes e interfaces para implementar aplicativos que utilizem invocação remota de métodos (RMI – Remot Method Invocation.)


  Provê classes e interfaces para implementar procedimentos de segurança de informações.


  Provê classes e interfaces para acessar a processar dados armazenados em uma fonte de dados, normalmente um banco de dados relacional.


  Provê classes e interfaces para controlar texto, datas, números e mensagens de modo independente de idiomas naturais.


  Contém a estrutura de coleções, modelo de eventos, facilidades com data e hora, internacionalização e classes de utilidades diversas.

** **

O pacote javax

O pacote javax contém várias classes e interfaces que complementam aquelas dispostas no pacote java e outras que oferecem recursos totalmente novos. Em conjunto, esses dois pacotes são os recipientes onde se encontra a base de recursos da API do Java a ser utilizada para o desenvolvimento de uma enorme diversidade de programas.

Parte do conteúdo do pacote javax:

** **


  Descrição


  Define um contrato entre componentes de interface do usuário e uma tecnologia que provê acesso a esses componentes.


  Pacote principal de entrada e saída de imagem.


  Contém classes e interfaces para nomear acesso a serviços.


  Contém as classes e interfaces principais para o serviço de impressão do Java.


  Contém classes e interfaces adicionais para a implementação de invocação remota de métodos.


  Provê uma estrutura para autenticação e autorização através de certificados e chaves públicas.


  Provê classes e interfaces para capturar, processamento e reprodução de áudio.


  Provê acesso a fonte de dados do lado do servidor.


  Provê um conjunto de componentes “leves” para a construção de GUIs que funcionam do mesmo modo em todas as plataformas.


  Contém classes de exceção lançadas pelo Object Request Broker (ORB).


  Provê classes que permitem o processamento de documentos XML.

É claro que novos pacotes tendem a ser adicionados ao pacote javax no futuro, assim como podem ser adicionados ao pacote java ou os outros pacotes que definem a organização da API do Java. O próprio pacote javax não existia na primeira versão do Java, tendo sido desenvolvido e agregado posteriormente.

Nestes momentos, é preciso apenas ter em mente que a API do Java compõe-se de classes e interfaces organizadas em uma estrutura de pacotes. A descrição superficial dessas estruturas é suficiente, por enquanto, tendo em vista que recursos específicos serão analisados com maior riqueza de detalhes em momento oportuno.

Recursos Essenciais

Os recursos essenciais aos desígnios do Java estão contidos no pacote java.lang. É aí que se encontram os recursos necessários para a implementação de diversas das operações fundamentais que são realizadas para a construção de grandes diversidade de aplicações.

Operações com Textos: A classe String

Texto é qualquer expressão composta por um conjunto de caracteres, incluindo as letras do alfabeto, os números, sinais de pontuação e todos os demais caracteres reconhecidos pelo padrão Unicode. Qualquer sequência de caracteres é, pois, um texto.

São diversos os tipos de operações que precisam ser realizadas com textos durante a execução de programas. A captação, comparação, validação, manipulação e exibição de textos são exemplos de operações que precisam ser realizadas com uma frequência enorme. Isso faz com que a representação de textos seja fundamental para a construção dos mais diversos tipos de programas.

Principais construtores da classe String:


  Descrição


  Cria uma string vazia.


  Cria uma string a partir de um vetor de caracteres representado pelo parâmetro chamado value.


  Cria uma string a partir de um vetor de bytes  representado pelo parâmetro chamado byte.


  Cria uma string contendo a mesma sequência de caracteres de parâmetro chamado original.

Alguns métodos da classe String:


  Descrição


  Retorna o caractere contido na posição especificada pelo parâmetro index.


  Compara o texto de duas strings e retorna um número inteiro que define a ordem destes textos. (zero significa que são iguais).


  Realiza a mesma tarefa que a anterior, porém ignorando a diferença entre caracteres maiúsculos e minúsculos.


  Testa se a string corrente termina com o sufixo especificado.


  Retorna a posição inicial, na string corrente, da substring especificada pelo parâmetro str. Se a substring não for encontrada, o retorno é -1.


  Retorna a posição inicial, na string corrente, da última ocorrência da substring especificada pelo parâmetro str. Se a substring não for encontrada, o retorno é   -1.


  Retorna o número de caracteres contidos na string corrente.


  Retorna uma string resultante da substituição, na string corrente, de cada ocorrência da substring especificada no parâmetro org pela substring especificada no parâmetro replacement.


  Testa se a string corrente começa com o prefixo especificado pelo parâmetro prefix.


  Retorna uma nova string com a sequência de caracteres que se encontra entre as posições especificadas pelos parâmetros begin e end.


  Retorna uma nova string contendo todos os caracteres da string atual convertidos para minúsculo.


  Retorna uma nova string contendo todos os caracteres da string atual convertidos para maiúsculo.

Operações Matemáticas

Assim como a manipulação de textos é uma operação comum em quaisquer tipos de programas, a realização de operações matemáticas é muito frequente na grande maioria deles. Isso justifica a dedicação do tempo necessário para o estudo dos recursos disponíveis para suportar esse tipo de operação.

As operações matemáticas básicas são suportadas pela própria linguagem Java e podem ser realizadas com o uso de operadores. Soma, subtração, multiplicação e divisão são exemplos de operações matemáticas suportadas pela linguagem através de operadores.

No entanto, existem diversas operações matemáticas que não encontram suporte na linguagem. Potência, raiz quadrada, logaritmo, operações trigonométricas e até operações de arredondamento são exemplos de operações que não podem ser realizadas exclusivamente com os recursos da linguagem, para realizá-las, é preciso recorrer aos métodos da classe java.lang.Math.

Alguns métodos da classe Math:


  Descrição


  Retorna o próximo valor double que seja um número matemático inteiro.


  Retorna o valor double anterior que seja um número matemático inteiro.


  Arredonda o número informado e retorna-o na forma de um double.


  Arredonda o número informado e retorna-0 na forma de um long.


  Eleva um número à determinada potência.


  Calcula a raiz quadrada de um número.


  Retorna um número aleatório entre 0 e 1.

Perceba que todos os métodos listados são estáticos, por conterem o qualificador static em suas assinaturas. Isso significa que não é preciso instanciar um objeto da classe Math para fazer uso desses métodos, basta invocá-los a partir da própria classe, do mesmo modo como se faz com seus atributos.

Valores Aleatórios

Objetos da classe java.util.Random podem ser utilizados para gerar um fluxo de dados aleatório. Enquanto o método random() da classe Math somente é capaz de gerar números aleatórios entre zero e um, um objeto da classe Random pode ser usado para gerar diferentes tipos de dados aleatórios e em diferentes intervalos.

Alguns métodos da classe java.util.Random.


  Descrição


  Retorna um valor booleano aleatório.


  Retorna um valor aleatório entre 0,0 e 0,9 como um tipo double.


  Retorna um valor aleatório entre 0,0 e 0,9 como um tipo float.


  Retorna um número inteiro aleatório.


  Retorna um número inteiro aleatório entre 0 e o valor especificado através do parâmetro n.


  Retorna um número inteiro longo aleatório.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *