0% нашли этот документ полезным (0 голосов)
1 просмотров4 страницы

Labka 10 Java

Загружено:

m.nureke0705
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
1 просмотров4 страницы

Labka 10 Java

Загружено:

m.nureke0705
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd

Лабораторная работа №10

Тема: Encapsulation. Getters and setters

Цель работы
 Изучить принцип инкапсуляции в объектно-ориентированном программировании
 Научиться использовать модификаторы доступа (private, public)
 Освоить создание геттеров и сеттеров
 Развить навыки защиты данных внутри классов

Краткая теория
Инкапсуляция — это принцип ООП, который скрывает внутреннее состояние объекта и
предоставляет доступ к нему только через специальные методы.

Модификаторы доступа:

 private — доступ только внутри класса


 public — доступ откуда угодно
 protected — доступ внутри пакета и наследникам

Геттеры и сеттеры:

 Геттер (getter) — метод для получения значения приватного поля


 Сеттер (setter) — метод для установки значения приватного поля

Пример:
java
public class Person {
private String name; // приватное поле

// Геттер
public String getName() {
return name;
}

// Сеттер
public void setName(String name) {
[Link] = name;
}
}
Примеры

Пример 1. Простой класс с инкапсуляцией


java
public class Student {
private String name;
private int age;

public String getName() {


return name;
}

public void setName(String name) {


[Link] = name;
}

public int getAge() {


return age;
}

public void setAge(int age) {


if (age > 0 && age < 120) {
[Link] = age;
}
}
}

Пример 2. Использование геттеров и сеттеров


java
public class Main {
public static void main(String[] args) {
Student student = new Student();
[Link]("Аян");
[Link](20);

[Link]("Имя: " + [Link]());


[Link]("Возраст: " + [Link]());
}
}

Задания к лабораторной работе №10


Блок 1. Основы инкапсуляции

Задание 1
Создайте класс Book с приватными полями: title (название), author (автор), year (год издания).
Создайте геттеры и сеттеры для всех полей.

Задание 2
Создайте класс Product с приватными полями: name, price, quantity. Добавьте геттеры и
сеттеры. В сеттере для price добавьте проверку: цена не может быть отрицательной.

Задание 3
Создайте класс BankAccount с приватными полями: accountNumber, balance. Создайте геттер
для balance и методы deposit() и withdraw() вместо сеттера для баланса.

Блок 2. Валидация в сеттерах

Задание 4
Создайте класс User с полями: username, password, email. В сеттере для password проверьте,
чтобы длина пароля была не менее 6 символов.

Задание 5
Создайте класс Temperature с полем celsius. Добавьте геттер и сеттер. В сеттере ограничьте
диапазон от -273 до 1000 градусов.

Блок 3. Работа с массивами объектов

Задание 6
Создайте класс Student с полями: name, grade (оценка). Создайте массив из 3 студентов,
заполните данные через сеттеры и выведите информацию через геттеры.

Задание 7
Создайте класс Car с полями: brand, speed. Создайте метод accelerate(), который увеличивает
скорость на 10. Скорость не может быть отрицательной.

Блок 4. Итоговое задание

Задание 8
Создайте программу "Список контактов":

 Класс Contact с полями: name, phoneNumber, email


 Все поля приватные, с геттерами и сеттерами
 В сеттере для phoneNumber проверьте, чтобы номер содержал только цифры и имел длину
11 символов
 Создайте ArrayList<Contact>, добавьте 3 контакта, выведите их на экран

Контрольные вопросы
1. Что такое инкапсуляция и зачем она нужна?
2. Чем отличается private от public?
3. Для чего нужны геттеры и сеттеры?
4. Какую проверку можно добавить в сеттер?

Вывод
В ходе лабораторной работы был изучен принцип инкапсуляции в Java, освоено
использование модификаторов доступа private и public, а также создание геттеров и сеттеров
для защиты и контроля доступа к данным класса.

Вам также может понравиться