segunda-feira, 7 de setembro de 2009

Keywords, Array,length, For each,varargs,arraycopy,Argumentos de linha de Comando

Keywords em java:
Source: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html


Você não pode usar nenhuma dessas palavras como identificadores no seu programa, Sâo palavras reservadas, const e goto não são usadas em java, porem não pode ser usadas como identificadores, true,false e null Parecem keywords porem são tipos literais.

abstract continue for new switch
assert*** default goto* package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum**** instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp** volatile
const* float native super while
*Não usado em java ** Adicionado 1.2 ***Adicionado 1.4 **** Adicionado 5.0


Array:




Oque á uma array?

Um grupo de valores do mesmo tipo, Isso em uma array de uma dimensão. Array também são chamadas de matrizes. Cada parte da array é chamado de elemento e você pode acessar um específico elemento pela localização do index na array. Array são iguais a objeto, é necessário Declarar, Instanciar e Inicializar. Só podem armazenar o MESMO TIPO.
Array é um conjunto de elementos do mesmo tipo onde cada elemento se encontra em um index diferente.


Como Declarar uma array?


tipo [] identificador;

ou


tipo identificador [];


*tipo -
São os tipos de dados armazenadas na array
*[] -
Informa ao compilador que você esta declarando uma array de uma dimensão
* identificador - É o nome que você se referenciará a array



Oque eu faço quando declaro uma array?


Vejamos:


int [ ] identificador; //Declaração de array Acabamos de fazer isso(Para uma array declarada dentro de um método):






Clique na imagem para ampliar, lembre-se que o index 0 da local variable ja esta lá, pois é a referência a constant pool




Como instanciar uma array de uma dimensão?

Instanciar uma array é o processo de definir o número de elementos que ela terá, você deve instnaciar antes de inicializar.

identificador = new tipo [tamanho];

* identificador -
É o nome que você se referenciará a array
*tipo - São os tipos de dados armazenadas na array
*tamanho - É o número de elementos que a array terá

Oque eu faço quando instancio uma array?

Você defini o número de elementos da array.


int [ ] identificador; //Declarei uma array
identificador = new int[5]; // Instanciei uma array

Vejamos:



Clique na imagem para ampliar





Inicializando uma array de uma dimensão:



identificador[indice] = valor;

* identificador - É o nome que você se referenciará a array
*indice - O Elemento onde será armazenado o valor

Veja que o primeiro indice de qualquer array é o 0 e o último indice é tamanho -1.

int array [ ]; //Declaração de array
array = new int [5]; //Instanciação de array
array[3] = 20; //Inicialização de Elemento


Vejamos(Isso é para uma array Declarada dentro de um método):


Clique na imagem para ampliar




Como Declarar e Instanciar na mesma linha?

tipo[ ] identificador = new tipo[tamanho];

ou

tipo identificador[ ] = new tipo[tamanho];


Como declarar,Instanciar e Inicializar uma array de uma dimensão na mesma linha?
Se você souber o tamanho exato de uma array, deve somente seguir essa sintaxe:


tipo[ ] identificador = {valor, valor,valor_etc };

ou

tipo identificador [ ] = {valor, valor,valor_etc };


*tipo - São os tipos de dados armazenadas na array
*[] - Informa ao compilador que você esta declarando uma array
* identificador -
É o nome que você se referenciará a array
*
valor, valor,valor_etc - Os valores que você quer armazenar na array separados por virgula

Referência e array:

Vejamos oque acontece ao se Declarar,Instanciar e Inicializar uma array de Referências:


public class Objeto{ //Declaração de Classe
public int variavelAtributo;


public static void main(String[ ] array)
{

Objeto identificador [ ]; //Declarando uma array
identificador =
new Objeto[5]; //Instanciando uma array
identificador[ 2 ] =
new Objeto( ); //inicializando o Indice 2 da array
identificador[ 0 ] =
new Objeto( );
//inicializando o Indice 0 da array

identificador[ 2 ].variavelMembro = 30; //Acessando Elemento da array
identificador[ 0 ].variavelMembro = 20; //Acessando Elemento da array

}//fim de main


}//fim da classe

Vejamos:






Clique na imagem para ampliar
, Verifique que para acessar o elemento de uma array usamos o indice do elemento


O atributo lenght

Toda array tem um atributo que determina o tamanho da array, exemplo:
Uma array de 10 posições tem um range de 0 ~ 9.
É um atributo usado pela JVM e por programadores para garantir que não haja acesso a um elemento o qual não foi instanciando exemplo:
Acessar o elemento 10 de um array de 10 posições, Muito usado com laços for each.




Array de duas dimensões:

São arrays de Arrays.



Declarando array de duas dimensões:


tipo identificador [ ] [ ]; - > ISSO não é válido em arrays de multidimensão

tipo [ ] [ ] identificador;

*tipo - São os tipos de dados armazenadas na array
*[ ] [ ]-
Informa ao compilador que você esta declarando uma array de duas dimensão
* identificador - É o nome que você se referenciará a array



Instanciando uma array de duas dimensões


identificador = new tipo [numeroArray] [tamanho];




* identificador -
É o nome que você se referenciará a array
*tipo - São os tipos de dados armazenadas na array
*
[numeroArray] - Informa o numero de arrays
*[tamanho] - Informa o tamanho de cada array




Inicializando uma array de duas dimensões:

identificador[numeroArray] [indice];

É como se fosse uma tabela, apenas especifique qual a array e qual a posição.



Exemplo array de duas dimensões:

public class Objeto{ //Declaração de Classe

public static void main(String[ ] array)
{

int identificador [ ] [ ] ; //Declarando uma array
identificador =
new int[4] [5]; //Instanciando uma array de duas dimensões

identificador[2] [2] = 20; //Acessando Elemento da array
identificador[3] [1] = 10;
//Acessando Elemento da array
identificador[1] [4] = 25;//Acessando Elemento da array

}//fim de main


}//fim da classe


Vejamos:

Basicamente temos 4 arrays cada uma com 5 posições -





Clique na imagem para ampliar



Loop Sofisticado(For each)

Basicamente diz-se, Para cada Elemento na array, armazene elemento por elemento na variavel
local.Basicamente ARMAZENA O VALOR DO INDICE.

for(tipo identificador : arrayIdentificador){

}

*tipo identificador - Declaração de variável local
* : - Indica a Jvm que você esta usando um loop For each
* arrayIdentificador - identificador da array que você quer pegar elemento por elemento nela.

Vejamos:

public class MyClass{


public static void main(String [] array){

int array[ ]; //Declaração de array
array = new int[3]; //Instanciando a array


array[0] = 10;
array[1] = 3;
array[2] = 4;

int x = 0;
for(int identificador : array){

x = x + identificador; //x vai valer 10 + 3 + 4 ou seja 17.

}
}

}




Varargs:

Basicamente aceita qualquer parametro que seja daquele tipo, seja ele uma array ou não.
O identificador do varargs de dará o poder de ter uma array.


Como declarar Varargs?

tipo ... identificador

Vejamos:

public class Test{

public void go(String
... identificador){ //identificador aqui é uma array local ao go

for(String d : identificador){

}

}

public static void main(String arra [ ] ){
Test d = new Test();

d.go(arra); //Veja que ele aceita tanto uma array
d.go("aaa");//quanto uma String

}

}




Argumentos de linha de comando:

Lembra-se que main() te da o poder de ter um processo que rode sobre linha de comando? Pois bem sendo main um método ele pode receber parametros e os armazena em uma array, vejamos:

public class MinhaClasse{

public static void main(String[] array){

if(array[0] != null)
System.out.println(array[0]);

}
}


Se você compilar isso:

javac MinhaClasse.java



E depois mandar executar:

Você pode passar parâmetros ao método main, e quando executar aparecerá a String, sendo uma array de String Lembre-se que aceita tanto numeros quanto letras.

java MinhaClasse 20



Cuidado ao usar Argumentos de main dicas:



1 - Sempre verifique o indice antes de usálo, if(array[indice] != null)
2 - Lembre-se que String pode ser tanto letras quanto números:


"2" ->
String
2 ->
Inteiro Literal
Se o tipo for uma String e você quiser em tipo Literal, use as classes associadas com cada tipo exemplo: tipo literal: double classe: Double





arraycopy:

A classe System fornece um método chamado arraycopy que copia os Elementos de uma array para outra, É um método static.


Como passar uma array como Parâmetro a um método que tem como argumento uma array?

Simplemente passe o identificador da array, vejamos:


public class MinhaClasse{

public void go(){

int [ ] array;
array = new int[5];
argumento(array);

}

public void argumento(int array2 [ ]){


}

}





É hora da revisão:

- Array são iguais a objetos , é necessário Declarar , Instanciar e Inicializar


- O valor de uma variável de referência array é sempre o endereço de memória dos objetos array


- Você deve Declarar e Instanciar uma array antes de Inicializar

- Toda array é um objeto
- Toda vez que você Instancia um objeto array, Todos os elementos tem valor Default independente do escopo da declaração - O primeiro elemento da array esta no indice 0 e o último em tamanho - 1, o tamanho é especificado na Instanciação da array

- Podemos Declarar e Instaciar uma array na mesma linha

tipo[ ] identificador = new tipo[tamanho];

ou

tipo identificador[ ] = new tipo[tamanho];

- Podemos Declarar, Instanciar e inicializar uma array na mesma linha


tipo[ ] identificador = {valor, valor,valor_etc };

ou

tipo identificador [ ] = {valor, valor,valor_etc };


- Para acessar o elemento de uma array use o indice do elemento

- O atributo length é usado para determinar os limites de uma array, e usado para evitar possíveis problemas

- Arrays de duas dimensões são iguais a Planilhas

- Toda elemento da array tem valor Default, pois mesmo que são tipos primitivos e locais a um método moram na Heap. CLARO ISSO se a array foi INSTANCIADA

-
tipo identificador [ ] [ ]; - > ISSO não é válido em arrays de multidimensão

Nenhum comentário:

Postar um comentário