C# -  Termos usados na programação Orientada a objetos (OOP)


 Neste artigo vou apresentar um resumo contendo os termos mais comumentes utilizados na programação orientada a objetos e sua definição. Serve como um manual de consulta rápida.
 
Dicionário de termos OOP:
 
Termos Básicos

Programação Orientada a Objetos (POO):
Uma abordagem para projetar e construir aplicativos flexíveis, naturais, bem trabalhados e testáveis, focando nos objetos e nas interações entre objetos.

Classe: O código que descreve uma determinada entidade na aplicação, como Cliente, Pedido ou Endereco. A classe contém o código que define as propriedades e métodos.

Propriedade: O código que define os dados gerenciados pela classe, como Nome, NumeroPedido, Email, Preco, etc.

Método: O código que define as ações ou comportamentos da classe, como Validar() ou CalcularTotal(). Métodos são definidos no código com funções C#.

Membros: Refere-se às propriedades e métodos de uma classe.

Objeto: Uma instância de uma classe que é criada em tempo de execução. Em C#, uma instância é criada com a palavra-chave new.

Variável de objeto: A variável usada ao criar um objeto. Por exemplo, var macoratti = new Cliente(); Neste exemplo, macoratti é a variável de objeto. Use a variável de objeto para definir as propriedades e chamar os métodos. A variável de objeto mantém o estado do objeto.

Assinatura do método: O código que define a função do método, incluindo o nome da função e o conjunto de parâmetros. A assinatura não inclui o tipo de retorno. Cada assinatura de função dentro de uma classe deve ser única. A assinatura é usada para "corresponder" chamadas para a função.

Sobrecarga(Overloading): Métodos que têm o mesmo nome mas parâmetros diferentes. Exemplo: public bool Retorno() e public bool Retorno(int id). O método Retorno() neste exemplo é dito ter "duas sobrecargas".

Contrato: O conjunto de propriedades e métodos públicos em uma classe define o contrato das classes. A classe faz uma promessa de que irá fornecer as propriedades definidas e os métodos para qualquer outro código que precisa deles. Isso também é conhecido como "interface de classe".

Construtor: Código que é executado sempre que uma instância da classe é criada.

Construtor padrão: Um construtor sem parâmetros.

Substituição(Overriding): Ao usar herança, uma classe filha pode substituir um membro da classe pai para fornecer sua própria implementação.

Interface: Uma interface é um tipo separado (INotifyPropertyChanged por exemplo) que define um conjunto de propriedades e métodos sem implementação. Qualquer classe pode então implementar uma interface para usar o conjunto de propriedades e métodos fornecidos na interface. Pense em uma interface como um papel que um objeto pode desempenhar. Por exemplo, uma interface ILoggable define uma função de log. Uma interface IEmail define uma função de email. Uma classe Pedido pode implementar a interface ILoggable e IEmail para assumir ambas as funções.

Os quatro pilares da Programação Orientada a Objetos

Os pilares do OOP definem as principais características da programação orientada a objetos e são:

Abstração: O processo de definir classes simplificando a realidade, ignorando detalhes estranhos e focalizando no que é importante para um propósito. Por exemplo, um cliente pode ter um nome, título, endereço, estado civil, animais de estimação, crianças, informações de cartão de crédito, veículos, etc. Mas se a finalidade da aplicação é processar ordens, a aplicação só pode se preocupar com o nome do cliente , endereço e informações de cartão de crédito.

Encapsulamento: Uma maneira de ocultar (ou encapsular) os dados e detalhes de implementação dentro de uma classe, escondendo assim a complexidade. Em C#, os elementos de dados são definidos com campos de apoio privados e expostos através de getters e setters de propriedade. Assim, os dados são encapsulados.

Herança: Uma relação entre classes em que as classes filhas(ou derivadas) herdam todos os membros da classe pai (ou base). Por exemplo, um aplicativo pode definir uma classe "base de objeto de negócios" de que todos os objetos de negócios são herdados. Essa classe base pode conter membros comuns a todas as classes filhas, como informações de estado da entidade.

Polimorfismo: Significa basicamente "muitas formas". O conceito de que um único método pode se comportar de maneira diferente dependendo do tipo de objeto que o chama. Por exemplo, o método Validar na classe Cliente executa de forma diferente do método Validar na classe Ordem.

Polimorfismo Baseado em Herança: Polimorfismo no caso em que o método é definido em uma classe base e se comporta de maneira diferente para cada classe filho.

Polimorfismo Baseado em Interface: Polimorfismo no caso em que o método é definido em uma interface e se comporta de maneira diferente em cada classe que implementa a interface.

Relacionamento entre Classes

Colaboração: Relacionamento "Usa um". Os objetos podem colaborar com outros objetos. Por exemplo: Cliente Repositorio "usa um" objeto Cliente para preencher e serializar ao salvar.

Composição: Relacionamento "Tem um". Os objetos podem ser compostos de outros objetos. Por exemplo, Pedido "tem um" Cliente, e Pedido "tem um" endereço de remessa.

Herança: Relacionamento "É um". Os objetos podem ser subtipificados. Por exemplo, um Cliente de Tipo de Negócio "é um" Cliente, e, um Cliente de Tipo Residencial "é um" Cliente ".

Termos C# na OOP

Propriedades implementadas automaticamente (Auto-implemented properties): Propriedades que criam e gerenciam o campo de encapsulamento automaticamente.

Método estático (static): Adicionando o modificador static em um membro da classe (propriedade ou método) define que o membro pertence à própria classe, não uma instância da classe.

Classe selada (Sealed): Classe que não pode ser usada como uma classe base para uma relação de herança.

Classe abstrata(Abstract): Classe que não pode ser instanciada, portanto, nenhum objeto pode ser criado a partir da classe. Nem pode ser acessado por seu nome de classe. A classe só pode ser usada como uma classe base para outras classes.

Classe Concreta: Classe que pode ser instanciada. Basicamente, o oposto de uma classe abstrata.

Classe estática (Static): Classe que não pode ser instanciada, portanto, nenhum objeto pode ser criado a partir da classe. Os membros da classe são acessados ​​usando o nome da classe. Uma classe estática fornece um atalho para os membros da classe quando o instanciamento é injustificado. Por exemplo, a classe Console do .NET Framework é uma classe estática. Para chamar o método WriteLine você usa Console.WriteLine. Não é necessário criar uma nova instância do Console.

Método abstrato: Método sem implementação (basicamente sem código). O método deve ser substituído por uma classe filha.

Método virtual(Virtual): Método com uma implementação que pode ser substituída por uma classe filha.

E estamos conversados...

Sabendo, amados irmãos, que a vossa eleição é de Deus;Porque o nosso evangelho não foi a vós somente em palavras, mas também em poder, e no Espírito Santo, e em muita certeza, como bem sabeis quais fomos entre vós, por amor de vós.
1 Tessalonicenses 1:4,5

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti