Declarando Variáveis de Referência

Variáveis de referência podem ser declaradas como variáveis static, variáveis de instâncias, parâmetros de métodos ou variáveis locais. Voçê pode declarar uma ou mais variáveis de referência, do mesmo tipo, em uma mesma linha.

Alguns exemplos de declaração de variáveis de referência:


Object o;

Alison minhaVariavelDeReferencia;

String s1, s2, s3;	// declara 3 variáveis do tipo String
Anúncios
Categorias:Java, SCJP

Intervalos de Primitivos Numéricos


Tipo Bits Bytes Intervalo Mínimo Intervalo Máximo
byte 8 1 -2 na 7 -2 na 7 – 1
short 16 2 -2 na 15 -2 na 15 – 1
int 32 4 -2 na 31 -2 na 31 – 1
long 64 8 -2 na 63 -2 na 63 – 1
float 32 4 n/d n/d
double 64 8 n/d n/d

Para tipos booleanos não há um intervalo, um booleano só pode ser true ou false.

O tipo char (um caracter), contém um só caracter Unicode de 16 bits. Embora o conjunto ASCII estendido conhecido como ISO Latin – 1 precise de apenas 8 bits (256 caracteres diferentes), é necessário um intervalo maior para representar caracteres encontrados em língueas diferentes do íngles.

Embora tanto chars quanto shorts sejam tipos de 16 bits, lembre-se de que um short usa um bit para representar o sinal, de modo que menos números positivos são aceitáveis emum short.

Tipos de variáveis

Existem dois tipos de variáveis em Java:

  • Primitivos Um primitivo pode ser de oito tipos diferentes: char, boolean, byte, short, int, long, double ou float.
  • Variáveis de referência As variáveis de referência são usadas parase referir um objeto. Uma variável de referência é declarada como sendo de um tipo específico, e esse tipo não pode ser nunca modificado. Uma variável de referência pode ser usada para refirir-se a qualquer objeto do tipo declarado, ou um subtipo do tipo declarado (um tipo compátivel).
Categorias:Java, SCJP Tags:, ,

Declaração de Construtores

Em Java, os objetos são construídos. Sempre que voçê cria um novo objeto, pelo menos um construtor é invocado. Toda classe tem um construtor, e, se voçê não criar um explicitamente, o compilador vai criar um para voçê.


class Upf{

    protected Upf( ){ }      //esse é o construtor de Upf.

    Protected void Upf( ){ } //esse é um método com um péssimo
                             //nome mas válido.

}

A principal diferença entre um construtor e um método é que construtores nunca, jamais terá um retorno. As declarações de construtores podem ter, no entanto, todos os modificadores de acesso normais, e podem usar var-arg, da mesma forma como os métodos. A outra regra importante a se entender sobre os construtores é que eles devem ter o mesmo nome que a classe no qual são declarados. Os construtores não podem ser marcados como static.

Algumas declarações de construtores válidos e inválidos:


class PassoFundo {

    //construtores válidos

    PassoFundo(  ) { }

    private PassoFundo( byte b ) { }

    PassoFundo( int x ) { }

    PassoFundo( int x, int... y ) { }

    //Inválidos

    void PassoFundo(  ) { }	//é um método

    PassoFundo2(  ) { }		//não é método nem construtor

    static PassoFundo(  ) { }	//não pode ser static

    final PassoFundo(  ) { }	//não pode ser final

    abstract PassoFundo(  ) { }	//não pode ser abstract
}
Categorias:Java, SCJP Tags:, ,

Métodos com lista de argumentos variáveis (var-args)

Desde a versão 5.0, Java lhe permite criar métodos capazes de usar um número de variável de argumentos.

Dependendo de onde voçê pesquisar, poderá ver essa capacidade de ser chamada de “lista de argumentos de extensão variável”, “argumentos variáveis”, “var-args”, “varargs” ou o nosso favorito (saído do departamento de obscuridade), “parâmetro com número variável de argumentos”. Todos eles são a mesma coisa, e usaremos o termo “var-args” daqui em diante.

Algumas regras de declaração para var-args:

  • Tipo var-args Quando declara um parâmetro var-arg, voçê deve especificar o tipo do(s) argumento(s) que esse parâmetro do seu método pode receber.
  • Sintaxe básica Para declararum método usandoum parâmetro var-args, voçê escreve depois do tipo um sinal de reticências (…), um espaço, e depois o nome do array que irá armazenar os parâmetros recebidos.
  • Outros parâmetros è válido ter outros parâmetros em um método que use var-arg.
  • Limites dos var-args O var-arg deve ser o último parâmetro na assinatura do método, e voçê pode ter um var-args por método.

Algumas declarações de var-args válidas e inválidas.

Válidas:


void testeScjp( int... x ){ }		//espera de 0 a muitos ints 
                                        //como parâmetro.

void testeScjp( char c, int... x ){ }	//espera um char e depois de
                                        //0 a muitos ints.

void testeScjp( Upf... upf ){ }	        //espera de 0 a muitos Upfs.

Inválidos:


void testeScjp( int x... ){ }	         //sintaxe incorreta.

void testeScjp( int... x, char... c ){ } //mais de um var-arg

void testeScjp( String... s, byte b ){ } //var-arg tem de vir por
                                         //último
Categorias:Java, SCJP Tags:, ,

Métodos Strictfp

Strictfp força os pontos flutuantes (e quaisquer operações com ponto flutuante) a aderirem ao padrão IEEE 754. Com strictfp, é possível prever como os seus pontos flutuantes se comportarão, independentemente da plataforma subjacente na qual a JVM está rodando. O inconveniente disso é que, se a plataforma subjacente for capaz de suportar uma maior precisão, um método strictfp não poderá se beneficiar dessa capacidade.

Para o exame voçê não precisa saber nada sobre strictfp além de sua utilidade, do fato de que podem modificar uma declacação de classe ou método, e que uma variável nunca pode ser declarada como strictfp.

Categorias:Java, SCJP Tags:, ,

Métodos Nativos

O modificador native indica que o método está sendo implementado conforme a plataforma.

Para a certificação basta voçê saber que native é um modificador (e portanto, uma palavra-chave reservada) e que native só pode ser aplicado a métodos – não Classes, nem a variáveis, apenas a métodos. Repare que o corpo de um método nativo deve ser ponto-e-vírgula ( ; ) (como métodos abstract), indicando que a implementação foi omitida.

Categorias:Java, SCJP Tags:, ,