Java Orientado a Objetos: Fields

Java Orientado a Objetos: Fields

No universo da programação orientada a objetos em Java, as variáveis que compõem uma classe são chamadas de fields, também conhecidas como campos ou atributos. Eles são fundamentais na definição das características e do estado de um objeto. Ao explorar o papel dos fields na prática, vamos entender como eles são definidos, acessados e manipulados dentro de uma estrutura de classe no Java.

Considere um exemplo prático onde temos duas classes distintas em um pacote chamado com.mycompany.demonstracaopoo. A classe principal é DemonstracaoPoo.java, e a outra é Funcionario.java, representando um funcionário com seus respectivos atributos e comportamentos.

Conteudo Classe “DemonstracaoPoo”

Conteudo Classe “Funcionario”

 

O Papel dos Fields em uma Classe

Imagine um funcionário em uma empresa: ele tem um nome, uma quantidade de horas trabalhadas e um pagamento a receber. Cada um desses aspectos pode ser representado em uma classe Java como um field. A classe Funcionario terá campos correspondentes a essas informações. O campo nomeDoFuncionario armazena o nome, horasTrabalhadas indica as horas de trabalho e um valor fixo por hora, valorHora, que é utilizado para calcular o pagamento.

Definindo Fields de Classe

Os fields são declarados dentro de uma classe, mas fora de qualquer método ou construtor. Eles são definidos especificando o tipo de dado seguido pelo nome do campo. Por exemplo:

Esses campos foram definidos como private, o que significa que eles só podem ser acessados diretamente dentro da própria classe Funcionario. Isso é uma prática de encapsulamento para proteger os dados do acesso externo direto.

Acessando e Modificando Fields

Embora os campos privados não possam ser acessados diretamente de fora da classe, eles podem ser modificados por métodos definidos na classe, conhecidos como getters e setters. Por exemplo, o método sethorasTrabalhadas permite que o usuário defina o número de horas trabalhadas, desde que seja um valor positivo:

O método gethorasTrabalhadas, por sua vez, permite recuperar o valor do campo horasTrabalhadas.

Construtores e Fields

Os construtores são usados para inicializar os objetos com valores específicos para seus fields. Na classe Funcionario, há dois construtores. O primeiro recebe um único nome:

O segundo aceita um primeiro nome e um sobrenome, combinando-os para formar o nome completo do funcionário:

Calculando o Pagamento

Os métodos calculaPagamento mostram a flexibilidade em Java para lidar com diferentes cenários. O primeiro não recebe argumentos e simplesmente calcula o pagamento multiplicando as horas trabalhadas pelo valor fixo por hora:

O segundo método aceita um bônus e um adicional (allowance) que são somados ao pagamento total:

Usando a Classe DemonstracaoPoo

A classe DemonstracaoPoo serve como ponto de entrada para o nosso programa Java e interage com a classe Funcionario. Ela cria um objeto Funcionario1 e utiliza os métodos da classe Funcionario para definir as horas trabalhadas e calcular o pagamento.

Compreendendo a Saída do Programa

Quando o método sethorasTrabalhadas é invocado com um valor negativo, o programa imprime mensagens de erro, porque a classe Funcionario foi projetada para proteger a integridade do campo horasTrabalhadas. Da mesma forma, o pagamento é calculado com base nas horas validadas.

Conclusão

Fields são uma parte integrante de qualquer classe em Java, fornecendo os meios pelos quais um objeto pode manter seu estado. A classe Funcionario é um exemplo claro de como campos são usados em conjunto com construtores, métodos e a lógica de negócios para criar um objeto com características e comportamentos. Ao dominar o uso de fields, construtores e métodos, você está no caminho certo para se tornar proficiente em Java e programação orientada a objetos. A estrutura que aprendemos aqui com com.mycompany.demonstracaopoo.Funcionario e com.mycompany.demonstracaopoo.DemonstracaoPoo fornece uma base sólida para expandir seus conhecimentos e habilidades na criação de programas mais complexos e robustos.

Scroll to Top