English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
As classes são como o desenho de blueprint de um objeto específico. No mundo real, cada objeto tem algumas cores, formas e funcionalidades-Por exemplo, o esportivo Ferrari. O Ferrari é um objeto do tipo de carro esportivo. O carro esportivo é uma classe que indica certas características, como velocidade, cor, forma, acabamento, entre outros. Portanto, qualquer empresa que fabricar carros que atendam a esses requisitos é um objeto do tipo carro esportivo. Por exemplo, cada carro da BMW, Lamborghini e Cadillac é um objeto da classe "carro esportivo". Aqui, "carro esportivo" é uma classe e cada carro físico é um objeto da classe "carro esportivo".
Da mesma forma, no design orientado a objetos, a classe define algumas propriedades, campos, eventos, métodos, entre outros. A classe define o tipo de dados e as funcionalidades que o objeto terá.
As classes permitem que você crie tipos personalizados, agrupando variáveis de outros tipos, métodos e eventos.
No C#, pode-se usar a palavra-chave class para definir uma classe.
public class MyClass { public string myField = string.Empty; public MyClass() { } public void MyMethod(int parameter1, string parameter2) { Console.WriteLine("Primeiro Parâmetro {0}, segundo parâmetro {1}1, parameter2); } public int MyAutoImplementedProperty { get; set; } private int myPropertyVar; public int MyProperty { get { return myPropertyVar; } set { myPropertyVar = value; } } }
A figura a seguir mostra os componentes importantes da classe C#.
Modificadores de acesso são aplicados às declarações de classes, métodos, propriedades, campos e outros membros. Eles definem a acessibilidade da classe e de seus membros. Público, privado, protegido e interno são os modificadores de acesso no C#. Vamos entender isso na seção de palavras-chave.
Este campo é uma variável de nível de classe com um valor. Normalmente, os membros de campo devem ter um modificador de acesso privado e ser usados juntamente com propriedades.
Um classe pode ter um construtor parametrizado ou sem parâmetros. Quando se cria uma instância da classe, o construtor é chamado. Pode usar modificadores de acesso e o nome da classe para definir o construtor:
<modificadores de acesso> <class name>(){ }
class MyClass { public MyClass() { } }
Pode usar o seguinte modelo para definir métodos:
{modificador de acesso} {return type} NomeDoMétodo({tipo do parâmetro nomeDoParâmetro})}
public void MyMethod(int parameter1, string parameter2) { // Aqui você escreve o código do seu método. }
Propriedades podem ser definidas usando getters e setters, conforme mostrado a seguir:
private int _myPropertyVar; public int MyProperty { get { return _myPropertyVar; } set { _myPropertyVar = value; } }
A propriedade encapsula um campo privado. Ela fornece getters (get {}) para recuperar o valor do campo básico e setters (set {}) para definir o valor do campo básico. No exemplo acima, _myPropertyVar é um campo privado e não pode ser acessado diretamente. Apenas pode ser acessado através de MyProperty. Portanto, MyProperty encapsula _myPropertyVar.
Você também pode aplicar alguma lógica adicional em get e set, como no exemplo a seguir.
private int _myPropertyVar; public int MyProperty { get { return _myPropertyVar / 2; } set { if (value > 100) _myPropertyVar = 100; else _myPropertyVar = value; } }
De C#3A partir de .0, se você não quiser aplicar alguma lógica em get ou set, pode declarar a propriedade facilmente.
A seguir está um exemplo de propriedade automaticamente implementada:
public int MyAutoImplementedProperty { get; set; }
Observe que no exemplo de propriedade acima não há campo reserva privado. Campos suportados serão criados automaticamente pelo compilador. Você pode usar propriedades automaticamente implementadas da mesma forma que propriedades de classe comuns. As propriedades automaticamente implementadas são apenas para facilitar a declaração de propriedades quando os acessadores de propriedade não precisam de lógica adicional.
O espaço de nomes é um contêiner para um grupo de classes e espaços de nomes relacionados. O espaço de nomes também é usado para fornecer nomes únicos para classes dentro do espaço de nomes. O espaço de nomes e as classes são representados pelo ponto (.).
Em C#, você pode usar a palavra-chave namespace para definir um espaço de nomes.
namespace CSharpTutorials { class MyClass { } }
No exemplo acima, o nome completo da classe MyClass é CSharpTutorials.MyClass.
O espaço de nomes pode conter outros espaços de nomes. O espaço de nome interno pode ser separado por pontos (.)
namespace CSharpTutorials.Examples { class MyClassExample { } }
No exemplo acima, o nome completo da classe MyClassExample é CSharpTutorials.Examples.MyClassExample.