Classes (guia de programação C#) 

A classe é uma construção que permite que você criar seus próprios tipos personalizados, agrupar variáveis de outros tipos, métodos e eventos.Uma classe é como um plano gráfico.Ele define o comportamento de um tipo e dados.Se a classe não é declarada sistema autônomo estático, o código do cliente poderá usá-lo criando objetos or instâncias atribuídos a uma variável.A variável permanece na memória até que todas as referências a ele vá fora do escopo.Nesse momento, o CLR o marca sistema autônomo qualificado para coleta de lixo.Se a classe é declarada sistema autônomo estático, existirá somente uma cópia na memória e código do cliente só pode acesso-lo por meio da classe, não um variável de instância.Para obter mais informações, consulte Classes estáticas e membros de classe estáticos (guia de programação C#).

Ao contrário das structs, classes suportam herança, uma característica fundamental da programação orientada a objeto.Para obter mais informações, consulte Herança (Guia de programação C#).

Declarar classes

Classes são declaradas usando a classepalavra- chave, sistema autônomo mostrado no exemplo a seguir:

public class Customer
{
    //Fields, properties, methods and events go here...
}

The class palavra-chave é precedida por nível de acesso. Porque pública é usado nesse caso, qualquer pessoa pode criar objetos dessa classe.O nome da classe segue o class palavra-chave. O restante da definição é o corpo de classe, onde o comportamento e dados são definidos.Campos, propriedades, métodos e eventos em uma classe são chamados coletivamente de membros da classe.

Criando objetos

Embora elas sejam usadas de forma intercambiável, uma classe e um objeto são coisas diferentes.Uma classe define um tipo de objeto, mas ela não é o  objeto em si.Um objeto é uma entidade concreta baseada em uma classe e às vezes é chamado sistema autônomo uma instância de uma classe.

Os objetos podem ser criados usando o novo palavra-chave seguido do nome da classe que o objeto terá como base, como este:

Customer object1 = new Customer();

Quando uma instância de uma classe é criada, uma referência para o objeto é passada volta para o programador.No exemplo anterior, object1 é uma referência a um objeto que se baseia Customer. Esta referência se refere ao novo objeto, mas não contém os dados do objeto.Na verdade, você pode criar uma referência de objeto sem criar um objeto em todos os:

Customer object2;

Não recomendamos a criação de referências de objeto sistema autônomo este não faz referência a um objeto porque a tentativa de acessar um objeto através de tal uma referência falhará em time de execução.No entanto, sistema autônomo uma referência pode ser feita para se referir a um objeto, criando um novo objeto ou atribuí-la a um objeto existente, sistema autônomo este:

Customer object3 = new Customer();
Customer object4 = object3;

Este código cria duas referências de objeto em que ambos fazem referência ao mesmo objeto.Portanto, quaisquer alterações feitas ao objeto feitas através de object3 serão refletidas no subsequentes usos do object4.Porque sistema autônomo objetos que são baseados em classes referenciados por referência, classes são conhecidas sistema autônomo tipos de referência.

Herança de classe

A herança é realizada usando um derivação, que significa que uma classe declarada usando um classe base da qual ela herda o comportamento e dados.Uma classe base é especificado pelo acrescentar dois pontos e o nome da classe base após o nome da classe derivada, como este:

public class Manager : Employee
{
    // Employee fields, properties, methods and events are inherited
    // New Manager fields, properties, methods and events go here...
}

Quando uma classe declara uma classe base, ela herda todos os membros da classe base, exceto os construtores.

Ao contrário do C++, uma classe no translation from VPE for Csharp pode herdar apenas diretamente de uma classe base.No entanto, como uma classe base pode propriamente dito de outra classe, uma classe pode herdar indiretamente várias classes base.Além disso, uma classe pode implementar diretamente mais de uma interface.Para obter mais informações, consulte Interfaces (guia de programação C#).

Uma classe pode ser declarada Resumo.Uma classe abstrata contém métodos abstratos que tem uma definição de assinatura, mas nenhuma implementação.Classes abstratas não podem ser instanciadas.Eles podem ser usados somente por meio de classes derivadas que implementam os métodos abstratos.Por constrast, um selado classe não permite que outras classes de derivado dele.Para obter mais informações, consulte Abstrato e Sealed classes e membros de classe (guia de programação C#).

Definições de classe podem ser divididas entre arquivos de origem diferentes.Para obter mais informações, consulte Classes e métodos (guia de programação translation from VPE for Csharp) parcial.

Descrição

No exemplo a seguir, uma classe pública que contém um único campo, um método e um método especial chamado um construtor é definida.Para obter mais informações, consulte Construtores (Guia de programação do C#).A classe é instanciada, em seguida, com o new palavra-chave.

Exemplo

public class Person
{
    // Field
    public string name;

    // Constructor
    public Person()
    {
        name = "unknown";
    }

    // Method
    public void SetName(string newName)
    {
        name = newName;
    }
}
class TestPerson
{
    static void Main()
    {
        Person person = new Person();
        Console.WriteLine(person.name);

        person.SetName("John Smith");
        Console.WriteLine(person.name);

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
/* Output:
    unknown
    John Smith
*/

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • Classes 1.6 e objetos

  • Classes 10

Consulte também

Conceitos

Guia de Programação C#

Referência

Membros (guia de programação C#)

Métodos (Guia de programação do C#)

Construtores (Guia de programação do C#)

Destructors (guia de programação C#)

Objetos (guia de programação C#)

Date

History

Motivo

Julho de 2008

Removida a demonstrativo enganosa sobre base acesso.