Posts de Março 21st, 2007

JAVA – Conceitos básicos – Segunda parte

Março 21, 2007

Tipos de Dados.

A linguagem Java oferece diversos tipos tipos de dados com os quais podemos trabalhar.
Na verdade há basicamente duas categorias em que se encaixam os tipos de dados: tipos primitivos e tipos de referências. Os tipos primitivos correspondem a dados mais simples ou escalares e serão abordados em detalhe no que segue, enquanto os tipos de referências consistem em arrays, classes e interfaces.

Tipos primitivos.

Em Java, são oferecidos tipos literais primitivos (não objetos) para representar valores booleanos (verdadeiro ou falso), caracteres, valores numéricos inteiros e valores numéricos em ponto flutuante.

Tipo Boolean

Este é o tipo de dado mais simples encontrado em Java. Uma variável booleana pode assumir apenas um entre dois valores: true ou false.

Tipos de dados inteiros

Os tipos de dados primitivos byte, int, char, short e long constituem tipos de dados inteiros. Isso porque variáveis desses tipos podem conter um valor numérico inteiro dentro da faixa estabelecida para cada tipo individual. Por exemplo, um byte pode conter um inteiro entre -128 e 127, enquanto um short pode conter um valor entre -32.768 e 32.767. Já o tipo long é de um tamanho muito extenso.

Há diversas razões para se utilizar um ou outro dos tipos inteiros em uma aplicação. Em geral, não é sensato declarar todas as variáveis inteiras do programa como long. Raramente os programas necessitam trabalhar com dados inteiros que permitam fazer uso da máxima capacidade de armazenagem de um long. Além disso, variáveis grandes consomem mais memória do que variáveis menores, como short.

Tipo caracter

Uma variável do tipo char armazena um caractere Unicode. Um caractere Unicode é um caractere de 8 bits, sendo que de 0 a 225 correspondem aos caracteres do código ASCII (a tabela ASCII é uma tabela padronizada internacionalmente de associações entre caractere e a sua representação numérica no computador).

Tipos de ponto flutuante

Em Java, existem duas categorias de de variáveis de ponto flutuante:

Float: armazena valores numéricos em ponto flutuante de precisão simples.
Double: de precisão dupla.

Ambas seguem norma: IEEE Standard for Binary Floating Point Arithmetic, ANSI/IEEE Std. 754-1985 (IEEE, New York). O fato de obedecer a essa norma é que torna os tipos de dados aceitos pela linguagem Java tão portáveis. Esses dados serão aceitos por qualquer plataforma, independendo do tipo de sistema operacional e do fabricante do computador.

A Tabela abaixo apresenta os tipos:

Tipo (int) – Tamanho em bytes (4 bytes)
Tipo (short) – Tamanho em bytes (2 bytes)
Tipo (byte) – Tamanho em bytes (1 byte)
Tipo (long) – Tamanho em bytes (8 bytes)
Tipo (float) – Tamanho em bytes (4 bytes)
Tipo (double) – Tamanho em bytes (8 bytes)
Tipo (boolean) – Tamanho em bytes (1 bit)
Tipo (char) – Tamanho em bytes (8 bytes)

Tipo (int) – Intervalo Inclusivo (-2147483648 a 2147483648)
Tipo (short) – Intervalo Inclusivo (-32768 a 32767)
Tipo (byte) – Intervalo Inclusivo (-128 a 127)
Tipo (long) – Intervalo Inclusivo (-922372036854775808 a 922372036854775807)
Tipo (float) – Intervalo Inclusivo (depende da precisão)
Tipo (double) – Intervalo Inclusivo (depende da precisão)
Tipo (boolean) – Intervalo Inclusivo (true, false)
Tipo (char) – Intervalo Inclusivo (Todos os caracteres unicode)

Tipos Referência.

Classes, interfaces e arrays são conhecidos como tipos referência em Java. Quando você declara uma variável de um tipo referência, você está especificando que a variável irá referenciar, ou apontar, para um objeto em vez de guardar um valor simples como no caso de um primitivo.

Isto faz sentido para classes porque instâncias de classes são objetos que possuem comportamento e estado associados que podem ser representados com muitos valores em vez de apenas um. Contudo, pode parecer estranho para você ver os arrays nesta mesma categoria. Veremos os detalhes mais para frente, mas arrays em Java são na verdade objetos cujos elementos podem ser ou primitivos ou referências para outros objetos.

Para utilizar uma classe de referência, é necessário instanciar um objeto da classe correspondente ao tipo. Por exemplo, para instanciar o nome de uma pessoa como String basta utilizar o operador new.

String nome = new String();

Desta forma, não se pode simplesmente referenciar um objeto, como é feito com uma variável.

String nome;
System.out.println(nome);

A saida da rotina acima será “Null”

Null será impresso, pois o objeto nome não foi instanciado e apenas referenciado. Além disso todos os objetos instanciados em Java são inicializados com null. Isso deve ser dito pois quando se instancia um objeto String o desenvolvedor tem a tendência de entender que será atribuído um espaço em branco (“”) ao conteúdo.