Objeto e Classes
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 classeSystem
da 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
private
na classeBird
. Isso garante que esses dados só possam ser acessados dentro desta classe.Vamos identificar o tipo apropriado para cada campo:
species
deve ser umaString
que armazena por exemplo: “duck”, “swan”, “owl” (“pato”, “cisne”, “coruja”).name
deve ser umaString
que armazena por exemplo: “Patrick”.hobby
deve ser umaString
que armazena por exemplo: “jogar basquete”.age
deve ser umint
que armazena por exemplo: 25.loveMusic
deve ser umboolean
que 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 🐦🐤🐔🐧!