|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.05.2018, 10:04 | #1 |
Форумчанин
Регистрация: 30.04.2018
Сообщений: 171
|
Зачем в Java нужны все эти "public" и "private"?
Зачем в Java нужны все эти "public" и "private"?
|
06.05.2018, 11:24 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Чтобы ограничивать доступ к каким-то элементам класса. Например это дает возможность изменять (рефакторить) что угодно в private функциях не боясь сломать код использующий этот класс (особенно важно для библиотек).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
06.05.2018, 20:09 | #3 | ||
Форумчанин
Регистрация: 30.04.2018
Сообщений: 171
|
Цитата:
Цитата:
1) public Puppy(String name) 2) Puppy myPuppy = new Puppy( "Багет" ) Последний раз редактировалось Вадим Мошев; 13.06.2018 в 21:15. |
||
10.05.2018, 13:18 | #4 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 60
|
Конструктором является 1 пункт. Конструктор вызывается при создании обьекта. Как раз во втором пункте ты передаешь конструктору стоку "Багет"
|
12.06.2018, 11:48 | #5 |
Форумчанин
Регистрация: 30.04.2018
Сообщений: 171
|
|
12.06.2018, 22:14 | #6 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
|
13.06.2018, 23:32 | #7 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
|
13.06.2018, 23:55 | #8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну если все подряд public, то все методы могут вызываться где угодно (а если это библиотека, то еще и в чужих проектах). А если private, то точно известно, что нигде больше это не вызывается и надо только не трогать public интерфейс.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
14.06.2018, 00:12 | #9 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Это понятно. Для этого инцапсуляцию и придумали, то есть, сокрытие полей и свойств объекта за private спецификатором и взаимодействие с объектом через публичные методы и только через них.
Я же хотел сказать, что спецификаторы доступа не окажут никакого влияния на то, как я буду рефакторить код. Захотел отрефакторить public интерфейс - сделал это. |
17.06.2018, 21:38 | #10 |
Форумчанин
Регистрация: 20.11.2008
Сообщений: 121
|
етить, слово рефакторить знает а зачем паблик и прайвет не знает... вот это атрибуты XDDD погугли определение инкапсуляция - это одна из основ объектно ориентированного, поймёшь зачем прайвет и паблик, заодно разберись с наследованием и полиморфизмом
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения. Последний раз редактировалось Alexmur07; 17.06.2018 в 21:53. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Для заданной строки определить все входящие в неё символ. Например: строка "abccbbabbac" состоит из символов "a", "b" и "c" | Sandakan01 | Помощь студентам | 1 | 24.02.2016 03:20 |