Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Getter e Setter | Classes Avançadas
Java Avançado
course content

Conteúdo do Curso

Java Avançado

Java Avançado

1. Estrutura Profunda do Java
2. Métodos
3. String Avançado
4. Classes
5. Classes Avançadas

book
Getter e Setter

A melhor maneira 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 campos de outra classe de forma eficaz.

O que fazem 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. Vale ressaltar também 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 pode ser observado, utiliza-se o setter para definir um valor para o campo name, e em seguida utiliza-se o getter para exibir o valor do campo name na tela. Atenção à sintaxe do getter e setter, bem como ao fato de que o campo name na classe Person está protegido pelo modificador de acesso private.

Construtor vs Getter/Setter

Qual é a melhor abordagem: inicialização por meio de um construtor + sobrescrita do método toString(), ou utilização de getters e setters?

É preferível 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 visualizar o uso do método getName() no código, entende-se imediatamente que esse método recupera o campo chamado name. O mesmo ocorre ao observar o uso do método setName(), compreende-se de imediato que está sendo atribuído um valor específico ao campo do objeto da classe em que é utilizado. Se outras pessoas lerem seu código, ficarão satisfeitas ao encontrar getters e setters.

Vale ressaltar também que cada campo necessita de seu próprio getter e setter. Se uma classe possui dois campos protegidos pelo modificador de acesso private, a classe deve conter 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 utilizando o setter e exibimos seus valores na tela utilizando o getter. O uso desses métodos é muito conveniente, e você irá utilizá-los com frequência 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 5. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

course content

Conteúdo do Curso

Java Avançado

Java Avançado

1. Estrutura Profunda do Java
2. Métodos
3. String Avançado
4. Classes
5. Classes Avançadas

book
Getter e Setter

A melhor maneira 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 campos de outra classe de forma eficaz.

O que fazem 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. Vale ressaltar também 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 pode ser observado, utiliza-se o setter para definir um valor para o campo name, e em seguida utiliza-se o getter para exibir o valor do campo name na tela. Atenção à sintaxe do getter e setter, bem como ao fato de que o campo name na classe Person está protegido pelo modificador de acesso private.

Construtor vs Getter/Setter

Qual é a melhor abordagem: inicialização por meio de um construtor + sobrescrita do método toString(), ou utilização de getters e setters?

É preferível 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 visualizar o uso do método getName() no código, entende-se imediatamente que esse método recupera o campo chamado name. O mesmo ocorre ao observar o uso do método setName(), compreende-se de imediato que está sendo atribuído um valor específico ao campo do objeto da classe em que é utilizado. Se outras pessoas lerem seu código, ficarão satisfeitas ao encontrar getters e setters.

Vale ressaltar também que cada campo necessita de seu próprio getter e setter. Se uma classe possui dois campos protegidos pelo modificador de acesso private, a classe deve conter 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 utilizando o setter e exibimos seus valores na tela utilizando o getter. O uso desses métodos é muito conveniente, e você irá utilizá-los com frequência 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 5. Capítulo 5
some-alt