[DUVIDA]O que é um objeto, classe, interface, type struct?
Bem vou pesquisar sobre, mas queria movimentar a comunidade aqui e também tenho alguns tab coins pra gastar.
De sua melhor explicação prfv😁
ou deixe links
Bem vou pesquisar sobre, mas queria movimentar a comunidade aqui e também tenho alguns tab coins pra gastar.
De sua melhor explicação prfv😁
ou deixe links
Sobre "objeto", já comentei um pouco aqui, segue o trecho relevante:
Quanto à definição de objeto, ela pode ser tão confusa quanto a de OOP. O Maniero também já colocou o link, no qual podemos ver que a definição de objeto é bem mais ampla do que costumamos ver por aí. Praticamente qualquer coisa (variável, estrutura, função/método, etc), qualquer região da memória que contenha um valor e possa ser acessada e manipulada pode ser um objeto.
O problema é que cada linguagem também costuma ter sua própria definição, muitas vezes mais restrita que o conceito geral. Por exemplo, em JavaScript a MDN define como "uma coleção de propriedades". Em Python, um objeto é uma "abstração para dados". Em outras linguagens, é "uma instância de uma classe". Em C11, na seção 3.15, objeto é "uma região de armazenamento de dados no ambiente de execução, cujo conteúdo pode representar valores".
Ou seja, vc pode considerar a definição mais ampla ("qualquer região da memória que contenha um valor e possa ser acessada e manipulada") ou a da linguagem específica que vc está usando.
Classe e interface já costumam ter uma definição mais uniforme. O primeiro é uma estrutura que possui estado (membros/campos) e comportamento (métodos) - na verdade, a implementação mais comum é que a classe só contém a definição desta estrutura, e a partir dela vc cria instâncias (que seriam os objetos, mas como já dito acima, a definição de "objeto" varia conforme a linguagem - algumas adotam esta, de que objetos são instâncias de uma classe).
Mas existem outros casos em que a classe não é exatamente desta forma, como por exemplo JavaScript: nesta linguagem, a classe é apenas um syntax sugar, pois por baixo dos panos ela continua usando protótipos.
Interface é algo que define um contrato (diz o que deve fazer, mas não como - isso fica a cargo das classes que implementarem a interface). Tem mais detalhes aqui e aqui (e também nos links indicados em cada texto).
struct
é outra coisa que varia conforme a linguagem. Em C, por exemplo, é uma sequência de membros (pode-se pensar que é uma "classe sem métodos", embora seja ainda mais simples que isso). Em C# é similar a classes (possuem estado e comportamento), mas são tipos por valor (diferente das classes, que são por referência - saiba mais aqui e aqui).
Complementando links que podem ser interessantes:
Espero ter ajudado.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).
Aposto que as repostas dos colegas já ajudam bastante, mas talvez valha a pena vc detalhar na sua pergunta a que linguagens se refere.
No exemplo de Go, não existem classes nem objetos. Dessa maneira, uma resposta voltada para Go poderia mais confundir do que ajudar.