> For the complete documentation index, see [llms.txt](https://docs.heisenware.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.heisenware.com/~/changes/Q625pQNc0nXqVGPtyjAY/building-apps/data-processing/objects-and-instances.md).

# Objects & instances

The App Builder is designed on the principles of Object-Oriented Programming (OOP), a meaningful paradigm that streamlines code creation, making it both easier and faster. Applying these OOP concepts empowers the App Builder to provide a straightforward method for creating extensive, complex, and individual low-code-based apps.

## OOP concepts

* **A class is a blueprint** defining what an object can do and the type of data it will store.
* **An object is a specific instance** created from a class, containing data and able to perform defined actions.
* **An object function is a function within a class**, representing actions the object can perform; often referred to as methods in OOP.

{% hint style="info" %}
**For example**, the App Builder contains an HTTP/REST connector that represents a class. A specific connector instance, which is an object, can be created from this class. This object encapsulates data such as the connection URL and has object functions for executing actions. For instance, it can use the `get` function to retrieve data from the defined URL.
{% endhint %}

This is all you need to know about OOP to effectively work with the App Builder. :relieved:

## Managing objects

Essentially, there are two functions to manage objects: `create` and `delete`. Unlike regular functions, these don't directly add features to the app but serve as essential building blocks during app development.

### Creating objects

To construct a specific object from a class:

1. Drag and drop the `create` function of a class to the logic board.
2. Enter the name for your object and any required input arguments.
3. Trigger the function manually.

The new object, along with its object functions, will appear under the respective class. If you like, you can delete the `create` function after execution. This action does not impact the object itself.

{% hint style="info" %}
Objects are shared across Workspaces and thus accessible from all apps within a Workspace.
{% endhint %}

### Deleting objects

Exercise caution when deleting objects, as they may be in use across workspaces and other apps. To delete an object:

1. Drag and drop the `delete` function of a class to the logic board.
2. Enter the name of the object as an input argument.
3. Trigger the function manually.

If the object doesn't disappear immediately, it indicates lingering object functions on the logic board. Delete them to remove the object.

{% hint style="danger" %}
Be cautious about deleting objects, as they are shared across Workspaces, and their removal may affect other apps using the same objects.
{% endhint %}

## Explainer video

{% embed url="<https://youtu.be/j9TiN5COiik>" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.heisenware.com/~/changes/Q625pQNc0nXqVGPtyjAY/building-apps/data-processing/objects-and-instances.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
