Você está na página 1de 5

17/03/2018 Class C#: Como criar minha primeira classe em C#

Como criar minha primeira classe em


C#
(34) (0)

Neste conteúdo você aprenderá a criar sua primeira classe na linguagem C#. Aprenda também a
usar herança e interfaces, bem como métodos, atributos e propriedades.

Ir para o código

https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-c/38785 1/5
17/03/2018 Class C#: Como criar minha primeira classe em C#

A definição de classes na linguagem C# é feita com uma sintaxe simples, de fácil compreensão

e nos permite criar atributos, propriedades e métodos. Por exemplo, na Figura 1 temos a

representação de uma classe chamada Produto com seus campos e logo em seguida vemos

como essa classe seria implementada em C#:

Figura 1. Diagrama da classe Produto

1 public class Produto


2 {
3 private int codigo;
4 private string nome;
5 private decimal preco;
6
7 public int Codigo { get => codigo; set => codigo = value;
8 public string Nome { get => nome; set => nome = value; }
9 public decimal Preco { get => preco; set => preco = value
10 }

Linha 1: Nessa linha temos os seguintes termos: public define a visibilidade da classe como pública; class define que
estamos criando uma classe; e Produto é o nome da classe.

Linhas 3 a 5: Aqui temos o que chamamos de atributos. São variáveis privadas que representam as características da classe.
Note o modificador de acesso private , o tipo e o nome de cada atributo;

https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-c/38785 2/5
17/03/2018 Class C#: Como criar minha primeira classe em C#

Linhas 7 a 9: Já aqui temos as propriedades da classe, que são públicas e encapsulam os atributos. Observe que para cada
atributo há uma propriedade e que no corpo delas definimos os métodos get e set. O get retorna o atributo correspondente e
o set recebe um valor e o repassa para o atributo.

No corpo de cada propriedade usamos expressões lambda para definir os métodos get e set .

Essa sintaxe é equivalente à seguinte:

1 public int Codigo


2 {
3 get { return codigo; }
4 set { codigo = value; }
5 }

O parâmetro value possui o mesmo tipo da propriedade e é recebido de forma implícita no

método get, sem que seja necessário declará-lo. Isso é equivalente a criar, por exemplo, os

métodos getCodigo e setCodigo , como fazemos em outras linguagens:

1 public int getCodigo


2 {
3 return codigo;
4 }
5
6 public void setCodigo(int value)
7 {
8 codigo = value;
9 }

Herança

Herança é um tipo de relacionamento muito comum na orientação a objetos e ocorre quando uma

classe descende da outra e herda suas características e comportamentos, além de implementar

os seus próprios. Por exemplo, considere o diagrama de classes da Figura 2em que Assinatura

herda de Produto.

Figura 2. Diagrama classes com Assinatura herdando de Produto

Nesse cenário a classe Assinatura herda de Produto e também define uma propriedade e

método próprios. Em C# essa classe seria implementada da seguinte forma:

https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-c/38785 3/5
17/03/2018 Class C#: Como criar minha primeira classe em C#

1 public class Assinatura : Produto


2 {
3 private DateTime dataExpiracao;
4
5 public DateTime DataExpiracao { get => dataExpiracao;
6 set => dataExpiracao = valu
7
8 public TimeSpan GetTempoRestante()
9 {
10 return dataExpiracao - DateTime.Today;
11 }
12 }

Linha 1: A herança em C# é representada pelos dois pontos na definição da classe, seguido do nome da classe que está
sendo herdada. Nesse caso, Assinatura herda de Produto;

Linhas 3 a 6: Nesse trecho temos o atributo e propriedade que dizem respeito apenas à assinatura;

Linhas 8 a 11: Aqui temos o método GetTempoRestante da assinatura, que retorna um TimeSpan representando o tempo que
falta até a assinatura expirar;

Interfaces

Na Orientação a Objetos as interfaces funcionam como contratos, ou seja, elas definem

comportamentos que devem ser cumpridos pelas classes. Quando uma classe atende a uma

interface, dizemos que ela implementa essa interface. Na Figura 3 temos um diagrama que

mostra uma nova configuração para as classes que representamos anteriormente:

Figura 3. Diagrama de classes com interface

Nesse cenário a interface IExpiravel define que toda classe que representa um produto cuja data

de expiração ou validade chega ao fim (expira) deve implementar o método GetTempoRestante . Por

https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-c/38785 4/5
17/03/2018 Class C#: Como criar minha primeira classe em C#

exemplo, se tivéssemos outra classe Voucher ou Desconto, por exemplo, ela poderia implementar

essa classe e definir o comportamento desse método.

Em C# a interface IExpiravel seria escrita da seguinte forma:

1 public interface IExpiravel


2 {
3 TimeSpan GetTempoRestante();
4 }

Linha 1: Note o uso da palavra reservada interface e também no nome da interface: IExpiravel . Em C# convenciona-se
iniciar o nome das interfaces com I (maiúsculo);

Linha 3: As interfaces definem apenas a assinatura do método, não seu comportamento. A implementação do método fica
por conta da classe que implementar essa interface.

Agora, considerando que a classe Assinatura implementa essa interface, seu código seria

modificado da seguinte forma:

1 public class Assinatura : Produto, IExpiravel


2 {
3 private DateTime dataExpiracao;
4
5 public DateTime DataExpiracao { get => dataExpiracao;
6 set => dataExpiracao = valu
7
8 public TimeSpan GetTempoRestante()
9 {
10 return dataExpiracao - DateTime.Today;
11 }
12 }

Linha 1: A sintaxe para implementar uma interface em C# é a mesma que para herdar de outra classe: usando dois
pontos;

Linhas 8 a 11: Como a classe implementa a interface IExpiravel , ela deve obrigatoriamente definir o comportamento do
método GetTempoRestante .

A partir desses conceitos podemos criar diversas outras classes e interfaces, com seus

atributos, propriedades e métodos específicos.

https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-c/38785 5/5