Pra quem já está habituado com os conceitos de orientação a objetos e é um programador Java não irá ter muitos problemas para começar a programar em C#, porém temos alguns pontos que devemos chamar a atenção.

Resposta:

Namespaces x Packages
Os dois conceitos são basicamente o mesmo, porém em Java a estrutura dos pacotes refletia diretamente na estrutura dos diretórios, em C# isso não é necessário.

O que aconteceu com o super?
Nada, apenas mudaram o nome para base.

namespace br.com.negocio {

public class Visitante { // Essa classe pode estar no diretório /src/negocio
// ou em qualquer outro.
public Visitante(){
base();
}
...
}

}

Como faço herança em C# ?
Em C# não temos mais a palavra reservada extends e implements, tudo é feito através do ':' na própria assinatura da classe.

C#:

public class MinhaClasse : SuperClass
{

}

Como faço para sobrescrever um método ?
Através da palavra reservada overrides, porém tem um pequeno detalhe, em Java todos os métodos podiam ser reescritos, salvo exceção os métodos com o modificador final, em C# todos os métodos são considerados final, você precisa explicitamente dizer que vai sobreescrever o método usando a palavra reservada virtual.

C#:

public virtual void facaAlgo(){
       
}

public overrides void facaAlgo(){

}

O que aconteceu com os getters e setters?
Em C# temos a introdução de um novo conceito, as propriedades, elas que são responsáveis por atribuir e retornar o valor de um atributo. As propriedades são basicamente "métodos capados", pois podemos fazer processamento dentro delas mas ela não pode receber paramêtros explicitamente, porém temos acesso a todos os atributos que a visibilidade daquela instância lhe permite.

C#:

public class minhaClasse
{
    int _inteiroA = 4;
               
    public int inteiroA  
    {  
        get { return _inteiroA; }  
        set { _inteiroA = value; }  
    }  
 
        public int inteiroAmaisDois
        {
                get { return _inteiroA + 2; }
        }
       
    public void Main(string[] args)  
    {  
        minhaClasse c = new minhaClasse();  
        Console.WriteLine(c.inteiroA);   // 4
        Console.WriteLine(c.inteiroAmaisDois);   // 6
        c.inteiroA = 1;  
        Console.WriteLine(c.inteiroA);   // 1
    }   
}
Tags: .net, c#, dotnet, java

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

Sem feedback para esse post ainda

Deixe seu comentário


Seu endereço de e-mail não será revelado nesse site.

Sua URL será exibida.
(Quebras de linha se tornam <br />)
(Nome, e-mail & website)
(Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))