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
Reference Types (C# Reference)