Array - lenght - atributo ou método?

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