Share via


classe (Referência de C#)

Classes são declaradas usando a palavra-chave class, conforme mostrado no exemplo a seguir:

class TestClass
{
    // Methods, properties, fields, events, delegates 
    // and nested classes go here.
}

Comentários

Ao contrário do C++, somente herança única é permitida em C#. Em outras palavras, uma classe pode herdar a implementação de apenas uma classe base. No entanto, uma classe pode implementar mais de uma interface. A tabela a seguir mostra exemplos de herança de classe e a implementação de interface:

Herança

Exemplo

Nenhum

class ClassA { }

Simples

class DerivedClass: BaseClass { }

Nenhum, implementa duas interfaces

class ImplClass: IFace1, IFace2 { }

Implementa uma interface única

class ImplDerivedClass: BaseClass, IFace1 { }

Os níveis de acesso protegido e particular são permitidos somente em classes aninhadas.

Também é possível declarar classes genéricas que tenham parâmetros de tipo; consulte Classes genéricas para obter mais informações.

Uma classe pode conter declarações dos seguintes membros:

Exemplo

O exemplo a seguir demonstra a declaração de classes, campos, construtores e métodos. Ele também demonstra a instanciação do objeto e imprimir dados de instância. Neste exemplo, duas classes são declaradas, o Child classe, que contém dois campos particulares (name e age) e dois métodos públicos. A segunda classe, StringTest, que é usado para conter Main.

class Child
{
    private int age;
    private string name;

    // Default constructor:
    public Child()
    {
        name = "N/A";
    }

    // Constructor:
    public Child(string name, int age)
    {
        this.name = name;
        this.age = age;
    }

    // Printing method:
    public void PrintChild()
    {
        Console.WriteLine("{0}, {1} years old.", name, age);
    }
}

class StringTest
{
    static void Main()
    {
        // Create objects by using the new operator:
        Child child1 = new Child("Craig", 11);
        Child child2 = new Child("Sally", 10);

        // Create an object using the default constructor:
        Child child3 = new Child();

        // Display results:
        Console.Write("Child #1: ");
        child1.PrintChild();
        Console.Write("Child #2: ");
        child2.PrintChild();
        Console.Write("Child #3: ");
        child3.PrintChild();
    }
}
/* Output:
    Child #1: Craig, 11 years old.
    Child #2: Sally, 10 years old.
    Child #3: N/A, 0 years old.
*/

Comentários

Observe que no exemplo anterior, que os campos particulares (name e age) só pode ser acessado através de métodos públicos da Child classe. Por exemplo, você não pode imprimir o nome da criança, da Main método, usando uma instrução como esta:

Console.Write(child1.name);   // Error

Acessando os membros privados de Child de Main seria possível apenas se Main foram um membro da classe a.

Tipos declarados dentro de uma classe sem um O modificador de acesso o padrão private, portanto, os membros de dados neste exemplo ainda seria private se a palavra-chave foram removida.

Finalmente, observe que para o objeto criado usando o construtor padrão (child3), a idade do campo foi inicializado para zero por padrão.

Especificação da linguagem C#

Para obter mais informações, consulte C# Language Specification A especificação de linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Referência

C# Keywords

Reference Types (C# Reference)

Conceitos

C# Programming Guide

Outros recursos

C# Reference