Classes vs Estruturas
Alguns dos principais conceitos de linguagens de programação Orientadas a Objetos (OO) são encapsulamento, herança e polimorfismo. Classe e Estrutura são duas das construções / ferramentas de OO, que ajudam os programadores a alcançar esses conceitos na maioria das linguagens de programação OO existentes (Java não fornece estruturas). Classes são uma representação abstrata de objetos do mundo real. As estruturas são muito semelhantes às classes com uso semelhante, mas têm poucas limitações em comparação com as classes. As classes e a estrutura são usadas para agrupar tipos de dados semelhantes, juntos.
O que são Classes?
As classes representam a representação abstrata de objetos do mundo real, enquanto os relacionamentos mostram como cada classe está conectada a outras. As classes e os relacionamentos têm propriedades chamadas atributos. Os métodos nas classes representam ou definem o comportamento dessas classes. Métodos e atributos das classes são chamados de membros da classe. Normalmente, o encapsulamento é obtido tornando os atributos privados, enquanto cria métodos públicos que podem ser usados para acessar esses atributos. Um objeto é a instância de uma classe. A herança permite ao usuário estender classes (chamadas subclasses) de outras classes (chamadas superclasses). O polimorfismo permite que o programador substitua um objeto de uma classe no lugar de um objeto de sua superclasse. Normalmente, os substantivos encontrados na definição do problema se tornam diretamente classes no programa. E da mesma forma, os verbos se tornam métodos. Público, privado e protegido são os modificadores de acesso típicos usados para classes. Um diagrama de classes mostra as classes dos sistemas, os relacionamentos entre as classes e seus atributos.
O que são estruturas?
Como mencionado acima, as estruturas são muito semelhantes às classes com um uso semelhante, mas são recursos ligeiramente limitados que as classes. De fato, as classes podem ser consideradas como uma extensão das estruturas. Por exemplo, as estruturas são iguais às classes em C ++, mas elas têm membros públicos por padrão. Uma estrutura pode ser definida pelo usuário para representar um tipo que é composto. Semelhante às classes, as estruturas contêm membros que podem pertencer a vários tipos. A palavra-chave struct é usada para definir uma estrutura em C e C ++, enquanto a palavra-chave Structure é usada para o mesmo nas linguagens de programação .NET.
Qual é a diferença entre Classes e Estruturas?
Mesmo que classes e estruturas sejam construções semelhantes encontradas em linguagens de programação, elas apresentam diferenças sutis. Normalmente, a classe é uma extensão da estrutura e, portanto, as estruturas têm algumas limitações relativas. Por exemplo, as estruturas podem ser consideradas iguais às classes em C ++, mas os membros não são públicos por padrão nas classes (ao contrário das estruturas). Na verdade, isso significa que você pode definir uma classe e uma estrutura com exatamente as mesmas características usando os modificadores de acesso apropriados em C ++. No entanto, em C, as estruturas não podem conter nenhuma função ou operação sobrecarregada. Palavras-chave classe e estrutura são usadas para definir uma classe e uma estrutura em C ++, respectivamente. Quando se trata de linguagens .NET (C #, VB.NET, etc.), classe é um tipo de referência, enquanto estrutura é um tipo de valor. E geralmente, as estruturas são usadas para objetos menores, mas as classes são usadas para objetos maiores que são mantidos na memória por períodos mais longos.