Wednesday, June 06, 2007

Tutorial de Variáveis[REPOST]

O estado das variáveis: tipos, acessibilidade e passagens de parâmetro.

Por D. Ironlynx(2004)

1-Introdução:

 

Nesse artigo, o leitor terá uma breve noção de como se comportam as variáveis no Java, quais são os seus tipos associados, como são acessadas, armazenas em memória e como são passadas para métodos.Esse tutorial está longe de esgotar esses assuntos, mas será uma boa visão aos iniciantes na linguagem Java.

A compreensão de como uma passagem de parâmetro é efetuada, ou como uma variável é acessada e modificada, é fundamental ao aprendizado de qualquer linguagem de programação. Como nunca custa nada lembrar, aí vão alguns conceitos básicos envolvidos que o programador deve saber:


-Classe: É o modelo ou a forma a partir da qual um objeto é criado.Nela existe a definição das variáveis e seus atributos e como as coisas irão funcionar no seu escopo (dentro dessa classe).Toma-se como padrão a primeira letra do nome da classe em maiúscula (como
String, Math, System, entre outras).
-Objeto: É uma instância da classe, componente na memória com seus atributos e dados próprios, que utilizam seus métodos para manipular os seus dados internos e que se comunicam entre si através de mensagens (chamadas) a esses objetos.
-Instância: é a ocorrência em memória (heap) de uma determinada classe, cujos dados são definidos pela classe a qual essa instância faz parte. Só existe após o objeto ser criado.
Percebeu a diferença entre objeto e instância?Exemplo prático (repare os comentários):


public class Classe{

private static String variavel_de_classe ="Sou local a Classe";

private String i = "Sou uma variável de instância";

public static void main(String []guj){

Classe c; /*declara um objeto(referência) c do tipo Classe, na sua stack(pilha).*/

c=new Classe(); /*instância,é a ocorrência de c na heap, criada a partir do new(). Agora , a variável c é visível em memória----representa a classe Classe */

System.out.println(variavel_de_classe);

} //fim do main

} //fim da classe Classe

Por hora, tudo que precisamos saber é que a stack armazena variáveis com escopo de método (que serão executadas dentro de métodos) e que a heap armazena nossos objetos. Na verdade, fazem muito mais do que isso. Não se preocupe, pois exploraremos bem o assunto mais adiante.


:::Variáveis e acessibilidade:::

1.1-As variáveis no Java.

Antes de seguir em frente, devemos levar em conta que a linguagem Java é fortemente tipada, isto é, toda e qualquer variável ou expressão tem um tipo associado conhecido em tempo de compilação. O nome de uma variável deve começar com uma letra e pode possuir os seguintes caracteres:'A'-'Z','a'-'z'.'0'-'9','_' ou qualquer caracter unicode que represente uma letra, lembrando que todo nome de variável é sensível a alteração de caixa(case sensitive).

Os tipos em Java são divididos em 2 categorias :


1ª) Em tipos primitivos (short, int, boolean, char, byte, long, float e double).
Esses tipos primitivos podem ser booleanos (boolean) ou numéricos (os demais).
Os numéricos por sua vez podem ser Integrais(byte, short, int, long e char) ou Pontos Flutuantes(float e double).
-limites e valores que cada tipo armazena:
para byte, de -128 até 127, (inclusive)-armazena 8bits.

para short, de -32768 até 32767, (inclusive)-armazena 16bits.
para int, de -2147483648 até 2147483647, (inclusive)-armazena 32bits.
para long, de -9223372036854775808 até 9223372036854775807,(inclusive)-armazena 64bits.
para char, de '\u0000' até '\uffff'(inclusive), que é, de 0 até 65535 do Unicode.
-tipos booleanos podem assumir apenas um dos 2 valores: true ou false. Armazenam 8 bits.

para float, de -3.4E38 a 3.4E38-32 bits.
para double, de -1.7E308 a 1.7E308-64 bits.

2ª)Em tipos referência (que são Classes, Objetos e Interfaces). Veremos mais detalhes sobre esse tipo no próximo tópico.

Obs: Há um terceiro tipo(Null Type) que não iremos nos ocupar pois ele não pode ser declarado, por não possuir um nome; nem permitir coerção(conversão de tipo-casting) para esse tipo. Uma referência nula é apenas um possível valor para uma expressão de tipo null.Essa referência pode sempre ser convertida para qualquer tipo referência.Na prática, a única coisa que o programador precisa saber é que null é um literal que pode ser de qualquer tipo referência.

->Unicode é um padrão (regulamentado pela norma ISO-10646) que permite definir caracteres cuja representação interna no computador utiliza mais de um byte (ou octeto na nomenclatura ISO) e permite representá-los de forma única não importando o idioma, programa ou plataforma.



2 comments:

Alexandre Ferreira said...

O nome de uma variável deve começar com uma letra e pode possuir os seguintes caracteres:'A'-'Z','a'-'z'.'0'-'9','_' ou qualquer caracter unicode que represente uma letra, lembrando que todo nome de variável é sensível a alteração de caixa(case sensitive).

Cifrão também $

Em tipos primitivos (short, int, boolean, char, byte, long, float e double).
So um detalhe que os livros nao falam. void, é um tipo primitivo.
Nao confuda com Void, a classe wrapper pra esse tipo!

Asasia said...

You write very well.