Logo Passei Direto
Buscar

01 Introdução a classes, objetos e métodos

Ferramentas de estudo

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Prévia do material em texto

Introdução a classes, objetos e 
métodos
Apresentação
Diversos elementos marcam a evolução da programação orientada a objetos (POO). Entre os 
principais, estão as classes, que abrigam elementos. Os elementos, denominados métodos, são 
caracterizados por seus atributos, que são semelhantes entre si. Para o desenvolvimento com base 
em uma linguagem orientada a objetos, como o Java, é importante aplicar os métodos, definindo 
tanto os dados quanto os códigos que operam sobre eles. Assim, classes são como um plano que 
determinam como o objeto será criado.
Basicamente, os métodos especificam os mecanismos pelos quais a classe ou um objeto pode 
operar a partir de uma instância. É fundamental compreender como um programa é constituído. De 
maneira geral, todos os objetos em Java são acessados por meio de classes e objetos. O estudo 
sobre os conceitos importantes acerca desses componentes facilita o processo de desenvolvimento 
de software (Schildt, 2015).
Nesta Unidade de Aprendizagem, você será introduzido aos fundamentos da programação 
orientada a objetos, com foco na compreensão das estruturas que compõem um programa nesse 
paradigma. Por meio de exemplos práticos, será possível explorar como organizar dados e 
comportamentos em estruturas lógicas, compreender a construção dessas estruturas em uma 
linguagem orientada a objetos e acompanhar o processo de instanciação e manipulação de 
elementos no ambiente Java.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Definir classes, objetos e métodos.•
Construir classes com seus elementos utilizando uma linguagem orientada a objetos.•
Descrever a criação de objetos por meio da linguagem Java.•
Desafio
Antes de desenvolver qualquer aplicação, existem algumas etapas de preparação a serem seguidas. 
Durante o planejamento de um projeto, é necessário realizar um levantamento sobre os requisitos a 
serem implementados.
O levantamento de requisitos é o processo em que o desenvolvedor desenha todas as 
necessidades e objetivos a serem atingidos, facilitando a construção de uma aplicação que atenda 
às necessidades do cliente. Um bom profissional preza pela qualidade do software e, por isso, 
precisa pensar no escopo técnico, visando, principalmente, ao resultado que será visto pelo cliente 
(Pressman; Maxim, 2016).
Considerando as informações apresentadas, analise o seguinte cenário:
A imagem a seguir possui audiodescrição. Para acessar o recurso, clique aqui 
https://creator-files.plataforma.grupoa.education/undefined/REVISADO_9107_Audiodescricao_Desafio-2025-09-01T16:26:49-03:00.docx
Para essa entrega, você deve considerar os seguintes aspectos:
O gerente solicitou que uma linguagem de POO fosse criada. Sua recomendação é o uso de 
Java.
•
Para que o gerente possa avaliar o projeto antes da implementação, este deve ser entregue 
em formado .zip.
•
Pode ser usado o ambiente de desenvolvimento integrado (IDE) de sua preferência para 
construção do código-fonte, como, por exemplo, NetBeans e Eclipse.
•
Infográfico
A POO tem o propósito de representar sistemas de diferentes complexidades por meio do uso de 
estruturas hierárquicas e do relacionamento entre os objetos. As unidades básicas são os objetos, 
porém estes precisam ser aplicados em conjunto com métodos e classes para permitir a troca de 
mensagens e as atividades propostas pela linguagem de programação.
Essa abordagem promove a modularização do código, facilitando a manutenção, a reutilização e a 
expansão de aplicações ao longo do tempo. Ao adotar uma linguagem como o Java, que oferece 
suporte robusto à orientação a objetos, o desenvolvedor pode criar soluções que espelham melhor 
os processos do mundo real, favorecendo o entendimento do sistema como um todo (Horstmann, 
2009).
Neste Infográfico, compreenda conceitos importantes sobre os componentes que fazem parte da 
POO. Após isso, para complementar seu conhecimento, confira o infográfico interativo.
A imagem a seguir possui audiodescrição. Para acessar o recurso, clique aqui
https://creator-files.plataforma.grupoa.education/undefined/REVISADO_9107_Audiodescricao_Infografico-2025-09-01T16:32:02-03:00.docx
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/363098d9-5a92-4fe5-923c-4ff985e00c55/8e7d1512-8371-4fde-b76f-bef782fabeb5.png
Agora, por meio de um infográfico interativo, aprenda mais sobre os algoritmos e os seus principais 
conceitos.
A imagem a seguir possui audiodescrição. Para acessar o recurso, clique aqui
Conteúdo interativo disponível na plataforma de ensino!
 
 
https://creator-files.plataforma.grupoa.education/undefined/REVISADO_9107_Audiodescricao_Infografico_Imagem2-2025-09-03T16:21:12-03:00.docx
Conteúdo do Livro
A POO é um paradigma de programação que visa organizar e estruturar o código de maneira mais 
intuitiva, simulando a interação entre objetos do mundo real. Ao simular entidades com atributos e 
comportamentos próprios, a POO permite ao desenvolvedor representar problemas complexos por 
meio de soluções modulares e reutilizáveis. Essa estruturação favorece não apenas a clareza e a 
manutenção do código, mas também aproxima a lógica computacional da realidade observada, 
facilitando o desenvolvimento de aplicações mais robustas e coerentes (Horstmann, 2009).
Dentro desse paradigma, conceitos como classes, métodos e objetos são centrais. As classes 
funcionam como moldes que definem os atributos e comportamentos dos objetos, enquanto os 
métodos representam as ações que esses objetos podem realizar. Ao empregar esses elementos de 
forma coordenada, o programador consegue construir sistemas organizados e sustentáveis (Arnold; 
Gosling; Holmes, 2005).
No capítulo Introdução a classes, objetos e métodos, base teórica desta Unidade de Aprendizagem, 
você vai aprender o que são e como utilizar as classes, métodos e objetos, além de exemplos 
práticos em Java.
Boa leitura.
Os elementos gráficos deste capítulo possuem audiodescrição. Para acessar o recurso, 
clique aqui
https://creator-files.plataforma.grupoa.education/undefined/REVISADO_9107_Audiodescricao_Conteudo_Livro-2025-09-01T16:36:08-03:00.docx
PROGRAMAÇÃO 
ORIENTADA A 
OBJETOS
OBJETIVOS DE APRENDIZAGEM
 > Definir classes, objetos e métodos.
 > Construir uma classe com seus elementos, com auxílio de uma linguagem 
de programação orientada a objetos.
 > Descrever a criação de objetos por meio da linguagem Java.
Introdução
A programação orientada a objetos (POO) proporciona uma maneira mais es-
truturada de desenvolver software, tornando-o mais fácil de manter, modificar 
e reutilizar. Com a POO, é possível modelar objetos do mundo real e resolver 
problemas complexos de forma eficiente e organizada.
Uma classe é um conceito fundamental que representa um modelo ou uma 
descrição abstrata de um objeto. Ela é usada como um plano ou um molde 
para criar objetos específicos durante a execução de um programa. Uma classe 
encapsula dados (atributos) e comportamentos (métodos) relacionados numa 
única unidade lógica. Ela define a estrutura, o estado inicial e o comportamento 
que os objetos derivados dessa classe terão. Já os objetos são instâncias 
concretas de uma classe, ou seja, são criados a partir da classe e possuem 
características individuais.
Neste capítulo, você vai aprender os conceitos e a prática sobre como 
construir classes, objetos e métodos usando a linguagem Java.
Introdução a classes, 
objetos e métodos
Nicolli Souza Rios Alves
Classes, objetos e métodos
A POO é um paradigma de programação que organiza o código em torno de 
objetos, que são instâncias de classes. Essa abordagem permite criar estru-
turas de software mais modulares, flexíveis e fáceis de entender e manter.
Na POO, o conceito de classe aborda uma estrutura fundamental que define 
as propriedades e comportamentos de um objeto (HORSTMANN, 2009). Ela 
serve como um modelo ouplano para criar instâncias específicas de objetos.
É importante ressaltar que uma classe é uma abstração lógica. Somente 
quando um objeto dessa classe é criado é que existe uma representação 
física dela na memória (HORSTMANN, 2009). Além disso, vale lembrar que os 
métodos e variáveis que compõem uma classe são chamados de membros da 
classe. Os membros de dados também são chamados de variáveis de instância.
Na linguagem de programação Java, uma classe é declarada usando-se a 
palavra-chave class, seguida pelo nome da classe. Vamos considerar uma 
forma geral simples para definir uma class:
class nome da classe {
// declara atributos
tipo atributo1;
tipo atributo2;
// ...
tipo variavelN;
// declara metodos
tipo metodo1(parametros) {
// corpo do método
}
tipo metodo2(parametros) {
// corpo do método
}
// ...
tipo metodoN(parametros) {
// corpo do método
}
}
Introdução a classes, objetos e métodos2
É muito importante levar em consideração que, para uma classe ser bem 
projetada, precisa agrupar informações que são logicamente conectadas 
(ARNOLD; GOSLING; HOLMES, 2005). Assim, não faz sentido, por exemplo, ter 
uma classe que armazena nome e e-mail, além de previsão do tempo, variação 
do dólar ou qualquer outra informação não relacionada. 
Na POO, temos public class e private class. Esses são mo-
dificadores de acesso utilizados para controlar a visibilidade de uma 
classe (SCHILDT, 2015). Uma classe declarada como public é acessível a partir 
de qualquer lugar no programa. Isso significa que outras classes podem acessar, 
estender (herdar) e criar instâncias dessa classe. Por exemplo: 
 public class MinhaClasse {
 // Definição da classe
 }
Por sua vez, uma classe declarada como private é acessível somente dentro 
da própria classe em que foi declarada. Ela não pode ser acessada de fora da 
classe, nem mesmo por outras classes no mesmo pacote. Geralmente, classes 
declaradas como private são utilizadas para auxiliar na implementação interna 
de uma classe principal. Por exemplo:
 public class MinhaClasse {
 private class ClasseAuxiliar {
 // Definição da classe auxiliar
 }
 // Resto da definição da classe principal
 }
Nesse exemplo, a classe ClasseAuxiliar só pode ser acessada dentro 
da classe MinhaClasse. Ela não é visível fora dessa classe e não pode ser 
estendida ou instanciada por outras classes.
É importante lembrar que o uso de classes private é menos comum que 
o uso de classes public ou outras combinações de modificadores de acesso. 
Classes private geralmente são utilizadas para encapsular lógica interna e 
fornecer uma estrutura mais organizada para a classe principal, mantendo a 
implementação oculta e protegida de acesso externo (SCHILDT, 2015).
Introdução a classes, objetos e métodos 3
Como citamos anteriormente, objetos são criados a partir de uma classe, 
que é uma estrutura que define suas propriedades e comportamentos (HORST-
MANN, 2009). As propriedades de um objeto, também chamadas de atributos, 
são características que descrevem seu estado atual. Uma classe Celular, 
por exemplo, pode ter atributos como cor, modelo, marca e capacidade de 
armazenamento.
Além das propriedades, os objetos também possuem comportamentos, 
que são ações que eles podem executar. Esses comportamentos são definidos 
por métodos, que são funções dentro de uma classe. Um objeto da classe 
Celular, por exemplo, pode ter métodos como telefonar e fotografar.
Em POO, um método é uma função associada a uma classe ou objeto que 
define o comportamento ou ações que o objeto pode executar. Os métodos 
permitem interagir e modificar o estado de um objeto, bem como realizar 
cálculos e retornar valores específicos (HORSTMANN, 2009).
Nesse âmbito, uma coisa importante de aprender é o método construtor. 
Trata-se de um tipo especial de método utilizado para criar e inicializar objetos 
a partir de uma classe. O objetivo principal de um construtor é garantir que 
um objeto seja criado com um estado inicial consistente e válido.
Em Java, um construtor é declarado com o mesmo nome da classe e não 
possui um tipo de retorno, nem mesmo void. Ele é invocado automaticamente 
quando um objeto é criado utilizando a palavra-chave new.
As principais características de um método construtor são (SCHILDT, 2015):
 � Nome igual ao nome da classe — um construtor recebe o mesmo nome 
que a classe em que está declarado. Isso permite que o compilador 
identifique qual construtor deve ser chamado quando um objeto é 
criado.
 � Ausência de tipo de retorno — ao contrário de outros métodos, um 
construtor não apresenta um tipo de retorno definido. Ele é responsável 
apenas por inicializar o objeto.
 � Habilitação para parâmetros — um construtor pode receber parâmetros, 
permitindo que valores sejam passados durante a criação do objeto. 
Isso possibilita uma personalização e flexibilidade na inicialização 
dos objetos.
 � Inicialização de atributos — dentro de um construtor, é comum atribuir 
valores iniciais aos atributos do objeto, garantindo que estejam num 
estado válido desde o início.
Introdução a classes, objetos e métodos4
 � Construtores-padrão — se nenhum construtor for explicitamente de-
clarado numa classe, o compilador Java cria automaticamente um 
construtor-padrão sem parâmetros. Esse construtor-padrão inicializa 
os atributos com valores-padrão ou nulos.
 � Sobrecarga de construtores — é possível ter múltiplos construtores 
na mesma classe com diferentes parâmetros. Isso é conhecido como 
sobrecarga de construtores e permite a criação de objetos com dife-
rentes configurações iniciais.
A utilização de construtores é importante para garantir que os objetos 
sejam inicializados corretamente e estejam em estado válido antes de serem 
utilizados (HORSTMANN, 2009). Assim, proporcionam uma forma estruturada 
de criar objetos e configurar seus atributos, facilitando a criação de um código 
organizado, legível e reutilizável.
Suponha que temos uma classe chamada Funcionario, que define os 
atributos nome e idade e os métodos associados a eles, conforme mostrado 
a seguir: 
public class Funcionario {
 // Atributos
 private String nome;
 private int idade;
 // Método construtor
 public Funcionario(String nome, int idade) {
 this.nome = nome;
 this.idade = idade;
 }
 // Métodos 
 public void setNome(String nome) {
 this.nome = nome;
 }
 public String getNome() {
 return nome;
 }
Introdução a classes, objetos e métodos 5
 public void setIdade(int idade) {
 this.idade = idade;
 }
 public int getIdade() {
 return idade;
 }
 public void fazerAniversario() {
 idade++;
 }
}
Nesse exemplo, a classe Funcionario possui dois atributos: nome e 
idade. Esses atributos descrevem o estado de uma pessoa específica. Na 
classe ainda temos o método construtor, além de outros quatro métodos, que 
são getters e setters. Esses métodos são comumente utilizados em POO para 
acessar e modificar os valores dos atributos de uma classe. Eles oferecem 
uma maneira de interagir com os atributos encapsulados da classe, seguindo 
o princípio do encapsulamento.
Os getters (métodos de obtenção) são responsáveis por retornar o valor de 
um atributo específico. Geralmente, têm o tipo de retorno correspondente ao 
tipo do atributo que estão recuperando. Nesse exemplo, o método getNome 
retorna uma string correspondente ao nome do funcionário.
Os setters (métodos de configuração) são responsáveis por definir (ou 
modificar) o valor de um atributo específico. Geralmente, recebem um pa-
râmetro correspondente ao novo valor a ser atribuído ao atributo. Nesse 
exemplo, o método setNome recebe uma string correspondente ao novo 
nome do funcionário e atualiza o valor do atributo nome.
Ao usar esses métodos getter e setter, a classe pode controlar como os 
atributos são acessados e modificados, garantindo assim a encapsulação dos 
dados e o controle sobre as operações realizadas sobre eles (HORSTMANN, 
2009).Isso é importante para manter a integridade dos dados e aplicar vali-
dações ou lógica adicional, se necessário.
Como exemplo, ao acessar o atributo nome de um objeto da classe Fun-
cionario, em vez de acessá-lo diretamente (funcionario.nome), é preferível 
usar o método getter getNome(). Dessa forma, é possível adicionar lógica 
Introdução a classes, objetos e métodos6
de validação, restrições de acesso ou outras operações necessárias antes de 
retornar o valor do atributo.
Da mesma forma, ao modificar o atributo idade de um objeto da classe 
Funcionario, em vez de atribuir diretamente um novo valor (funcionario.
idade = 30), é preferível usar o método setter setIdade(). Dessa forma, 
é possível adicionar lógica de validação, restrições ou outras operações 
necessárias antes de atualizar o valor do atributo.
Nesse mesmo exemplo da classe Funcionario, temos um método cha-
mado fazerAniversario que incrementa a idade do funcionário em 1. Esse 
método não possui parâmetro algum e não retorna valor algum (tipo void). 
Ele incrementa a idade do objeto Funcionario em 1.
Agora, vamos criar um objeto da classe Funcionario e interagir com ele:
public class Main {
 public static void main(String[] args) {
 // Criando uma instância da classe Funcionario
 Funcionario funcionario1 = new Funcionario("João", 30);
 // Obtendo e exibindo os valores dos atributos
 System.out.println("Nome: " + funcionario1.getNome());
 System.out.println("Idade: " + funcionario1.getIdade());
 // Criando outro objeto Funcionario
 Funcionario funcionario2= new Funcionario("Maria", 25);
 System.out.println("Nome: " + funcionario2.getNome());
 System.out.println("Idade: " + funcionario2.getIdade());
 // Fazendo aniversário do funcionario1
 funcionario1.fazerAniversario();
 System.out.println("Nova idade: " + funcionario1.
getIdade());
 }
}
Introdução a classes, objetos e métodos 7
Nesse exemplo, criamos um objeto Funcionario chamado funciona-
rio1 com nome "João" e idade 30 e outro objeto Funcionario chamado 
funcionario2 com nome "Maria" e idade 25. Em seguida, exibimos os nomes 
e as idades iniciais do objeto.
Depois disso, chamamos o método fazerAniversario do objeto fun-
cionario1. Esse método incrementa a idade em 1. Em seguida, exibimos 
a nova idade do objeto funcionario1. A Figura 1 mostra a resultado da 
execução desse programa. 
Figura 1. Saída da execução do programa no Visual Studio Code.
Essa abordagem de criar objetos a partir de uma classe permite modelar 
e representar entidades individuais com suas próprias características e com-
portamentos. Cada objeto tem seu próprio estado e pode ser manipulado 
independentemente dos demais objetos da mesma classe. Isso proporciona 
flexibilidade e reutilização de código na POO (ARNOLD; GOSLING; HOLMES, 
2005).
Agora que aprendemos os conceitos de classes, métodos e objetos, vamos 
entendê-los na forma de um exemplo prático. 
Construção de classes
Para fixar melhor os conceitos aprendidos, vamos estudar um exemplo que 
utiliza classes, métodos e objetos. Para isso, vamos construir em Java uma 
classe simples chamada Hospital e entender cada etapa da sua construção:
public class Hospital {
 // Atributos
 private String nome; // Nome do hospital
 private int capacidade; // Capacidade de leitos do hospital
 private boolean possuiUTI; // Indica se o hospital pos-
sui UTI
Introdução a classes, objetos e métodos8
 // Método construtor
 public Hospital(String nome, int capacidade, boolean 
possuiUTI) {
 this.nome = nome;
 this.capacidade = capacidade;
 this.possuiUTI = possuiUTI;
 }
 // Métodos
 // Realiza o atendimento de um paciente no hospital
 public void realizarAtendimento(String paciente) {
 System.out.println("O paciente " + paciente + " está 
sendo atendido no hospital " + nome);
 }
 // Adiciona um leito ao hospital
 public void adicionarLeito() {
 capacidade++;
 System.out.println("Foi adicionado mais um leito ao 
hospital " + nome);
 }
 // Verifica se o hospital possui UTI
 public void verificarDisponibilidadeUTI() {
 if (possuiUTI) {
 System.out.println("O hospital " + nome + " possui 
UTI");
 } else {
 System.out.println("O hospital " + nome + " não 
possui UTI");
 }
 }
 // Getters e Setters
Introdução a classes, objetos e métodos 9
 // Retorna o nome do hospital
 public String getNome() {
 return nome;
 }
 // Define o nome do hospital
 public void setNome(String nome) {
 this.nome = nome;
 }
 // Retorna a capacidade de leitos do hospital
 public int getCapacidade() {
 return capacidade;
 }
 // Define a capacidade de leitos do hospital
 public void setCapacidade(int capacidade) {
 this.capacidade = capacidade;
 }
 // Verifica se o hospital possui UTI
 public boolean isPossuiUTI() {
 return possuiUTI;
 }
 // Define se o hospital possui UTI
 public void setPossuiUTI(boolean possuiUTI) {
 this.possuiUTI = possuiUTI;
 }
}
Agora, vamos entender cada parte da construção da classe Hospital:
 � Atributos — a classe Hospital possui três atributos privados: nome 
(representando o nome do hospital), capacidade (indicando o nú-
mero de leitos disponíveis) e possuiUTI (um booleano que indica se 
o hospital possui UTI).
Introdução a classes, objetos e métodos10
 � Construtor —é responsável por inicializar os atributos da classe. O 
construtor recebe como parâmetros o nome, a capacidade e a informa-
ção sobre a UTI, e atribui esses valores aos atributos correspondentes.
 � Métodos — a classe Hospital possui três métodos além do construtor. 
O método realizarAtendimento recebe o nome do paciente como 
parâmetro e imprime uma mensagem informando que o paciente está 
sendo atendido no hospital específico. O método adicionarLeito 
incrementa a capacidade do hospital em 1 leito e exibe uma mensagem 
informando que um novo leito foi adicionado. O método verificar-
DisponibilidadeUTI verifica se o hospital possui UTI e exibe uma 
mensagem informando a disponibilidade.
 � Getters e setters — são métodos que permitem acessar e modificar 
os atributos privados da classe. São usados para obter ou alterar os 
valores dos atributos nome, capacidade e possuiUTI.
Com essa classe Hospital, é possível criar objetos representando dife-
rentes hospitais, definir seus atributos e chamar os métodos para realizar 
ações específicas, como atender pacientes, adicionar leitos e verificar a 
disponibilidade de UTI.
Agora que aprendemos a utilizar os métodos, vamos compreender como 
instanciar objetos dessas classes e usar esses métodos. 
Criação de objetos
Dentro da POO, uma instância de objeto é a criação concreta de um objeto a 
partir de uma classe. Uma classe, por sua vez, serve como um modelo ou uma 
descrição que define os atributos e comportamentos de um objeto, enquanto 
uma instância de objeto é um objeto específico que foi criado a partir dessa 
classe (HORSTMANN, 2009).
Quando uma classe é instanciada, um novo objeto é criado na memória, 
ocupando um espaço separado e contendo seus próprios valores de atributos 
e estado. Cada instância de objeto possui seu próprio conjunto de atributos, 
independentes de outras instâncias da mesma classe.
Considere, por exemplo, a classe Funcionario que definimos anterior-
mente. Podemos criar várias instâncias de objetos dessa classe, cada qual 
representando um funcionário diferente, com seu próprio nome e idade:
Introdução a classes, objetos e métodos 11
Funcionario funcionario1 = new Funcionario ("Jorge", 32); 
// Instância de objeto 1
Funcionario funcionario2 = new Funcionario ("Natalia", 27); 
// Instância de objeto 2
Funcionario funcionario3 = new Funcionario ("Pedro", 41); 
// Instância de objeto 3
Nesse exemplo, cada linha de código cria uma nova instância de objeto da 
classe Funcionario usando o operador new. Cada instância é armazenada 
numa variável separada (funcionario1, funcionario2 e funcionario3).
Ademais,cada instância de objeto possui seu próprio conjunto de atributos 
(nome e idade) que podem ser acessados e modificados independentemente 
das outras instâncias. Podemos, por exemplo, chamar métodos ou modificar 
atributos de uma instância específica:
System.out.println(funcionario1.getNome()); // Saída: Jorge
funcionario2.setNome("Ana");
System.out.println(funcionario2.getNome()); // Saída: Ana
As instâncias de objetos permitem que trabalhemos com dados específicos 
e realizemos ações relacionadas a cada objeto individualmente (HORSTMANN, 
2009). Cada instância é única, com seu próprio estado e comportamento, 
permitindo uma modelagem mais precisa e flexível de um sistema orientado 
a objetos.
Retornando ao exemplo de construção de classe apresentado anterior-
mente, vamos criar um objeto da classe Hospital: 
// Método main
 public static void main(String[] args) {
 // Criando um objeto da classe Hospital
 Hospital hospital = new Hospital("Hospital ABC", 100, 
true);
 // Acessando os atributos e chamando os métodos do 
objeto
 System.out.println("Nome do hospital: " + hospital.
getNome());
 System.out.println("Capacidade do hospital: " + hos-
pital.getCapacidade());
Introdução a classes, objetos e métodos12
 hospital.realizarAtendimento("João");
 hospital.adicionarLeito();
 hospital.verificarDisponibilidadeUTI();
 // Modificando os atributos do objeto
 hospital.setNome("Hospital Santo Antônio");
 hospital.setCapacidade(152);
 hospital.setPossuiUTI(false);
 // Exibindo os atributos atualizados
 System.out.println("Novo nome do hospital: " + hos-
pital.getNome());
 System.out.println("Nova capacidade do hospital: " + 
hospital.getCapacidade());
 hospital.verificarDisponibilidadeUTI();
 }
}
Neste exemplo, o método main cria um objeto da classe Hospital cha-
mado hospital utilizando o construtor da classe. Em seguida, esse método 
acessa os atributos do objeto utilizando os métodos getters e exibe as in-
formações na tela.
O método main também chama os outros métodos da classe Hospital, 
como realizarAtendimento, adicionarLeito e verificarDisponibi-
lidadeUTI, a fim de realizar algumas operações com o objeto. Em seguida, 
esse método modifica os atributos do objeto utilizando os métodos setters e 
exibe as informações atualizadas. A Figura 2 mostra a resultado da execução 
desse programa. 
Figura 2. Saída da execução do programa no Visual Studio Code.
Introdução a classes, objetos e métodos 13
Assim, o método main nos permite testar e interagir com os recursos da 
classe Hospital e seus objetos, demonstrando o uso dos atributos, métodos, 
getters e setters.
Ao instanciar objetos em Java, é recomendado seguir algumas boas 
práticas para garantir um código organizado, legível e de fácil ma-
nutenção. Eis a seguir algumas boas práticas ao instanciar objetos em Java 
(SCHILDT, 2015):
 � Utilize nomes significativos para as variáveis de referência — dê nomes des-
critivos às variáveis que armazenam as referências aos objetos. Isso ajuda a 
entender o propósito do objeto e facilita a leitura e manutenção do código.
 � Utilize a palavra-chave new para criar instâncias de objetos — a palavra-chave 
new é usada para criar novas instâncias de classes em Java. Certifique-se de 
utilizá-la ao criar objetos, para evitar erros de compilação.
 � Evite criar objetos desnecessários — crie objetos somente quando necessário. 
Evite criar objetos temporários ou objetos que não serão utilizados poste-
riormente, pois isso pode causar um consumo desnecessário de recursos.
 � Mantenha o escopo das variáveis o mais restrito possível — declare as vari-
áveis de referência no escopo em que serão usadas. Isso evita vazamentos 
de memória e facilita a compreensão do código, pois as variáveis são usadas 
somente onde são necessárias.
 � Utilize interfaces como tipo de referência quando possível — ao declarar 
variáveis de referência, sempre que possível utilize interfaces em vez de 
classes concretas. Isso permite maior flexibilidade, facilitando a substituição 
de implementações e tornando o código mais modular.
 � Utilize construtores apropriados — ao instanciar objetos, utilize construtores 
apropriados para configurar os valores iniciais dos objetos. Se uma classe 
possui vários construtores, escolha o mais adequado ao contexto e aos re-
quisitos do objeto a ser criado.
 � Utilize métodos de fábrica (Factory Methods) quando apropriado — em alguns 
casos, é benéfico utilizar métodos de fábrica estáticos para criar objetos. 
Esses métodos encapsulam a lógica de criação do objeto e podem retornar 
instâncias de subclasses ou objetos pré-configurados de acordo com deter-
minados parâmetros.
 � Considere o uso de padrões de projeto — alguns padrões de projeto, como 
Singleton, Factory Method, Builder, entre outros, fornecem abordagens pa-
dronizadas para a criação de objetos. Ao aplicar esses padrões, você pode 
obter uma criação mais flexível e controlada de objetos.
Seguindo essas boas práticas, podemos ter um código mais limpo, legível e 
com boa manutenibilidade ao instanciar objetos em Java.
Introdução a classes, objetos e métodos14
Neste capítulo, exploramos os conceitos fundamentais de classes, métodos 
e objetos na POO. Aprendemos que as classes são estruturas que definem os 
atributos e comportamentos de um determinado tipo de objeto. Os métodos, 
por sua vez, representam as ações que os objetos podem executar e permitem 
a interação entre eles. Os objetos são instâncias das classes, ou seja, são 
entidades concretas que podem ser criadas e manipuladas durante a execução 
do programa. Compreender esses conceitos é essencial para construir pro-
gramas estruturados, modulares e reutilizáveis. Ao aplicar corretamente os 
princípios da POO, podemos desenvolver sistemas mais flexíveis, escaláveis 
e de fácil manutenção.
Referências 
ARNOLD, K.; GOSLING, J.; HOLMES, D. The Java programming language. 4th. ed. London: 
Addison Wesley Professional, 2005.
HORSTMANN, C. Conceitos de computação com Java. 5. ed. Porto Alegre: Bookman, 2009.
SCHILDT, H. Java para iniciantes: crie, compile e execute programas Java rapidamente. 
6. ed. Porto Alegre: Bookman, 2015. 
Leituras recomendadas
BLOCH, J. Effective Java. 2nd. ed. London: Prentice, 2017.
ESTEVÃO. Como criar minha primeira classe em Java. DEVMEDIA, 2019. Disponível em: 
https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-java/38940. 
Acessado em 26 de maio de 2023.
FINEGAN, E.; LIGUORI, R. OCA Java SE 8: guia de estudos para o exame 1Z0-808. Porto 
Alegre: Bookman, 2018. 
REGES, S.; STEPP, M. Building Java programs: a back to basics approach. 4th. ed. London: 
Pearson, 2014.
RONALDO. Aprender Java: boas práticas para um bom projeto de software. DEVMEDIA, 
2013. Disponível em: https://www.devmedia.com.br/aprender-java-boas-praticas-
-para-um-bom-projeto-de-software/29713. Acesso em: 3 jun. 2023. 
Os links para sites da web fornecidos neste capítulo foram todos 
testados, e seu funcionamento foi comprovado no momento da 
publicação do material. No entanto, a rede é extremamente dinâmica; suas 
páginas estão constantemente mudando de local e conteúdo. Assim, os edito-
res declaram não ter qualquer responsabilidade sobre qualidade, precisão ou 
integralidade das informações referidas em tais links.
Introdução a classes, objetos e métodos 15
Dica do Professor
Projetar um software é como projetar uma casa. Tanto a engenharia civil quanto a de software têm 
um esquema ou desenho. Na engenharia civil, é chamado de desenho arquitetônico ou planta; na 
engenharia de software, de arquitetura ou design, todos incluídos na fase de projeto. Logo, é 
essencial saber interpretar tais desenhos.
Na engenharia de software, o projeto define não apenas a estrutura, mas também os componentes 
e a forma como eles interagem. Essa representação é fundamental para garantir que o sistema 
atenda aos requisitos previamente levantados, respeitando critérios de qualidade. Assimcomo um 
engenheiro civil prevê detalhes da obra para evitar problemas futuros, o projetista de software 
precisa antecipar cenários técnicos, funcionais e lógicos (Sommerville, 2011).
Nesta Dica do Professor, aprenda a implementar uma classe denominada “Media”, definindo 
atributos e métodos para calcular a média aritmética entre duas notas. Será utilizada uma caixa de 
mensagens para imprimir o resultado. O exemplo será realizado por meio da importação da classe 
JOptionPane do pacote swing do Java, com o uso da ferramenta Astah Community, que utiliza as 
notações UML (linguagem unificada de modelagem).
As imagens do vídeo a seguir possuem audiodescrição. Para acessar o recurso, 
clique aqui 
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://creator-files.plataforma.grupoa.education/undefined/REVISADO_9107_Audiodescricao_Dica_Professor-2025-09-01T16:40:05-03:00.docx
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/b24abb8daf3af45078ff6415eb69fc6b
Exercícios
1) 
O conceito de encapsulamento está intimamente ligado à segurança e à organização interna 
dos dados em POO, permitindo esconder os detalhes de implementação.
Analise o código a seguir:
public class Conta { 
 private double saldo;
 public void depositar(double valor) { 
 if (valor > 0) saldo += valor; 
 }
 public double getSaldo() { 
 return saldo; 
 } 
} 
Agora, assinale a alternativa que descreve corretamente uma característica do 
encapsulamento em Java.
A) O atributo saldo é público e acessível diretamente fora da classe.
B) O método depositar é responsável por criar novas instâncias de conta.
C) O encapsulamento permite que o saldo seja acessado somente por métodos definidos na 
própria classe.
D) getSaldo() invalida o princípio do encapsulamento ao expor o valor do atributo.
E) O método depositar deve, obrigatoriamente, retornar o novo saldo para manter o 
encapsulamento.
As práticas modernas de desenvolvimento em Java valorizam o uso de construtores 
personalizados e sobrecarregados, o que permite versatilidade na criação de objetos.
Considere o trecho de código abaixo:
public class Produto { 
 private String nome; 
 private double preco;
2) 
 public Produto() { 
 this.nome = "Sem nome"; 
 this.preco = 0.0; 
 }
 public Produto(String nome, double preco) { 
 this.nome = nome; 
 this.preco = preco; 
 } 
} 
Agora, assinale a alternativa que descreve corretamente um conceito avançado relacionado 
à sobrecarga de construtores.
A) O construtor-padrão com parâmetros sobrescreve obrigatoriamente o construtor sem 
parâmetros.
B) A classe Produto viola o encapsulamento por não declarar métodos get e set.
C) O uso de dois construtores com assinaturas diferentes caracteriza a sobrecarga, que permite 
múltiplas formas de instanciar objetos.
D) A palavra-chave this impede a criação de instâncias com valores dinâmicos.
E) O compilador não reconhece mais de um construtor dentro da mesma classe.
3) 
O encapsulamento é um dos pilares da POO e representa uma barreira lógica entre o estado 
interno de um objeto e o ambiente externo. Ao adotar métodos acessores, como get e set, o 
programador é capaz de controlar o acesso aos dados e proteger a integridade da aplicação.
Em uma aplicação orientada a objetos desenvolvida em Java, foi necessário restringir o 
acesso direto aos atributos de uma classe para garantir segurança e controle dos dados. 
Diante desse cenário, assinale a alternativa que justifica corretamente a adoção de métodos 
getter e setter em uma classe Java:
A) Getters e setters tornam o código mais extenso e, por isso, são usados apenas como boa 
prática estética.
B) Esses métodos permitem acesso direto aos atributos públicos, substituindo a necessidade de 
construtores.
C) O uso de métodos acessores compromete a modularidade, mas é exigido pelo compilador em 
tempo de execução.
D) Esses métodos permitem que atributos privados sejam lidos ou modificados de maneira 
controlada, aplicando regras de validação, se necessário.
E) Getters e setters são utilizados apenas quando os atributos precisam ser herdados por 
subclasses.
4) 
Compreender a estrutura e o comportamento de uma classe em Java é essencial para 
projetar sistemas orientados a objetos robustos. Uma classe bem construída deve refletir a 
coesão dos dados e comportamentos, respeitando os princípios da linguagem.
Considerando a estrutura e os conceitos fundamentais de uma classe em Java, analise se as 
afirmativas a seguir são verdadeiras (V) ou falsas (F):
( ) A ausência de um construtor explícito impede que objetos sejam instanciados.
( ) A definição de métodos dentro da classe permite que objetos executem comportamentos 
específicos.
( ) O uso de classes aninhadas é proibido em Java por razões de segurança e modularidade.
( ) É possível declarar atributos sem inicializá-los, desde que sejam privados.
( ) O uso do modificador class permite a criação de interfaces e classes concretas com a 
mesma palavra-chave. 
Assinale a alternativa que indica a sequência correta:
A) F – V – F – V – F.
B) V – F – V – F – V.
C) F – F – V – F – V.
D) V – F – F – F – V.
E) F – V – V – V – F.
O ciclo de vida de um objeto em Java envolve criação, uso e descarte, sendo essencial para a 
eficiência e estabilidade de um sistema. Compreender as regras que regem a instanciação e o 
comportamento dos objetos garante maior domínio sobre a arquitetura da aplicação.
Com base nos conceitos de instanciação e uso de objetos em Java, analise se as afirmativas a 
seguir são verdadeiras (V) ou falsas (F):
5) 
( ) Objetos em Java podem ser criados por meio do operador new ou diretamente por 
chamada ao construtor da classe.
( ) A sobrecarga de métodos permite que métodos com o mesmo nome, mas com diferentes 
assinaturas, coexistam em uma classe.
( ) A palavra-chave main deve, obrigatoriamente, ser utilizada em qualquer classe que declare 
métodos.
( ) A visibilidade private impede que os próprios métodos da classe modifiquem os atributos 
declarados.
( ) Cada objeto instanciado em Java tem seu próprio conjunto de atributos, 
independentemente de outras instâncias da mesma classe. 
Assinale a alternativa que indica sequência correta:
A) V – F – V – V – F.
B) F – F – V – F – V. 
C) V – F – V – F – F.
D) F – V – V – V – V.
E) F – V – F – F – V.
Na prática
A criação de sistemas eficientes e bem estruturados exige a adoção de paradigmas que favoreçam a 
organização e a reutilização do código. Entre esses paradigmas, a POO se destaca por permitir que 
o desenvolvedor modele soluções inspiradas em entidades do mundo real, promovendo maior 
clareza e modularidade no desenvolvimento.
A utilização de classes, atributos e métodos se torna, portanto, uma base sólida para a construção 
de aplicações escaláveis e alinhadas às boas práticas de engenharia de software. A POO é um 
padrão de desenvolvimento de software suportado por diversas linguagens e muito utilizado no 
mercado em diferentes contextos, como aplicativos web, mobile e games (Horstmann, 2009).
Neste Na Prática, acompanhe um exemplo de criação de classes e objetos que reflete na inserção 
de elementos na programação.
A imagem a seguir possui audiodescrição. Para acessar o recurso, clique aqui
https://creator-files.plataforma.grupoa.education/undefined/REVISADO_9107_Audiodescricao_Na_Pratica-2025-09-01T16:43:43-03:00.docx
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
 
https://creator-files.plataforma.grupoa.education/learning-object/63291/Na-Pra_tica-2025-08-11T15:52:41-03:00.png
Saiba mais
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Programação orientada a objetos | explicação simples
Neste vídeo, de um jeito leve e claro, você vai descobrir como funciona a POO, além de ver 
exemplos práticos, que fazem sentido no diaa dia.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
ComFAPOO: método de ensino de programação orientada a 
objetos baseado em aprendizagem significativa e computação 
física
É possível aprender POO de forma prática, usando sensores e dispositivos físicos. Neste artigo, 
conheça o método ComFAPOO (computação física para aprendizagem de programação orientada a 
objetos), uma abordagem criativa que aproxima teoria e realidade, ideal para quem quer ensinar ou 
aprender programação.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
A linguagem de programação orientada a objetos e seus 
benefícios
Esse texto revela por que dominar a POO é importante e como esse paradigma vai além da teoria, 
transformando a forma de pensar, estruturar e manter sistemas modernos.
https://www.youtube.com/embed/pbb0jzXt_xA?si=WmH_bQQOkjhRrA3T
https://journals-sol.sbc.org.br/index.php/rbie/article/view/2851/2173
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://imasters.com.br/carreira-dev/a-linguagem-de-programacao-orientada-a-objetos-e-seus-beneficios

Mais conteúdos dessa disciplina