Continuando com o exemplo de uma classe básica, Cliente, a qual será exibida em Java e em C#, e então comentários e comparações serão apresentados. Veja na Figura 1, a implementação em Java e na Figura 2, a implementação da mesma classe em C#.
Figura 1
Figura 2
Declaração de Atributos e Propriedades
Java:
private long id; à assessores
private String nome;
private Calendar nascimento;
private double renda; à atributos
public long getId() {
Return id; }
public void setId(long id){
This id = id; } à assessores
C#:
privat long _id; à atributo
public long Id {
get {return_ id; }
set {_id = value; } à assessores
Um atributo é uma característica de um determinado objeto, porém, não existe regra ou obrigatoriedade para que este atributo seja visível/acessível externamente. Para que um atributo tenha esta característica (ser visível a outros objetos/classes), é preciso transformá-lo em propriedade. Uma propriedade é uma característica de um objeto, a qual pode ser acessada externamente, normalmente por outra classe/objeto.
Em Java, um atributo é declarado propriedade quando o mesmo possui métodos acessores públicos definidos para ele, ou seja, os métodos get e set. Desta forma, um atributo de um objeto em Java só pode ser acessado através de chamadas a métodos, que retornem valores (get) e que recebem valores (set), atualizando o estado do objeto.
Em C# a transformação de um atributo para propriedade é diferente, segue o padrão Delphi, ou seja, os valores são obtidos e atribuídos através de um operador de igualdade (=). O exemplo acima, apresenta as declarações privadas para os atributos e publicas para as propriedades, semelhante ao Java. Porém, veja que uma propriedade em C#, possui (não obrigatoriamente) os métodos get e set, onde existe então a implementação para atribuição e retorno do valor do atributo.
Declaração de Construtores
Java:
public Cliente (Long id, String nome, Calendar nascimento, Double renda) {
This.id =id;
this.nome = nome;
this.nascimento = nascimento;
this.renda = renda; } àconstrutor
C#:
public Cliente (long id, string nome, DateTime nascimento, Double renda) }
this._id = id;
this._nome = nome;
this._nascimento = nascimento;
this._renda = renda; } àconstrutor
Não existem diferenças na implementação de construtores. C# traz também o já famoso e útil this, que apenas para relembrar, é uma referência ao objeto atual da classe onde o mesmo é utilizado, quer seja para atributos, métodos ou até mesmo referenciando o uso em sobrecargas de construtores.
Artigo de Everton Coimbra de Araújo
Nenhum comentário:
Postar um comentário