Menu
Coddy logo textTech

Поля (атрибуты)

Часть раздела Объектно-ориентированное программирование путешествия по Java на Coddy — урок 6 из 87.

Поля (атрибуты) — это переменные, которые хранят данные внутри класса. Обычно они являются private и доступ к ним осуществляется через методы геттеры и сеттеры.

Объявление полей

public class Person {
    private String name;
    private int age;
}

Добавление геттеров и сеттеров

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;
        }
    }
}

Использование класса

Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName());  // Alice

Объявление полей private называется инкапсуляцией. Это защищает данные, контролируя доступ через методы, что позволяет добавлять валидацию в сеттеры.

challenge icon

Задание

Средне

Создайте класс BankAccount с приватными полями и методами-геттерами:

  • Приватные поля: accountName (String) и balance (double)
  • Конструктор для установки обоих полей
  • Методы-геттеры для каждого поля
  • Метод deposit() для внесения денег
  • Метод withdraw(), который возвращает "Success" или "Insufficient funds"

Шпаргалка

Поля (атрибуты) — это переменные, которые хранят данные внутри класса. Обычно они помечаются модификатором private, а доступ к ним осуществляется через методы геттеры (getter) и сеттеры (setter).

Объявление приватных полей:

public class Person {
    private String name;
    private int age;
}

Добавление геттеров и сеттеров:

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;
        }
    }
}

Использование класса:

Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName());  // Alice

Ограничение доступа к полям с помощью private называется инкапсуляцией. Это защищает данные, контролируя доступ через методы, что позволяет добавлять проверку данных (валидацию) в сеттерах.

Попробуйте сами

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());
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование