Moçada,

Estava dando uma olhada na lista de vocês pra matar um
pouco da saudade do Brasil. Talvez alguns de vocês me
conheçam, eu costumava trabalhar na MS Brasil e
atualmente eu trabalho aqui em Redmond em MSDN. O
Einar com certeza se lembra de mim e ele pode até
confirmar que eu não sou tão xiita em relação a
trabalhar na Microsoft.

Entretanto, não acho que o Mauro falou algo errado na
comparação com Java. Eu admito que não sou
especialista em Java, mas acho que dá para discutir,
ou na pior das hipóteses, aprender um pouco.

Por exemplo, em C#, para declarar uma propriedade você
faz algo como

class Teste
{
  bool enabled;
  Teste() // Constructor
  {
  }

  // declaracao da propriedade
  // note que a sintaxe e' especifica 
  // para declarar uma propriedade
  bool Enabled 
  {
     get { return this.enabled; }
     set { this.enabled = value; }
  }
}

Em Java, isso depende de voce escrever dois metodos
diferentes respeitando uma convenção de nomes Get e
Set, certo? Na minha opinião isso é uma padronização
entre os ambientes de desenvolvimento que foram
modelados após o JBuilder do que algo na especificação
da linguagem propriamente dita. Nada me impede de
criar um ambiente de desenvolvimento que exija métodos
com nomes como Pegar e Setar.

A mesma coisa se aplica ao enum. Existe uma sintaxe
específica para se declarar enums em C#.

O .NET Framework, pelo jeito, de maneira similar a
Java implementa enums usando uma classe:

public abstract class Enum : IComparable,
IFormattable,
   IConvertible

Entretanto, quando você usa o .NET Framework a partir
de C#, você tem uma sintaxe apropriada para usar a
classe Enum. O compilador, por trás faz a
implementação para você:

enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

e você pode fazer coisas como:

Days d;
if(d == Days.Sun) { MessageBox.Show("Domingão do
Faustão); }

repare no d == Days.Sun. Não sei como isso funciona em
Java, mas se você tem apenas uma classe Enum, ao invés
de suporte nativo na linguagem, você precisa
explicitamente derivar da classe Enum e definir
membros para Sun, Mon, Tue, e por aí vai, ou então a 
classe Enum tem que implementar isso através de
comparações de String. 

Bom, se vocês quiserem discutir o que está de errado
no artigo, mandem as perguntas. Vou ter o maior prazer
em responder. 

Agora existem uma série de outras coisas que não
existem em Java. Tipo boxing e unboxing: int e char
poderem ser tratados como instâncias da classe Object,
sem perda de performance ou necessidade de escrever
uma classe wrapper para por exemplo, adicionar num
collection que aceita Objects.

Marcelo Uemura
Software Design Engineer - MSDN
Microsoft Corporation

__________________________________________________
Do You Yahoo!?
NEW from Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1

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

Responder a