Lincolm.

Note que n é uma referência para um Object[][]. Esta é referência é passada
por valor, mas você obtem o objeto dela. A refência não pode ser altera, mas
o objeto sim.

O que você fez foi alterar o objeto. Mais especificamente a posição [0][1].


Não há problemas nisso. Mas se você desejasse alterar a referência, fazendo
seu parâmetro n apontar para outra matriz, seria impossível. OK?

Basta testar este código:

void method (String s[])
{
        s[0] = "Novo";

        s = {"Mais novo ainda!"};
}

abraços

Jorge

-----Original Message-----
From: Lincolm Ferreira de Aguiar [mailto:[EMAIL PROTECTED]]
Sent: segunda-feira, 4 de fevereiro de 2002 15:04
To: [EMAIL PROTECTED]
Subject: Re: RES: [java-list] Como é feita a passagem de parâmetros em
Java?


Olá Jorge. Você rodou aquele código? Pergunto porque eu queria saber porque
a segunda posição da matriz imprime Aguiar onde deveria
imprimir Ferreira. Execute o código e vai entender o que estou falando. No
método objects() é sim criado uma nova matriz, mas note
que não estou imprimindo ela, estou imprimindo a matriz names. Por que a
matriz names tem seu índice  names[0][1] tem seu valor
alterado para Aguiar se na verdade eu alterei n[0][1]?

Um abraço,

Lincolm Ferreira de Aguiar
WebMaster - QueroProgramar
[EMAIL PROTECTED]

www.geocities.com/lincolmf

----- Original Message -----
From: "Jorge Martins" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, February 04, 2002 2:02 PM
Subject: RE: RES: [java-list] Como é feita a passagem de parâmetros em Java?


Quer ter seu próprio endereço na Internet?
Garanta já o seu e ainda ganhe cinco e-mails personalizados.
DomíniosBOL - http://dominios.bol.com.br





Lincolm,

Não há incoerência no seu exemplo. A passagem de parâmetros em java continua
sendo por valor.

Quando você passa um array em java. A referência para este array é passada
por valor. Logo, você pode alterar o array (como você alterou no seu
exemplo) por que oum array permite esta operação.

No entanto, não é possui criar trocar o array passado.

Se os parâmetro do java fossem por valor, este método funcionaria:

void method (String [] array)
{
array = {"Eu", "sou", "um", "novo", "array"};
}

O que você fez foi simplesmente alterar um valor do array, e isto é
permitido. Não é permitido você alterar O ARRAY EM SI.

abraços

Jorge



-----Original Message-----
From: Lincolm Ferreira de Aguiar [mailto:[EMAIL PROTECTED]]
Sent: terça-feira, 29 de janeiro de 2002 08:40
To: [EMAIL PROTECTED]
Subject: Re: RES: [java-list] Como é feita a passagem de parâmetros em
Java?


Olá Fábio,

Tudo bem. Olha, ainda não ficou muito claro para mim o que você disse sobre
a passagem de parâmetros em Java. Fiz um exemplo com uma
matriz, e a matriz mesmo foi alterada. Quem disse isso foi um usuário aqui
da lista, que no momento não lembro o nome dele. Como
pode ser? Veja o código:

public class Passagem extends Object {

   Object names[][] = new Object[1][2];

   public Passagem(){

      names[0][0] = "Lincolm";
      names[0][1] = "Ferreira";
      objects(names);

      for(int x=0; x<=names.length - 1; x++){
         for(int y=0; y<=names[x].length - 1; y++){
            System.out.println(names[x][y]);
         }
      }

   }

   public static void main(String args[]){

      Passagem ps = new Passagem();

   }

   public void objects(Object[][] n){

      n[0][1] = "Aguiar";

   }

}

Se comentar a chamada de objects(names) o resultado será:
Lincolm
Ferreira

No entanto, se remover os comentários a saída será:
Lincolm
Aguiar

Sinceramente, poderia me explicar.

Lincolm Ferreira de Aguiar
WebMaster - QueroProgramar
[EMAIL PROTECTED]

www.geocities.com/lincolmf

----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, January 28, 2002 8:03 PM
Subject: RE: RES: [java-list] Como é feita a passagem de parâmetros em Java?


> Quer ter seu próprio endereço na Internet?
> Garanta já o seu e ainda ganhe cinco e-mails personalizados.
> DomíniosBOL - http://dominios.bol.com.br
>
>
>
>
>
> Amigos,
>
> Como esse assunto está sendo bastante discutido, vou me meter no meio
> também e tentar esclarecer...
> O Java trata a passagem de parâmetros de forma diferente para tipos
> primitivos e objetos, mas sempre é passada por valor.
> Funciona mais ou menos assim (vou usar o exemplo do curso de Java da
> Sun, que fiz a semana passada):
>
> Se você passa um tipo primitivo para um método assim:
> ...
> int i = 10;
> this.alteraValor(i)
> System.out.print(i) // Imprime o valor 10
> ...
>
> alteraValor(int j){
> j = 15;
> }
> O que acontece? O Java entrega uma cópia do conteúdo de i para o método.
> Só que o conteúdo de i é igual a 10.
> Já se fizermos a mesma coisa com um objeto, vejam só:
>
> ...
> MyDate data = new MyDate("28/01/2002");
> this.alteraValor(data);
> System.out.print(data); // Imprime o valor "28/01/2002";
> this.alteraValor2(data);
> System.out.print(data); // Imprime o valor "28/02/2002";
> ...
>
> alteraValor(MyDate t){
> t = new MyDate("31/07/2002");
> }
>
> alteraValor2(MyDate t){
> t.setMes("02");
> }
>
> Porquê no primeiro método o valor não se alterou, mas no segundo sim?
> Funciona da mesma maneira que a passagem de um tipo primitivo. O
> conteúdo da variável data não é o objeto MyDate, e sim o endereço da
> memória onde está o objeto MyDate. E, da mesma maneira como acontece com
> o tipo primitivo, esse valor (endereço do objeto) não pode ser alterado
> (tentamos alterar essa referência com o comando new MyDate).
> Já o conteúdo do objeto pode ser alterado tranqüilamente, pois ele fica
> em outra parte da memória.
>
> Quaisquer dúvidas, perguntem....
>
> []
>
> Fábio Jorge Corrêa
> Citibank e-Business Solutions
> Phone: 55 11 3457.0675
> Fax: 55 11 3457.0652
> [EMAIL PROTECTED]
>
>
>    -----Original Message-----
>    From: sven [mailto:[EMAIL PROTECTED]]
>    Sent: sexta-feira, 28 de dezembro de 2001 12:51
>    To: java-list
>    Cc: sven
>    Subject: Re: RES: [java-list] Como é feita a passasgem de parâmetros
>    em Java?
>
>
>
>    Um bom engano...
>
>    Em Java, parametros são passados por referencia, mas dentro da função
>    uma copia é usado.
>
>    ANDRE MOURA BARRETO wrote:
>
>
>        Vc está equivocado.
>        Java não possue passagem de Parâmetro por referência.
>        Somente por valor, ou seja, uma cópia é passada.
>
>       -----Mensagem original-----
>       De: Adalberto Zanata [Forum] [ mailto:[EMAIL PROTECTED]]
>       Enviada em: Thursday, January 24, 2002 8:16 PM
>       Para:  [EMAIL PROTECTED]
>       Assunto: Re: [java-list] Como é feita a passasgem de parâmetros em
>       Java?
>
>
>
>       Adalberto Zanata
>       [ [EMAIL PROTECTED]]
>       [ http://www.espacoreverso.com.br/a.zanata]
>
>       ----- Original Message -----
>       From: "Paulo Henrique Castro"  <[EMAIL PROTECTED]>
>       To:  <[EMAIL PROTECTED]>
>       Sent: Thursday, January 24, 2002 11:26 AM
>       Subject: Re: [java-list] Como é feita a passasgem de parâmetros em
>       Java?
>
>
>
>
>          Existe uma maneira de diferenciar as passagens de parâmetros em
>          Java, por
>          valor e por referência?
>
>
>
>                Ateh onde sei a passagem de parametros em Java eh somente
>       por
>       referencia!!
>
>                []s
>
>                PH
>
>
>       --
>       "Live fast, die old, and make very sure everyone knows you were
>       there." -
>       Alan Cox
>
>
>       ------------------------------ LISTA SOUJAVA
>       ----------------------------
>       http://www.soujava.org.br  -  Sociedade de Usuários Java da
>       Sucesu-SP
>       dúvidas mais comuns:  http://www.soujava.org.br/faq.htm
>       regras da lista:  http://www.soujava.org.br/regras.htm
>       para sair da lista: envie email para
>       [EMAIL PROTECTED]
>       -----------------------------------------
>       --------------------------------
>
>
>
>
>       ------------------------------ LISTA SOUJAVA
>       ----------------------------
>       http://www.soujava.org.br  -  Sociedade de Usuários Java da
>       Sucesu-SP
>       dúvidas mais comuns:  http://www.soujava.org.br/faq.htm
>       regras da lista:  http://www.soujava.org.br/regras.htm
>       para sair da lista: envie email para
>       [EMAIL PROTECTED]
>       ------------------------------------------------------------------
>       -------
>
>       ------------------------------ LISTA SOUJAVA
>       ----------------------------
>       http://www.soujava.org.br  -   Sociedade de Usuários Java da
>       Sucesu-SP
>       dúvidas mais comuns:  http://www.soujava.org.br/faq.htm
>       regras da lista:  http://www.soujava.org.br/regras.htm
>       para sair da lista: envie email para
>       [EMAIL PROTECTED]
>       ------------------------------------------------------------------
>       -------
>
>
>
>    --  "'You guys (at Microsoft) still don't get it,'  because it's sort
>    of Java with reliability, productivity and security deleted."
>    James Gosling
>
>
>
>
>
>


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------




------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a