Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 53

Что такое инкапсуляция?

23.11.2018, 12:16. Показов 1441. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что такое инкапсуляция и можете пример показать ?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2018, 12:16
Ответы с готовыми решениями:

Что такое монитор и что такое мьютекс? Это же разные вещи?
Здравствуйте. В разных айти-статьях по-разному используют эти термины, причём часто их путают друг с другом. Хотелось бы, чтобы кто-нибудь...

Что такое инкапсуляция?
объясните пожалуйста что такое инкапсуляция и на примерах!

Что такое Инкапсуляция?
Приятной пятницы всем. Начну с примера. Пусть есть у нас некий класс "A", одно из полей которого это List экземпляров другого класса...

9
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
23.11.2018, 12:38

Не по теме:

про гугл слышал?


https://ru.wikipedia.org/wiki/... 0%B8%D0%B5)
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 53
23.11.2018, 12:49  [ТС]
Там примера не понял
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
23.11.2018, 14:25
Лучший ответ Сообщение было отмечено Damdador как решение

Решение

от "в капсуле". сокрытие данных.
Цитата Сообщение от Damdador Посмотреть сообщение
можете пример показать
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Person {
    private String name;
    private int age;
 
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public int getAge() {
        return age;
    }
}
Добавлено через 7 минут
name не изменишь, после создания объекта.
2
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
23.11.2018, 14:45
Можно для начала разобраться с модификаторами доступа и их применением
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
23.11.2018, 15:06
Цитата Сообщение от Aviz__ Посмотреть сообщение
не изменишь, после создания объекта.
Так себе пример:
1) изменишь через setName
2) выставление приватных полей через геттеры и сеттеры не является инкапсуляцией.

Например
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import java.util.function.IntConsumer;
import java.util.stream.IntStream;
 
public final class IntRange {
 
    public static IntRange of(int start, int end) {
        if (start > end) {
            throw new IllegalArgumentException("start > end: " + start + " .. " + end);
        }
        return new IntRange(start, end);
    }
 
    private int start;
    private int end;
 
    private IntRange(int start, int end) {
        this.start = start;
        this.end = end;
    }
 
    public void shiftStart(int delta) {
        if (delta == 0) {
            return;
        }
        synchronized (this) {
            final long newStart = (long) start + delta;
            if (newStart < Integer.MIN_VALUE) {
                start = Integer.MIN_VALUE;
            } else if (newStart > Integer.MAX_VALUE) {
                start = Math.min(Integer.MAX_VALUE, end);
            } else {
                start = Math.min((int) newStart, end);
            }
        }
    }
 
    public void shiftEnd(int delta) {
        if (delta == 0) {
            return;
        }
        synchronized (this) {
            final long newEnd = (long) end + delta;
            if (newEnd < Integer.MIN_VALUE) {
                end = Math.max(start, Integer.MIN_VALUE);
            } else if (newEnd > Integer.MAX_VALUE) {
                end = Integer.MAX_VALUE;
            } else {
                end = Math.max(start, (int) newEnd);
            }
        }
    }
 
    public IntRange copy() {
        final int s;
        final int n;
        synchronized (this) {
            s = start;
            n = end;
        }
        return new IntRange(s, n);
    }
 
    public IntStream stream() {
        final int s;
        final int n;
        synchronized (this) {
            s = start;
            n = end;
        }
        return IntStream.range(s, n);
    }
 
    public void forEach(IntConsumer action) {
        final int s;
        final int n;
        synchronized (this) {
            s = start;
            n = end;
        }
        for (int i = s; i < n; i++) {
            action.accept(i);
        }
    }
}
2
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
23.11.2018, 15:10
Ну да, и геттеры-сеттеры подходят и модификаторы доступа, и любое сокрытие данных с полиморфизмом и наследованием или статическими методами и методами по умолчанию.
Да и я думаю что сложно что-то одно с ООП вычленить и показать его в полной мере без остального. ИМХО.
Наверное уже повторюсь, не зря книги такие большие и приходится много учить, одним примером так просто не одделаешся.
Это я к чему, нет я за любую помощь, просто предостерегаю от "выставления галочки - "Я знаю это"", и за формулировки "почему именно тут - именно так". ))
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
23.11.2018, 15:46
Цитата Сообщение от korvin_ Посмотреть сообщение
изменишь через setName
а где ты его увидел в моем примере?!
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
23.11.2018, 17:09
Цитата Сообщение от Aviz__ Посмотреть сообщение
а где ты его увидел в моем примере?!
Пардон, увидел setAge и автоматически подумал, что там и setName есть. Тем не менее, такой класс всё равно остаётся обычной структурой с read-only полем, фактически ничего не инкапсулирующей.
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 53
23.11.2018, 21:00  [ТС]
Спасибо))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.11.2018, 21:00
Помогаю со студенческими работами здесь

Delphi - что такое инкапсуляция
Скажите пожалуйста что такое инкапсуляция?

Что такое наследование, инкапсуляция и полиморфизм
Здравстуйте! Помогите, пожалуйста, ответить на несколько вопросов: 1. Что такое наследование, инкапсуляция и полиморфизм. и немного о...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое IIS и что такое PWS? Почему одно без другого не работает?
вот уже второй день пытаюсь немного разобраться в АСП. накидал небольшую тестовую страничку. но с серверами я ничего не понимаю! что...

Что такое напряжение и что такое сила тока с позиции заряженных частиц
Объясните пожалуйста, что такое напряжение и что такое сила тока с позиции заряженных частиц. Например, имеется проводник в цепи, чем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru