Абстракция
Абстракция - это процесс извлечения общих свойств и полей всех существующих и предполагаемых реализаций.
Например:
Автомобиль - это абстракция для седана, хэтчбека, внедорожника, купе, кабриолета.
Автомобиль будет иметь все свойства и поля, общие для всех типов автомобилей.
Инкапсуляция
Инкапсуляция - это процесс сокрытия нежелательных деталей от пользователя. Этот термин происходит от капсулы. Также как лекарство скрыто от пользователя внутри капсулы. Детали различных машин и оборудования и устройств, начиная от миксеров, велосипедов, стиральных машин, радио, телевидения и самолетов. Вы не хотите, чтобы все детали машины были видны пользователю.
В терминах программирования:
Давайте рассмотрим класс автомобилей.
В приведенном ниже примере все, что нужно знать пользователю, это повернуть ключ (метод turnKey ()), он не знает о внутренних функциях. Пользователю не нужно знать ни о внутренних функциях, ни о внутренних компонентах.
В этом случае все приватные методы являются внутренними функциями, а приватные поля, такие как «Piston p1», являются внутренними данными, которые пользователю не нужно знать.
public class Car{
private void startMotor(){ //do something }
private void generateVoltage(){ //do something }
private void sparkPlugIgnition(){ //do something }
private void fuelFlowFromTankToInjector(){ //do something }
private void pushPistonsDown() {
p1.doAction();
p2.doAction();
//do something }
private void moveCrankShaft(){ //do something }
private Piston p1;
private Piston p2;
public void turnKey(){
startMotor();
generateVoltage();
sparkPlugIgnition();
fuelFlowFromTankToInjector();
pushPistonsDown();
moveCrankShat();
...
}
}