Ir para o conteúdo

Objeto (ciência da computação)

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de Objeto (programação))
 Nota: Este artigo é sobre o conceito. Para o arquivo resultante de uma compilação, veja código objeto.

Em ciência da computação, o termo objeto possui significados distintos conforme o contexto. Na programação orientada a objetos (POO), um objeto é uma entidade de software caracterizada por seu estado, comportamento e identidade. Essa caracterização é comum no modelo clássico de objetos, mas sua aplicação e seus mecanismos concretos variam conforme a linguagem de programação e o modelo de objetos empregado.[1][2]

Programação orientada a objetos

[editar | editar código]

Na POO, os objetos permitem organizar dados e operações relacionadas em unidades que interagem durante a execução de um programa. Podem representar entidades do domínio de uma aplicação, conceitos abstratos ou componentes internos do software. A comunicação entre objetos é frequentemente realizada por meio de chamadas de métodos ou de mecanismos equivalentes definidos pela linguagem.[3][1]

Estado, comportamento e identidade

[editar | editar código]

O estado de um objeto corresponde aos valores de suas propriedades ou campos em determinado momento. Esses valores descrevem características da entidade representada ou informações utilizadas pelo programa. O conjunto dessas propriedades e seus valores pode variar conforme o objeto e o modelo de programação empregado.[1][4]

O comportamento corresponde à maneira como um objeto responde a operações e interage com outros objetos. Na POO, esse comportamento é frequentemente especificado ou implementado por métodos, que podem consultar ou modificar dados associados ao objeto ou realizar outras operações.[1][3]

A identidade é a característica que permite distinguir um objeto dos demais, mesmo quando eles apresentam valores iguais em suas propriedades. Assim, dois objetos podem ter o mesmo estado observável sem serem necessariamente o mesmo objeto.[1][2]

Nem todo objeto permite que seus valores sejam alterados após a criação. Alguns tipos são imutáveis, enquanto outros permitem a modificação de seus valores. O comportamento específico depende do tipo de objeto e da linguagem utilizada. Na implementação CPython, por exemplo, a função id() retorna um inteiro que representa a identidade do objeto e corresponde ao seu endereço de memória; esse detalhe é específico dessa implementação e não deve ser generalizado para todas as linguagens ou implementações de Python.[2]

Classes e instâncias

[editar | editar código]

Em linguagens que utilizam um modelo baseado em classes, uma classe define características comuns a um conjunto de objetos, incluindo atributos, métodos e mecanismos de inicialização. Um objeto criado a partir de uma classe é denominado instância dessa classe.[4][5]

A classe e a instância são entidades distintas: a classe define características e comportamentos comuns, enquanto cada instância pode possuir identidade e estado próprios. Várias instâncias podem ser criadas a partir da mesma classe, mantendo valores diferentes para seus atributos.[4]

Também é necessário distinguir um objeto de uma variável que o referencia. Em Java, por exemplo, a declaração de uma variável de referência não cria, por si só, um objeto. A criação e a inicialização são operações distintas, realizadas por mecanismos próprios da linguagem.[5]

Diferentes modelos de objetos

[editar | editar código]

Os mecanismos de representação, criação e relacionamento entre objetos variam conforme a linguagem de programação.

Em linguagens baseadas em classes, como Java, as classes definem tipos dos quais os objetos são instanciados. Em JavaScript, por sua vez, os objetos podem obter propriedades e comportamentos por meio de outros objetos que atuam como protótipos. A linguagem também oferece sintaxe de classes, construída sobre seu mecanismo de protótipos.[6][7]

Em JavaScript, um objeto é uma coleção de propriedades associadas a valores. Quando uma dessas propriedades contém uma função, ela pode funcionar como um método do objeto.[6]

Em Python, o modelo de dados trata os objetos de maneira abrangente: os dados de um programa são representados por objetos ou por relações entre objetos. Cada objeto possui identidade, tipo e valor. Essa descrição corresponde ao modelo da linguagem Python e não deve ser interpretada como uma regra universal para todas as linguagens de programação.[2]

Objetos em sistemas de banco de dados

[editar | editar código]

Em sistemas de banco de dados, a expressão objeto de banco de dados designa uma estrutura ou outro elemento definido e gerenciado pelo sistema de gerenciamento de banco de dados. A terminologia e os tipos de objetos disponíveis variam conforme o sistema utilizado.

No Oracle Database, por exemplo, os objetos de esquema incluem tabelas, índices, visões, sequências, sinônimos, subprogramas armazenados e pacotes de rotinas. Esses elementos possuem funções específicas na organização, no armazenamento e no acesso aos dados.[8][9]

Nesse contexto, a expressão não deve ser confundida com o conceito de objeto da POO. O significado do termo depende do modelo de dados e das convenções técnicas adotadas pelo sistema de banco de dados.

Ver também

[editar | editar código]
Outros projetos Wikimedia também contêm material sobre este tema:
Wikilivros Livros e manuais no Wikilivros

Referências

  1. 1 2 3 4 5 Steven J. Zeil (20 de agosto de 2013). «The Object-Oriented Philosophy» (em inglês). Old Dominion University. Consultado em 18 de outubro de 2026
  2. 1 2 3 4 «Data model: Objects, values and types». Python 3.15 Documentation (em inglês). Python Software Foundation. Consultado em 18 de outubro de 2026
  3. 1 2 «Objects». The Java Tutorials (em inglês). Oracle. Consultado em 18 de outubro de 2026
  4. 1 2 3 «Classes and Objects». CC 410 Textbook (em inglês). Kansas State University. Consultado em 18 de outubro de 2026
  5. 1 2 «Creating Objects». The Java Tutorials (em inglês). Oracle. Consultado em 18 de outubro de 2026
  6. 1 2 «Working with objects». MDN Web Docs (em inglês). Consultado em 18 de outubro de 2026
  7. ↑ «Object prototypes». MDN Web Docs (em inglês). Consultado em 18 de outubro de 2026
  8. ↑ «About Schema Objects». Oracle Database Documentation (em inglês). Oracle. Consultado em 18 de outubro de 2026
  9. ↑ «Database Objects». Oracle Database Documentation (em inglês). Oracle. Consultado em 18 de outubro de 2026