Partilhar via


Classes

Translation from VPE for Csharp é uma linguagem de programação orientada a objeto, e em comum com outros idiomas modernos, ela agrupa campos relacionados, métodos, propriedades e eventos em estruturas de dados chamadas de classes.

Classes vs.Objetos

Uma classe é basicamente um plano gráfico para um tipo de dados personalizados.Depois de definir uma classe, você pode usá-lo, carregá-lo na memória.Uma classe que tenha sido carregada na memória é chamada uma objeto or an instância.Você cria uma instância de uma classe usando a palavra-chave de translation from VPE for Csharp novo.

Aqui está um exemplo de uma definição de classe chamado SampleClass, e a criação de um objeto chamado sampleClass1 que é uma instância dessa classe. Como translation from VPE for Csharp requer que o Main função de ser definido dentro de uma classe, o código a seguir define também um Program classe, mas que a classe não é usado para criar um objeto.

using System;

class SampleClass
{
    public void SayHello()
    {
        Console.WriteLine("Hello, World!");
    }
}

class Program
{
    //Main is the entrypoint, where every C# program starts
    static void Main(string[] args)
    {
        SampleClass sampleClass1 = new SampleClass();  // Create an object
        sampleClass1.SayHello();                       // Call a method
    }
}

sistema autônomo você pode criar qualquer número de casas com base no esquema do mesmo, você pode instanciar qualquer número de objetos da mesma classe.É muito comum ter arrays ou listas que contêm muitos objetos da mesma classe.Cada instância da classe ocupa um espaço de memória separado e sistema autônomo valores de seus campos (exceto seus campos estático sistema autônomo discutido abaixo) são separados e independentes.No exemplo de código a seguir, você poderia criar um objeto do tipo Animal e defina seu dimensionar para 2 e outro objeto cujo dimensionar definido como 3. No entanto, há uma exceção importante a essa regra, e que é o membro estático.

estático vs.Membros de instância

Um membro estático é um método ou campo que pode ser acessado sem referência a uma instância particular de uma classe.O método estático mais comum é Main, que é a entrada aponte para todos os programas translation from VPE for Csharp; Observe que você não precisa criar uma instância da classe que contém a fim de chamar o Main método. Outro método estático usado com freqüência é WriteLine no Console classe. Observe a diferença de sintaxe ao acessar métodos estático; use o nome de classe, não o nome da instância, no lado esquerdo do operador ponto: Console.WriteLine.

Quando você declara um campo classe estático, todas as ocorrências dessa classe serão "compartilhar" desse campo.If size no exemplo de código a seguir foram declarados estático e um Animal objeto alterado o valor, o valor seria alterado para todos os objetos do tipo Animal.

Uma classe estática é uma cujos membros são todos estático.estático classes, métodos e campos são úteis em determinadas situações por motivos de desempenho e eficiência.Entretanto, erros sutis podem surgir se você supor que um campo é um campo de instância quando na verdade ela é estática.Para obter mais informações, consulte Classes estáticas e membros de classe estáticos (guia de programação C#).

Classes vs.Files

Cada programa translation from VPE for Csharp tem pelo menos uma classe.Ao criar seu programa, é uma prática recomendada, mas não um requisito para manter uma única classe em cada arquivo de código (arquivos .cs) de fonte.Se você usar o ambiente de desenvolvimento integrado (IDE) translation from VPE for Csharp para criar classes, ele criará automaticamente um novo arquivo de código-fonte para você ao mesmo time.

Encapsulamento

Uma classe normalmente representa as características de uma coisa e as ações que podem executar.Por exemplo, para representar um animal sistema autônomo uma classe translation from VPE for Csharp, você poderá atribuir a ele um dimensionar, velocidade e intensidade representadas sistema autônomo números e algumas funções, sistema autônomo MoveLeft(), MoveRight(), SpeedUp(), Stop()e assim por diante, em que seria escrever o código para fazer "animal" executar essas ações. Em translation from VPE for Csharp, sua classe animal teria esta aparência:

    public class Animal
    {
        private int size;
        private float speed;
        private int strength;

        public void MoveLeft()  // method
        {
            // code goes here...
        }

        // other methods go here...
    }

Se você procurar o .NET Framework Class Library, você verá que cada classe representa "informação", sistema autônomo um XmlDocument, um String, um Form, e que cada item possui várias ações que ele pode executar (métodos) características que você pode ler e modificar talvez (Propriedades) e notificações (eventos) que envia quando ele executa algumas recebe a ação. sistema autônomo métodos, propriedades e eventos, juntamente com todos sistema autônomo outros variáveis internas e constantes (campos), são chamados de membros da classe.

Agrupar membros nas classes não é apenas lógicas, ele também permite que você oculte os dados e funções que não deseja que outros códigos para tem acesso ao.Esse princípio é conhecido sistema autônomo encapsulamento.Quando você navega bibliotecas de classes do .NET estrutura, você está vendo somente os membros dessas classes público.Cada classe provavelmente também tem particular membros que são usados internamente pela classe ou classes relacionam a ele, mas não se destina a ser utilizado por aplicativos.Quando você criar suas próprias classes, você decidirá quais membros devem ser públicos, e que deve ser particulares.

Herança

Uma classe pode herdar de outra classe, o que significa que ele inclua todos os membros, públicos e particular, a classe original, mais os membros adicionais que ele define.A classe original é chamada de classe base e a nova classe é chamada a classe derivada.Você cria uma classe derivada para representar algo que é um tipo mais especializado da classe base.Por exemplo, você pode definir uma classe Cat que herda de Animal. A Cat poderão fazer tudo o que é um Animal pode fazer, mais pode executar uma ação exclusiva adicional. O código translation from VPE for Csharp tem esta aparência:

    public class Cat : Animal
    {
        public void Purr()
        {
        }
    }

The Cat : Animal notação indica que Cat herda do Animal e, portanto, isto Cat também tem um MoveLeft método e as três variáveis particulares size, speed, e strength. Se você definir um SiameseCat classe que herda do Cat, ele terá todos os membros do Cat Além de todos os membros do Animal.

Polimorfismo

No campo da programação de computador, polimorfismo refere-se à capacidade de uma classe derivada para redefinir ou Substituir, métodos que ele herda de uma classe base.Você faz isso quando você precisa fazer algo específico em um método que seja diferente ou que não definido na classe base.Por exemplo, a Animal.MoveLeft como deve ser muito geral para que seja válido para todos os animais, método, é provavelmente muito simples: algo como "alterar a orientação para que cabeça desse animal agora está apontando na direção X".No entanto, no seu Cat classe, isso pode não ser suficiente. Talvez seja necessário especificar como a Cat Move sua patas e tail enquanto ele ativa. E se você também tiver definido um Fish classe ou um Bird classe, você provavelmente precisará substituir o MoveLeft método de maneiras diferentes para cada um deles também classes. Porque você pode personalizar o comportamento do MoveLeft método para sua classe em particular, o código que cria a classe e chama seus métodos não tem um método separado para cada animal no mundo. sistema autônomo longo sistema autônomo o objeto herda de Amimal, o código de telefonar pode chamar apenas o MoveLeft método e a versão do objeto do método serão chamados.

Construtores

Cada classe possui um construtor: um método que compartilha o mesmo nome da classe.O construtor é chamado quando um objeto é criado com base na definição de classe.Construtores normalmente definem os valores iniciais das variáveis definidas na classe.Isso não é necessário se sistema autônomo valores iniciais devem ser zero para tipos de dados numéricos, falsos para tipos de dados booliano ou null para tipos de referência, sistema autônomo esses dados tipos são inicializados automaticamente.

Você pode definir construtores com qualquer número de parâmetros.Construtores não tem parâmetros são chamados de construtores padrão.O exemplo a seguir define uma classe com um construtor padrão e um construtor que leva uma seqüência de caracteres e usa cada:

class SampleClass
{
    string greeting;

    public SampleClass()
    {
        greeting = "Hello, World";
    }

    public SampleClass(string message)
    {
        greeting = message;
    }

    public void SayHello()
    {
        System.Console.WriteLine(greeting);
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Use default constructor.
        SampleClass sampleClass1 = new SampleClass();
        sampleClass1.SayHello();

        // Use constructor that takes a string parameter.
        SampleClass sampleClass2 = new SampleClass("Hello, Mars");
        sampleClass2.SayHello();
    }
}

Operador de sobrecarga

Criando métodos diferentes com o mesmo nome, no exemplo anterior, SampleClass(), é chamado de sobrecarga. O compilador sabe qual método usar porque a lista de argumentos, se houver alguma, está cada vez que um objeto é criado.Sobrecarga pode tornar seu código mais flexível e legível.

Destructors

Você já deve saber sobre destruidores se você tiver usado o C++.Devido o sistema de coleta de lixo automático em translation from VPE for Csharp, ele não é provável que você nunca precisará implementar um destruidor, a menos que sua classe usa recursos não gerenciados.Para obter mais informações, consulte Destructors (guia de programação C#).

Estruturas

Uma estrutura é uma espécie de tipo que é semelhante a uma classe de várias maneiras, exceto pelo fato de que ele não oferece suporte a herança.Para obter mais informações, consulte Estruturas.

Consulte também

Tarefas

Como: Chamar um método de um objeto

Como: Herdar de uma classe

Conceitos

Translation from VPE for Csharp linguagem Primer

Referência

Classes e estruturas (Guia de programação C#)

classe (Referência C#)

struct (Referência C#)