Tabela que mostra uma comparação entre os comandos (referentes à Orientação a Objetos) do C# e do Java de forma a ajudar o aluno na transição entre uma linguagem e outra.
Comando | C# | Java |
---|---|---|
Classe | public class Classe { ... } | public class Classe { ... } |
Modificadores de Acesso | private protected public | private protected public |
Atributos de Instância | public class Classe { acesso tipo Atributo; } | public class Classe { acesso tipo atributo; } |
Métodos de Instância | public class Classe { acesso tipo Método(tipo parâmetro, ...) { ... return valor; } } | public class Classe { acesso tipo método(tipo parâmetro, ...) { ... return valor; } } |
Construtor | public class Classe { public Classe(tipo parâmetro, ...) { ... } } | public class Classe { public Classe(tipo parâmetro, ...) { ... } } |
Referência ao Próprio Objeto | this | this |
Instanciação (Criação de Objetos) | Classe obj = new Classe(valor, ...); | Classe obj = new Classe(valor, ...); |
Chamada de Método | obj.Método(valor, ...); | obj.método(valor, ...); |
Sobrecarga de Construtor | public class Classe { public Classe(tipo parâmetro, ...) : this(valor, ...) { ... } } | public class Classe { public Classe(tipo parâmetro, ...) { this(valor, ...); ... } } |
Herança | public class Classe : ClasseBase { ... } | public class Classe extends ClasseBase { ... } |
Chamada do Construtor da Classe Base | public class Classe : ClasseBase { public Classe(tipo parâmetro, ...) : base(valor, ...) { ... } } | public class Classe extends ClasseBase { public Classe(tipo parâmetro, ...) { super(valor, ...); ... } } |
Chamada de Método da Classe Base | public class Classe : ClasseBase { acesso tipo Método(tipo parâmetro, ...) { ... base.Método(valor, ...); ... return valor; } } | public class Classe extends ClasseBase { acesso tipo método(tipo parâmetro, ...) { ... super.método(valor, ...); ... return valor; } } |
Polimorfismo | public class ClasseBase { acesso virtual tipo Método(tipo parâmetro, ...) { ... return valor; } } public class Classe : ClasseBase { acesso override tipo Método(tipo parâmetro, ...) { ... return valor; } } ClasseBase obj = new Classe(valor, ...); obj.Método(valor, ...); // vai chamar o método da Classe | public class ClasseBase { acesso tipo método(tipo parâmetro, ...) { ... return valor; } } public class Classe extends ClasseBase { acesso tipo método(tipo parâmetro, ...) { ... return valor; } } ClasseBase obj = new Classe(valor, ...); obj.método(valor, ...); // vai chamar o método da Classe |
Classes e Métodos Abstratos | public class abstract ClasseBase { acesso abstract tipo Método(tipo parâmetro, ...); } public class Classe : ClasseBase { acesso override tipo Método(tipo parâmetro, ...) { ... return valor; } } | public class abstract ClasseBase { acesso abstract tipo método(tipo parâmetro, ...); } public class Classe extends ClasseBase { acesso tipo Método(tipo parâmetro, ...) { ... return valor; } } |
Interface | public interface Interface { tipo Método(tipo parâmetro, ...); } | public interface Interface { tipo método(tipo parâmetro, ...); } |
Implementar Interface | public class Classe : Interface, ..., InterfaceN { public tipo Método(tipo parâmetro, ...) { ... return valor; } } | public class Classe implements Interface, ..., InterfaceN { public tipo método(tipo parâmetro, ...) { ... return valor; } } |
Herança + Interface | public class Classe : ClasseBase, Interface, ..., InterfaceN { ... } | public class Classe extends ClasseBase implements Interface, ..., InterfaceN { ... } |
Atributos de Classe | public class Classe { acesso static tipo Atributo; } | public class Classe { acesso static tipo atributo; } |
Métodos de Classe | public class Classe { acesso static tipo Método(tipo parâmetro, ...) { ... return valor; } } | public class Classe { acesso static tipo método(tipo parâmetro, ...) { ... return valor; } } |
Usar Atributos de Classe | Classe.Atributo; | Classe.atributo; |
Chamada de Método de Classe | Classe.Método(valor, ...); | Classe.método(valor, ...); |