Re: RES: [java-list] Pergunta for Dummies

2003-05-31 Por tôpico Paulo \gangrel-br\ RC Siqueira
Caro Leonardo

  Você está parcialmente certo. Quando um método
recebe como parâmetro um objeto, o VALOR desse
parâmetro é uma REFERÊNCIA (é esse ponto que causa a
confusão ...). Isto está bem claro no link que você
mesmo passou. Porém, seu exemplo não é válido, pois é
possível SIM alterar atributos de objetos passados
para métodos.

  O que acontece no seu exemplo é que objetos da
classe String são imutáveis. Então, você tem um
referência a um objeto String no método main, e quando
chama o método teste(str) o que acontece é que a
variável local do método recebe uma nova referência a
um objeto String, quando você executa a linha 's =
Valor 2;' (já que a String recebida não pode ser
alterada por ser IMUTÁVEL).

  No link que você passou há um exemplo com um objeto
não-imutável (quase no fim da página), que mostra a
passagem por valor de um referência funcionando como
deveria ;)

  Conclusão: Acredito que seja correto pensar que a
passagem de objetos para métodos ocorre por valor ou
por referência, dependendo apenas da interpretação de
cada um. O importante é entender que o que os métodos
recebem é uma REFERÊNCIA (ou VALOR do tipo REFERÊNCIA)
e não uma cópia do objeto original.

  Não sei se consegui ser claro, se não consegui me
fale que eu tento explicar melhor ;)


 --- Leonardo Hartleben Reinehr [EMAIL PROTECTED]
escreveu:  
 Olá,
 
  Ainda acredito que quando a passagem for de
 objetos será por referência 
  e não por valor...
 
 Em Java, parâmetros são sempre passados por valor,
 independente se o parâmetro é um objeto ou um tipo
 primitivo. Faça o teste a seguir que você vai
 comprovar isso:
 
 public class Teste {
 public static void main(String[] args) {
 String str = Valor 1;
 teste(str);
 System.out.println(str);
 }
 
 public static void teste(String s) {
 s = Valor 2;
 }
 }
 
 O texto que será impresso é Valor 1.
 
 Veja em

http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html,
 no item Pass by Value, que lá explica direitinho o
 que acontece na passagem de parâmetros, e porque os
 casos que você colocou funcionam. Aqui na lista
 mesmo, há algum tempo, essa dúvida apareceu e houve
 bastante debate, dê uma olhada no histórico.
 
 Um abraço,
 Leonardo
 
 -- 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]

-
  

=
_
Paulo gangrel-br R C Siqueira
Java Developer and Gamer :)
Mogi das Cruzes - SP - Brazil
Contato: (11) 9424-5474

___
Yahoo! Mail
Mais espaço, mais segurança e gratuito: caixa postal de 6MB, antivírus, proteção 
contra spam.
http://br.mail.yahoo.com/

-- 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] 
-



Re: [java-list] Java

2003-05-31 Por tôpico Paulo \gangrel-br\ RC Siqueira
Realmente, você não precisa aprender nenhuma outra
linguagem. Porém, você precisa conhecer OO (Orientação
a Objetos). Procure algum livro que ensine OO e Java
de uma vez ;) como o Java Como Programar dos irmãos
Deitel


 --- Aurelio Bardou Martins [EMAIL PROTECTED]
escreveu:  Nada de aprender outra antes. Tens que
bater de
 frente, ou seja, levantar a
 cabeca e sai pra briga.
 Cara, eu sai do COBOL (depois de mais de 15 anos
 abracado com ele) e to
 aqui...mas eh o seguintequebrando a cara...mas
 daqui ha alguns meses vou
 esta a ponto de bala. :o)
 
 O negocio meu chapa eh estudar, praticar,estudar
 mais...,praticar, estudar
 mais...,praticar,estudar mais..
 
 Ah, dei uma passadinha rapida pelo PHP, o que ajudou
 um pouco!
 De resto véio...boa sorte!!!
 
 []´s
 Aurelio
 
 
 - Original Message -
 From: Rodrigo Freire [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Friday, May 23, 2003 9:59 AM
 Subject: [java-list] Java
 
 
  Pessoal,
 gosto muito da linguagem JAVA e tenho muito
  interesse em aprende-la. No momento o meu nivel de
  conhecimento em programacao é de Pascal. Como faço
  para inniciar em JAVA? Preciso aprender alguma
  linguagem antes? Seria legal saber C e C++ antes
 de
  começar?
 
  Desde jå agradeço.
  Rodrigo Freire.
 
 

___
  Yahoo! Mail
  O melhor e-mail gratuito da internet: 6MB de
 espaço, antivírus, acesso
 POP3, filtro contra spam.
  http://br.mail.yahoo.com/
 
  -- 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] 

-
  

=
_
Paulo gangrel-br R C Siqueira
Java Developer and Gamer :)
Mogi das Cruzes - SP - Brazil
Contato: (11) 9424-5474

___
Yahoo! Mail
Mais espaço, mais segurança e gratuito: caixa postal de 6MB, antivírus, proteção 
contra spam.
http://br.mail.yahoo.com/

-- 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] 
-