В чем разница между наследованием public
, private
и protected
в C ++? Все вопросы, которые я нашел на SO, касаются конкретных случаев.
Python дает нам возможность создавать «закрытые» методы и переменные внутри класса, добавляя к имени двойные подчеркивания, например: __myPrivateMethod()
. Как же тогда можно это объяснить?
>>> class MyClass:
... def myPublicMethod(self):
... print 'public method'
... def __myPrivateMethod(self):
... print
... Какая точная разница между инкапсуляцией и абстракцией?
Можете ли вы сказать мне, в чем разница между абстракция и информации, скрывающей в разработке программного обеспечения?
Я в замешательстве. Абстракция скрывает детали реализации и сокрытие информации обобщает все детали чего-либо.
Обновление: Я нашел хороший ответ для этих трех понятий.
...У меня есть два пакета в моем проекте: odp.proj
и odp.proj.test
. Есть определенные методы, которые я хочу видеть только для классов в этих двух пакетах. Как я могу это сделать?
РЕДАКТИРОВАТЬ: Если нет концепции подпакета в Java, есть ли
...Да, я полностью осознаю, что то, о чем я спрашиваю, совершенно глупо, и что любой, кто хотел бы попробовать такую вещь в производственном коде, должен быть уволен и / или застрелен. В основном я смотрю, можно ли
...В C ++ я часто делал класс модульных тестов другом класса, который я тестирую. Я делаю это потому, что иногда я чувствую необходимость написать модульный тест для закрытого метода или, возможно, мне нужен доступ к какому-либо приватному члену, чтобы мне
...Что такое инкапсуляция с простым примером в php?
Вдохновленный различными вопросами, связанными со схемой, которые я видел. , ,
Цепочка владения позволяет мне выполнить GRANT EXECUTE для хранимой процедуры без явных разрешений для таблиц, которые я использую, если хранимая процедура и таблицы находятся в одной и той же
...Возможно ли сделать заголовочный файл C ++ (. h) который объявляет класс и его открытые методы, но не определяет частные члены в этом классе? Я нашел несколько страниц , которые говорят, что вы должны объявить класс и все его члены
...Конструктор дочернего класса "Цезарь" выдает ошибку. Он говорит, что имя, тип недоступен из-за уровня защиты. Как так? Поскольку это дочерний класс, производный от класса "Cipher", он не должен выдавать ошибку, подобную этой. Как я могу преодолеть эту ситуацию. Но я
...Какие существуют виды инкапсуляции?
Прав ли я, полагая, что это в основном относится к центральным концепциям ОО, таким как абстракция, полиморфизм и наследование?
Мое понимание инкапсуляции состоит в том, что это метод сокрытия данных / функциональности, но я никогда не
...При реализации установщика для свойства List (в C #) это плохо писать так:
private List _TheList = new List();
public List TheList
{
get { return _TheList; }
set { _TheList = value; }
}
Если не записано как:
private
... Пожалуйста, смотрите следующий скрипт:
var x = function(param){
this.data=param;
this.y = function(){
alert(this.data)
}
return this;
}
/*
x.prototype.z = function(){
alert(this.data);
}
*/
x(123).y();
x(123).z(); // This should behave same as y()
Когда я звоню x (123). y ()
...