Campos (Atributos)
Parte da seção Programação Orientada a Objetos do Journey de Java da Coddy — lição 6 de 87.
Campos (atributos) são variáveis que armazenam dados dentro de uma classe. Eles são geralmente private e acessados por meio de métodos getter e setter.
Declarando campos
public class Person {
private String name;
private int age;
}Adicionando getters e setters
public class Person {
private String name;
private int age;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
}Usando a classe
Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName()); // AliceTornar os campos private é chamado de encapsulamento. Ele protege os dados controlando o acesso por meio de métodos, permitindo que você adicione validação em setters.
Desafio
MédioCrie uma classe BankAccount com campos privados e métodos getter:
- Campos privados:
accountName(String) ebalance(double) - Um construtor para definir ambos os campos
- Métodos getter para cada campo
- Método
deposit()para adicionar dinheiro - Método
withdraw()que retorna "Success" ou "Insufficient funds"
Folha de consulta
Campos (atributos) são variáveis que armazenam dados dentro de uma classe. Eles geralmente são private e acessados por meio de métodos getter e setter.
Declarando campos privados:
public class Person {
private String name;
private int age;
}Adicionando getters e setters:
public class Person {
private String name;
private int age;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
}Usando a classe:
Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName()); // AliceTornar os campos private é chamado de encapsulamento. Isso protege os dados controlando o acesso por meio de métodos, permitindo que você adicione validação nos setters.
Experimente você mesmo
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
double initial = Double.parseDouble(scanner.nextLine());
double deposit = Double.parseDouble(scanner.nextLine());
BankAccount account = new BankAccount(name, initial);
System.out.println("Account: " + account.getAccountName());
System.out.println("Balance: " + account.getBalance());
account.deposit(deposit);
System.out.println("After deposit: " + account.getBalance());
String result = account.withdraw(2000);
System.out.println("Withdraw 2000: " + result);
System.out.println("Final Balance: " + account.getBalance());
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Fundamentos de POO
Arquivos ExternosIntrodução à POOClasses vs ObjetosA Palavra-chave thisMétodosCampos (Atributos)Método ConstrutorSobrecarga de ConstrutorRecapitulação - Calculadora Simples4Herança
Herança Básica (extends)A Palavra-chave superSobrescrita de Método (@Override)Encadeamento de ConstrutoresA Classe ObjectHerança Simples e MultinívelPor que não há Herança Múltipla de ClassesRecapitulação - Hierarquia de Funcionários7Métodos Especiais e a Classe Object
Método toString()equals() e hashCode()Método clone()compareTo() e ComparableInterface ComparatorRecapitulação - Ordenação Personalizada2Modificadores de Acesso e Encapsulamento
Visão Geral dos Níveis de AcessoMétodos Getter e SetterOcultação de InformaçõesA Palavra-chave finalRecapitulação - Gerenciador de Conta Bancária5Polimorfismo
Fundamentos de Sobrecarga de MétodosSobrescrita de Métodos (Tempo de Execução)Upcasting e DowncastingO Operador instanceofClasses e Métodos AbstratosRecapitulação - Calculadora de Formas8Conceitos Avançados de OOP
Composição vs HerançaAgregação vs ComposiçãoClasses Internas, Aninhadas e AnônimasEnums e Métodos de EnumRecords (Java 16+)Classes Seladas (Java 17+)11Padrões de Projeto Parte 1
Introdução aos Padrões de ProjetoPadrão SingletonPadrão FactoryPadrão BuilderPadrão ObserverPadrão Strategy3Propriedades de Classe e Membros Estáticos
Variáveis de Instância vs EstáticasMétodos EstáticosBlocos EstáticosConstantes (static final)Recapitulação - Contador e Utilitário6Interfaces e Classes Abstratas
Introdução às InterfacesImplementando InterfacesImplementação de Múltiplas InterfacesDefault e Static em InterfacesClasses Abstratas vs InterfacesInterfaces FuncionaisRecapitulação - Sistema de Pagamento9Generics
Introdução a GenericsClasses GenéricasMétodos GenéricosParâmetros de Tipos DelimitadosWildcards (?, extends, super)Recapitulação - Container Genérico12Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão CompositePadrão Iterator