Olá pessoal,
No caso de arrays, o lenght, é um atributou ou um método? Pergunto pois o mesmo é utilizado sem o parenteses, algo que o designaria como método do objeto array, correto?
Abaixo, um exemplo megasimples:
[code]
import java.util.;
import javax.swing.;
/**
*
-
@author User
*/
public class Main {
public static void main(String[] args) {
String [] nomes = {"jose","maria"};
JOptionPane.showMessageDialog(null,"" + nomes.length);
}
}[/code]
No caso de arrays o lenght é um atributo.
quando você chama algum método você sempre vai usar parenteses… com parâmetros ou não mas sempre vai usar.
Atributo, pois…
quando voce cria uma classe
//Criação do objeto
Dog cachorro = new Dog();
//Atribuindo um peso ao cachorro
cachorro.peso=20,5;
System.out.println(cachorro.peso);
a saída tem que ser 20,5. Logo… o .lenght é um atribudo, de no caso um objeto… quando voce coloca um tamanho maximo, esse tamanho vai para lenght, se voce atribui valores.
ex: String [] nomes = {“jose”,“maria”};
ele deve ter um for, e vai contando quantas informações voce inseriu, então no final ele coloca o valor no lenght.
Espero ter escarecido como funciona. (E espero não estar errado! rs rs essa hora da manhã…).
FLW
Na verdade Denis, quando você tem um array, a variável length é alterada, em tempo de execução, cada vez que você adiciona um elemento.
por exemplo
String [] nomes = {"jose","maria"};
quando o compilador ler essa linha, e vai gerar um código, que é reconhecido pela maquina virtual, que vai dizer a máquina virtual o seguinte:
- Reserva um espaço na memória para uma variável, tipo Array de Strings;
- Adiciona a constante “jose”;
- Incrementa um na variável length do array;
- Adiciona a constante “maria”; e
- Incrementa um na variável length do array. (de novo)
então o “length” é um atributo do array que é controlado pelo Java.
espero ter sido claro, se houver algum erro, por favor me corrijam =P
Abraços a todos