classe (translation from VPE for Csharp Reference)
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 translation from VPE for Csharp.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 { } |
Single |
class DerivedClass: BaseClass { } |
Nenhum, implementa duas interfaces |
class ImplClass: IFace1, IFace2 { } |
Implementa uma interface única |
class ImplDerivedClass: BaseClass, IFace1 { } |
O acesso níveis protegido and particular são permitidos somente em classes aninhadas.
Também é possível declarar classes genéricas que possuem 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 de objetos e imprimir dados de instância.Neste exemplo, duas classes são declaradas, a Child classe, que contém dois particular campos ()name e age) e dois métodos públicos. A segunda classe TestClass, é 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, no exemplo anterior, que o particular campos (name e age) só pode ser acessado através dos métodos públicos da Child classe. Por exemplo, você não conseguir imprimir nome da criança, a partir de Main método, usando uma demonstrativo como esta:
Console.Write(child1.name); // Error
Acessar membros privados de Child de Main somente será possível se Main foi um membro da classe.
Tipos declarados dentro de uma classe sem um Modificador de acesso padrão de private, portanto, os membros de dados neste exemplo seria ainda private Se a palavra-chave foram removida.
Finalmente, observe que para o objeto criado usando o construtor padrão (child3), o campo de idade foi inicializado para zero por padrão.
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
3.4.4 Membros da classe
4.2.1 Tipos de classe
Classes 10
Consulte também
Conceitos
Referência
Tipos de referência (referência C#)