> For the complete documentation index, see [llms.txt](https://favelaware.gitbook.io/favelaware/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://favelaware.gitbook.io/favelaware/7-javascript/7.8-classes-e-objetos.md).

# 7.8 - Classes e Objetos

📚 Entendendo Classes e Objetos em JavaScript

## 📚 Entendendo Classes e Objetos em JavaScript

Bem-vindo(a) ao mundo da **programação orientada a objetos**! 🧠💻\
Você já pensou como um jogo, um aplicativo ou até mesmo um site organiza todas as informações que usa? É aí que entram as **classes** e os **objetos**!

### 🔍 O que são Objetos?

Imagine um **objeto** como algo da vida real: uma *pessoa*, um *carro*, um *celular*...

Cada um desses objetos tem **características** (chamadas de propriedades) e **ações** (chamadas de métodos).

#### 👤 Exemplo de Objeto: Pessoa

```javascript
const pessoa = {
  nome: "Maria",
  idade: 20,
  dizerOla: function() {
    console.log("Olá! Meu nome é " + this.nome);
  }
};

pessoa.dizerOla(); // Olá! Meu nome é Maria
```

📝 Nesse exemplo, `pessoa` tem duas **propriedades** (`nome` e `idade`) e um **método** chamado `dizerOla`.

***

### 🧱 O que são Classes?

Uma **classe** é como um **molde** ou **receita** para criar vários objetos com as mesmas características. Ao invés de criar um por um, você define a **estrutura** com uma classe e depois cria quantos quiser.

#### 🧁 Exemplo: Receita de um Bolo (Classe)

```javascript
class Pessoa {
  constructor(nome, idade) {
    this.nome = nome;
    this.idade = idade;
  }

  dizerOla() {
    console.log(`Oi! Eu sou ${this.nome} e tenho ${this.idade} anos.`);
  }
}

// Criando objetos com base na classe
const joao = new Pessoa("João", 18);
const ana = new Pessoa("Ana", 22);

joao.dizerOla(); // Oi! Eu sou João e tenho 18 anos.
ana.dizerOla();  // Oi! Eu sou Ana e tenho 22 anos.
```

🔧 `constructor` é uma função especial chamada sempre que criamos um novo objeto com `new`.\
💬 `this.nome` e `this.idade` se referem às propriedades de **cada objeto criado** com a classe.

***

### 🤔 Por que usar Classes?

Usar classes ajuda você a:

* Organizar melhor seu código 🧹
* Reutilizar código com facilidade 🔁
* Criar estruturas mais parecidas com o mundo real 🌍

***

### 🚀 Dicas Rápidas

* Nomes de classes sempre começam com **letra maiúscula** (ex: `Pessoa`, `Carro`)
* Use `new` para criar um novo objeto baseado em uma classe
* `this` sempre se refere ao **objeto atual**

***

### 🧭 Conclusão

Aprender sobre **classes** e **objetos** vai abrir várias portas para você no mundo da programação! 🗝️\
Com esses conceitos, você pode criar **jogos, aplicativos e muito mais**! Continue praticando e não tenha medo de errar. 😉

***

### 🔗 Referência

Conteúdo baseado na [documentação oficial do MDN](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Classes)


---

# 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://favelaware.gitbook.io/favelaware/7-javascript/7.8-classes-e-objetos.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.
