Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Dominando Classes em C#: Blueprint para Programação Orientada a Objetos Poderosa

Definir uma classe cria um blueprint (modelo) para um tipo de dado. Não define dados reais, mas o que o nome da classe significa: o que um objeto consiste e quais operações pode realizar. Objetos são instâncias da classe. Métodos e variáveis que constituem a classe são membros.

Definindo uma Classe

<especificador_acesso> class nome_classe
{
    // variáveis membro
    <especificador_acesso> <tipo_dado> variavel1;
    ...

    // métodos membro
    <especificador_acesso> <tipo_retorno> metodo1(lista_parametros)
    {
        // corpo do método
    }
    ...
}

Notas:

Exemplo Básico: Classe Box

using System;

namespace BoxApplication
{
    class Box
    {
        public double length;
        public double breadth;
        public double height;
    }

    class Boxtester
    {
        static void Main(string[] args)
        {
            Box Box1 = new Box();
            Box Box2 = new Box();
            double volume = 0.0;

            Box1.height = 5.0; Box1.length = 6.0; Box1.breadth = 7.0;
            Box2.height = 10.0; Box2.length = 12.0; Box2.breadth = 13.0;

            volume = Box1.height * Box1.length * Box1.breadth;
            Console.WriteLine("Volume of Box1: {0}", volume);

            volume = Box2.height * Box2.length * Box2.breadth;
            Console.WriteLine("Volume of Box2: {0}", volume);
            Console.ReadKey();
        }
    }
}

Saída: Volume of Box1: 210 / Volume of Box2: 1560

Funções Membro e Encapsulamento

Função membro tem definição/protótipo dentro da classe. Opera em qualquer objeto da classe e acessa todos os membros para aquele objeto.

Variáveis membro (atributos) mantêm-se private para encapsulamento. Acessadas via funções membro public (getters/setters).

Exemplo com Encapsulamento

class Box
{
    private double length, breadth, height;

    public void SetLength(double len) { length = len; }
    public void SetBreadth(double bre) { breadth = bre; }
    public void SetHeight(double hei) { height = hei; }
    public double GetVolume() { return length * breadth * height; }
}

Construtores em C#

Função membro especial executada ao criar novos objetos. Mesmo nome da classe, sem tipo de retorno.

Construtor Padrão

public Line()
{
    Console.WriteLine("Objeto sendo criado");
}

Construtor Parametrizado

public Line(double len)
{
    Console.WriteLine("Objeto sendo criado, length = {0}", len);
    length = len;
}

Destrutores em C#

Função membro especial executada quando objeto sai de escopo. Mesmo nome da classe prefixado com ~. Não retorna valor nem aceita parâmetros. Útil para liberar recursos.

~Line()
{
    Console.WriteLine("Objeto sendo deletado");
}

Membros Estáticos (Static)

Palavra-chave static indica que só existe uma cópia do membro, independentemente de quantos objetos são criados.

Variáveis Estáticas

public static int num;
public void Count() { num++; }
public int GetNum() { return num; }

Exemplo: duas instâncias incrementam num — ambas veem valor 6.

Métodos Estáticos

Podem acessar apenas variáveis estáticas. Existem antes do objeto ser criado.

public static int GetNum() { return num; }

// Uso sem instância:
Console.WriteLine("Variable num: {0}", StaticVar.GetNum());

Linguagem C

  1. Classes e Objetos em C#: Fundamentos para POO Robusta
  2. Entendendo Modificadores de Acesso em C#: Public, Private, Protected, Internal e Mais
  3. Palavra-chave Static em C#: Dominando Variáveis, Métodos e Classes Estáticas
  4. Dominando Classes e Métodos Abstratos em C#: Guia Prático
  5. Entendendo Classes Aninhadas em C#: Definição, Uso e Herança
  6. Classes e Objetos em C++: Guia Prático de Programação Orientada a Objetos
  7. Entendendo Classes de Armazenamento em C: Escopo, Tempo de Vida e Uso
  8. Entendendo Classes de Armazenamento em C++: Escopo, Tempo de Vida e Uso
  9. Interfaces em C++: Dominando Classes Abstratas e Funções Virtuais Puras
  10. Entendendo a Estrutura de Programas C#: Componentes Essenciais e Exemplo