O que é um objeto e uma classe?
Um objeto é uma coisa (substantivo) que possui certas características e pode realizar determinadas tarefas. Uma classe é o projeto ou definição desse objeto.
Um exemplo é uma Pessoa. Uma pessoa é classe. Uma pessoa pode ter certas características que a distinguem de outra pessoa. Pode ter olhos azuis, pode ter 30 anos, etc. Uma pessoa também pode realizar certas tarefas. Ele pode andar, pode falar, etc.
Um objeto Java é uma instância de uma classe Java. Neste caso, “Bea” é uma “Pessoa”. “Bea” tem olhos castanhos. Esta é uma propriedade (ou campo de dados) de “Bea”. “Bea” pode falar em inglês. “Bea” pode falar espanhol. Estes são métodos que “Bea” pode executar.
Criando uma classe!
Java é uma linguagem de programação orientada a objetos, o que significa que tudo em Java está associado a um objeto e a uma classe (o modelo do objeto).
Para começar, a linha de código que usamos para imprimir instruções da atividade 1 é na verdade uma chamada de método de uma classe predefinida chamada System!
System.out.println("Hello World");
Systemé uma classe que lida com entradas e saídas do usuário.outé uma variável na classeSystemda classe/tipoPrintStream.println()é um método definido na classePrintStream.
Outra classe com a qual interagimos nos exercícios anteriores é String. A classe String define um conjunto de regras sobre como uma lista de caracteres deve se comportar.
Com a seguinte linha de código, criamos um objeto String chamado name usando as regras definidas na classe String:
String name = "Patrick";
System, PrintStream e String são classes predefinidas em Java. No entanto, não estamos limitados a essas classes predefinidas e podemos criar nosso próprio tipo de dados escrevendo uma classe! Isso é útil para codificadores criarem objetos específicos com determinados atributos e comportamentos. Ter acesso a esses tipos definidos pelo usuário nos permite construir programas distintos.
Vamos aprender sobre as diferentes partes de uma aula abaixo:
Classe
Uma classe é um projeto ou protótipo de um novo tipo de objeto. Em geral, uma classe contém três partes importantes: (1) campos de dados/variáveis de instância (2) construtor (3) métodos.

| Elemento | Descrição | Exemplo |
|---|---|---|
| campos de dados/variáveis de instância | variáveis às quais um objeto desta classe tem acesso e que descrevem o objeto | A classe Person possui campos eyeColor, age, height. |
| construtor | método chamado para criar um objeto desta classe | Pode haver mais de um construtor por classe |
| métodos | métodos que um objeto desta classe poderá chamar para executar determinadas tarefas | A classe Person possui métodos talk e walk. |
Por exemplo:
public class SampleClass{
// (1) campos de dados/variáveis de instância
private String name; // exemplo
// (2) construtor
public SampleClass(){
name = "example";
}
// (3) métodos
public sampleMethod(){}
}
Experimente 🐥!
Vamos fazer uma classe Bird para representar Patrick 🐥 e todos os seus amigos Bird (pássaros) seguindo os passos abaixo!
Nota: Para este exercício, você trabalhará em Bird.java em vez de Main.java.
Primeiro, começamos definindo o nome da classe no formato public class name.
public class Bird{}
Segundo, vamos declarar todos os campos da classe Bird: species, name, hobby, age, loveMusic.
Cada campo é declarado no formato: private data type name ;.
Declaramos todos os 5 campos como
privatena classeBird. Isso garante que esses dados só possam ser acessados dentro desta classe.Vamos identificar o tipo apropriado para cada campo:
speciesdeve ser umaStringque armazena por exemplo: “duck”, “swan”, “owl” (“pato”, “cisne”, “coruja”).namedeve ser umaStringque armazena por exemplo: “Patrick”.hobbydeve ser umaStringque armazena por exemplo: “jogar basquete”.agedeve ser umintque armazena por exemplo: 25.loveMusicdeve ser umbooleanque armazena verdadeiro ou falso.
Por exemplo, para declarar species como um campo privado da classe Bird, você colocaria private String Species; .
- Termine de criar os outros 4 campos da classe Bird!
Terceiro, vamos criar o construtor para a classe Bird.
Normalmente, construtor é o método que inicializa o valor para todos os campos de uma classe. Possui o formato public nome da classe (parâmetro). Como temos 5 campos nesta classe, o construtor receberá 5 parâmetros/entradas.
public Bird(String speciesInput, String nameInput, String hobbyInput, int ageInput, boolean loveMusicInput){
// corpo do construtor
}
No corpo do construtor, precisamos inicializar todas as variáveis de instância, atribuindo a cada variável seus valores iniciais:
species = speciesInput;
name = nameInput;
hobby = hobbyInput;
age = ageInput;
loveMusic = loveMusicinput;
Por último, vamos criar alguns métodos para a classe Bird.
Vamos criar 6 métodos para esta classe!
- getSpecies(); // retornar espécie da ave
- getName(); // retornar o nome do pássaro
- getHobby(); // retornar hobby do pássaro
- getAge(); // retornar idade do pássaro
- getLoveMusic(); // retornar se o pássaro adora música
- toString(); // retornar informações em uma String
Tente escrever os primeiros 5 métodos com o que você aprendeu no exercício anterior sobre métodos de escrita!
Depois, vamos escrever o método `toString()` juntos!
toString() é um método que retorna a representação String do objeto.
Retornaremos uma String que inclui todos os campos do Bird: name, age, species, hobby, loveMusic, chamando os 5 métodos que você acabou de implementar!
public String toString(){
// inicialize as informações da variável para ter uma String vazia
String info = "";
// anexe informações à String no formato:
// Hi, my name is [name]. I am a [age] year old [species] who likes to [hobby].
info = info + "Hi, my name is " + getName() +
". I am a " + getAge() + " year old " + getSpecies() +
" who likes to " + getHobby() + ". ";
// se o pássaro gosta de música, acrescente a string "I also like music very much!" para informações
if(getLoveMusic()){
info = info + "I also like music very much!";
}else{
info = info + "However, I do not like music!";
}
// retornar a String completa
return info;
}
Se você implementou corretamente a classe Bird, você verá a seguinte mensagem ao clicar em Run:
Parabéns! Você implementou corretamente a classe Bird :)
Se ainda houver algo incompleto ou incorreto ao clicar em Executar:
- Você pode receber um erro como
Main.java:3: error: cannot access Bird(Main.java:3: erro: não é possível acessar o Bird). - Ou você verá a mensagem,
Something is still not quite right!(Algo ainda não está certo!).
Criando Birds 🐥!
Parabéns! Você acabou de escrever sua primeira classe Java, classe Bird. Agora vamos aprender a escrever um programa que use objetos Bird!
Definimos a classe Bird para ter os seguintes atributos (variáveis de instância) e comportamentos (métodos):

Para criar um novo objeto de uma classe específica, chamamos o construtor dessa classe no formato class name variable name = new constructor call.
Lembre-se de que o construtor da classe Bird é o seguinte:
public Bird(String speciesInput, String nameInput, String hobbyInput, int ageInput, boolean loveMusicInput);
Assim, podemos criar um Bird com estes atributos (species - duck; name - Patrick; hobby - hangout with friends; age - 15; loveMusic - true) com esta linha de código.
Bird patrick = new Bird("duck", "Patrick", "hangout with friends", 15, true);
Experimente você mesmo e crie vários pássaros de espécies diferentes 🐦🐤🐔🐧!
A seguir, vamos chamar o método `toString()` nesses objetos `Bird` que criamos para imprimir as informações de nossos amigos. Você pode fazer o seguinte:
- Imprima o valor de retorno do método
toString(). (ou seja,System.out.println(patrick.toString());) - Imprima diretamente o objeto
Bird, que solicita quetoString()seja chamado em segundo plano. (ou seja,System.out.println(patrick);).
Experimente e imprima todas as informações dos amigos pássaros que você criou 🐦🐤🐔🐧!