Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Getter e Setter | Section
Fundamentos da Programação Orientada a Objetos em Java

bookGetter e Setter

Deslize para mostrar o menu

A melhor forma de contornar o modificador de acesso private

Todos os programadores Java utilizam construções chamadas getters e setters.

Getters e setters são métodos que seguem um padrão específico. Eles são usados para contornar o modificador de acesso private e manipular efetivamente campos de outra classe.

O que fazem os Getters e Setters

De forma simples, o setter permite atribuir um valor a um campo específico protegido pelo modificador de acesso private, enquanto o getter permite recuperar o valor de um campo protegido pelo modificador de acesso private.

A sintaxe para um getter e um setter:

Main.java

Main.java

copy
123456789
// getter public fieldType getFieldName() { return field; } // setter public void setFieldName(fieldType field) { this.field = field; }

Como pode ser visto no código acima, utilizamos a convenção de nomenclatura para os métodos getFieldName() e setFieldName(). Portanto, se tivermos um campo private String name e criarmos um getter e um setter com os nomes getName() e setName(), respectivamente. Também vale ressaltar que o getter retorna um valor do mesmo tipo do campo name, enquanto o setter recebe um parâmetro do mesmo tipo do campo name.

Isso nos permite acessar campos que estão protegidos pelo modificador de acesso private. Vamos analisar um exemplo de acesso a um campo private da classe Person na classe main:

Main.java

Main.java

copy
123456789101112131415161718192021
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person(); bob.setName("Bob"); System.out.println(bob.getName()); } } class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }

Como você pode ver, utilizamos o setter para definir um valor para o campo name, e depois usamos o getter para exibir o valor do campo name na tela. Preste atenção à sintaxe do getter e do setter, assim como ao fato de que o campo name na classe Person está protegido pelo modificador de acesso private.

Construtor vs Getter/Setter

O que é melhor utilizar: inicialização por meio de um construtor + sobrescrita do método toString(), ou o uso de getters e setters?

Definitivamente, é melhor utilizar getters e setters para acessar campos protegidos pelo modificador de acesso private. Isso proporciona maior flexibilidade ao código e melhora sua legibilidade. Ao ver o uso do método getName() no código, entende-se imediatamente que esse método recupera o campo chamado name. O mesmo se aplica ao uso do método setName(), entende-se imediatamente que está sendo atribuído um valor específico ao campo para o objeto da classe em que é utilizado. Se outras pessoas lerem seu código, ficarão satisfeitas ao ver getters e setters.

Também vale ressaltar que cada campo exige seu próprio getter e setter. Se uma classe possui dois campos protegidos pelo modificador de acesso private, a classe deve ter um getter para cada campo, ou seja, dois getters e dois setters. Vamos analisar um exemplo em que adicionamos um campo age à classe Person:

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person(); bob.setName("Bob"); bob.setAge(27); System.out.println("Person's name: " + bob.getName() + ", Person's age: " + bob.getAge()); } } class Person { private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

Como você pode ver, criamos um getter e um setter para cada campo da classe Person. No método main, inicializamos os campos usando o setter e exibimos seus valores na tela utilizando o getter. O uso desses métodos é muito conveniente, e você irá utilizá-los frequentemente no futuro.

1. Qual é o propósito de utilizar getters e setters?

2. Qual é a sintaxe de um método getter em Java?

3. Qual é a sintaxe de um método setter em Java?

question mark

Qual é o propósito de utilizar getters e setters?

Select the correct answer

question mark

Qual é a sintaxe de um método getter em Java?

Select the correct answer

question mark

Qual é a sintaxe de um método setter em Java?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 14

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 1. Capítulo 14
some-alt