Um pouco sobre classes em Java e sua anatomia
Tags: java, beginners, programming, poo
Published: 2023-01-10 16:43:25

> Uma classe bem estruturada nao quer guerra com ninguém

---

Para que o computador execute instruções e execute programas de computador precisamos primeiro escreve-los em códigos através de uma linguagem de programação.
 
A escrita de códigos e pre definida através de palavras chaves que sao regidas pelas linguagens de programação assim como as expressões que utilizamos para definir os nomes de métodos, classes, objetos e atributos de um programa.
O tema de hoje e sobre classes de um programa, baseado no paradigma de orientação a objetos(POO).

## Afinal, o que sao classes ?

Para entendermos as classes precisamos primeiro saber o que sao os objetos, em resumo os objetos podem ser qualquer coisa do mundo real, físicas ou nao físicas, a qual podemos abstrair seu comportamento e atributos. Tudo pode ser tornar um objeto no mundo computacional. Por exemplo, se tratando de um programa bancário teríamos:

**Objeto Correntista** -> **Objeto Conta Corrente** -> **Objeto Operações Bancarias**

Agora que você ja sabe o que sao objetos podemos entender o que sao as classes. Elas sao o projeto de um objeto, a classe informa a maquina virtual do java (JVM) como criar um objeto de tipo especifico e armazena seus atributos e comportamentos. 
Cada objeto criado a partir dessa classe terá seus valores distintos para as variáveis de instancia de classe. Podemos fazer uma analogia a classe como um molde de objeto, sendo ela e o elemento que da forma aos objetos. 

__Figura 1 - Exemplo de um objeto e uma classe__ 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hygk5azqivw02953q47d.png)

**Classe ->** Automóvel
**Objetos da classe ->** Gol, Uno, Astra, Vectra, Honda Civic (Sao instancias da classe automóvel) 

**Classe ->** Relógio
**Objetos da classe ->** Rolex, Apple Watch, Cassio (Sao instancias da classe)


## Qual a importância de uma classe em uma aplicação em java ?

Todo arquivo **.java** necessita que sua classe seja do mesmo nome do arquivo, por exemplo um arquivo chamado MinhaClasse.java seria expresso por 

```
public class MinhaClasse {
      //seu código aqui
}
```
caso contrario haverá um erro de compilação. 
Note que as palavras chaves ou também chamadas de palavras reservadas __public__ e __class__ devem ser declaradas todas em letras minúsculas. 
Ja o nome da classe deve sempre iniciar com letra maiúscula, seguindo a notação padrão camelcase, onde a próxima palavra sem espaços precisa ter uma letra maiúscula, por exemplo **MeuPrimeiroPrograma**.

##Composição das classes

Como vimos toda classe precisa ter:

**Nome ->** Formado por um substantivo simples ou composto na notação camelcase.

**Atributos ->** Os atributos de uma classe sao informações internas. Como nome ou endereço de um correntista, a cor de um automóvel ou sua velocidade máxima. 
Todos os atributos precisam ser declarados com um tipo de dado, por isso precisamos saber quais sao os tipos de dados aceitos pela linguagem em questão. Ainda e possível que as classes possuam atributos que sao outros objetos, isso se chama associação.

**Métodos ->** Ou também conhecidos como comportamentos que podem ser realizados com os atributos das classes, no caso de uma classe
conta bancaria podemos realizar saques, mostrar o saldo, realizar depósitos e no caso do carro, acelerar e freiar por exemplo. Geralmente os métodos sao nomeados com verbos no infinitivo indicando qual operação efetuam.

__Figura 2 - Declaração da classe Roupa em Java__ 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ul3e0i02erfk48980wi9.png)

Na figura acima podemos ver a declaração da classe Roupa na linha 1, e nas linhas 2 a 5 seus respectivos atributos (cor, tamanho, textura e material). Seguido na linha 6 pelo seu método vestir().