kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

Классы. Инкапсуляция. Наследование

Нажмите, чтобы узнать подробности

В данной были рассмотрены ключевые понятия ООП – объект и класс. Далее были описаны основные свойства объектной модели – инкапсуляция, наследование.

 Объектно - ориентированное программирование (ООП) – методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования. Состоит из:

  • Инкапсуляции
  • Наследования
  • Полиморфизма
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

Просмотр содержимого документа
«Классы. Инкапсуляция. Наследование»

Классы. Инкапсуляция. Наследование

Классы. Инкапсуляция. Наследование

ООП – объектно-ориентированное программирование

ООП – объектно-ориентированное программирование

  • Методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования.
  • Образ мышления при котором мы представляем то что есть в коде как объекты реального мира. Проще будет вспомнить то что было на прошлом уроке, а именно классы Человек и Машина. Это объекты реального мира, части которых мы переносим в программы с требующимся нам функционалом.
Основные принципы ООП

Основные принципы ООП

  • Абстракция — отделение концепции от ее экземпляра;
  • Полиморфизм — реализация задач одной и той же идеи разными способами;
  • Наследование — способность объекта или класса базироваться на другом объекте или классе. Это главный механизм для повторного использования кода. Наследственное отношение классов четко определяет их иерархию;
  • Инкапсуляция — размещение одного объекта или класса внутри другого для разграничения доступа к ним.
На чем будем учиться

На чем будем учиться

  • Представляю вам класс Транспортное средство(Vehicle): public abstract class Vehicle{ protected int speed; public Vehicle(int speed){ this.speed = speed; } public abstract int ride(int km); }
Абстракция

Абстракция

  • Это способ представления объектов реального мира в коде. Возьмем в пример машину. Машина это четырех колесное транспортное средство которое едет. Один из этих параметров мы описали у себя в программе когда сделал класс машина. Таким образом мы представили объект реального мира в виде объекта в программе.
Наследование

Наследование

  • Классы могут наследовать друг друга. Что означает термин «наследовать»? Он означает перенимать свойства своего родителя. Кто такой родитель? Это тот от кого наследуются. Представим реальный мир. Наследники у нас это обычно дети. Они наследуют какие-то черты своих родителей. В программировании то же самое, но это могут быть не только люди. Любой класс может быть наследником и может наследовать. Например наш класс Водитель мог бы наследовать класс Человек, который был описан в другом задании. Ведь у Водителя есть и возраст и рост и имя. Однако не все это нам было интересно в нашем втором задании.
Наследование, пример

Наследование, пример

  • А теперь возьмем и унаследуем нашу машину(Car) от транспортного средства(Vehicle): public class Car extends Vehicle{ public Car(int speed){ super(speed); } @Override public int ride(int km){ return speed*km; } }
Наследование немного разъяснений слов

Наследование немного разъяснений слов

  • extends – ключевое слово которое означает «Наследуется от». После него пишут класс от которого наследуется данный. В Java отсутствует множественное наследование по-этому наследоваться можно только от одного класса
  • abstract – означает абстрактный. Мы как будто говорим что он будет в дальнейшем и будет называться так но сейчас его нет. Необходимо ОБЯЗАТЕЛЬНО переопределить его у наследников
  • @Override – говорит о том что метод переопределяет метод родителя, помеченный словом abstract.
Инкапсуляция

Инкапсуляция

  • Помимо областей видимости в виде фигурных скобок есть также области видимости между классами. Например некоторые из вас могли сделать доступ к переменным напрямую в задании поменять имя а не через метод. Вот и получаем что любой разработчик может поменять как угодно переменную, ведь обычно на одном проекте работает больше одного человека. Вы как тот кто изначально писал проект не хотите чтобы переменная менялась как попало, а только чтобы по описанным вам правилам. В этом вам поможет инкапсуляция.
Инкапсуляция

Инкапсуляция

  • Вспомним волшебное слово public. Оно могло стоять перед классом, перед методом, перед переменной. Оно означает область видимости внутри других классов. В Java существует 4 главных ключевых слова:
  • public – публичный. Видно везде. Нужно ставить если хотим разрешить доступ из вне
  • package-private – стоит если ничего не написать. Видно внутри одного пакета.
  • protected – защищенный. Защищает видимость при наследовании, а именно: защищенные видно наследникам но не видно из вне.
  • private – приватный. Видно только внутри этого класса.
Инкапсуляция пример

Инкапсуляция пример

  • Мы можем заметить ключевые слова public и protected внутри классов Vehicle и Car. Как мы видим и то и то мы можем использовать внутри друг друга. Добавим переменную типа private в Vehicle. И убедимся что нельзя использовать её из класса Car.
  • public abstract class Vehicle{ protected int speed; private String name; public Vehicle(int speed){ this.speed = speed; } public abstract int ride(int km); }
Полиморфизм

Полиморфизм

  • Полиморфизм это когда мы можем использовать наследников как их родителей. Так как все наследники наследуют методы и поля родителей то можно использовать их. В нашем случае можно объявить переменную Vehicle и поместить в неё экземпляр класса Car. Но для наглядности давайте создадим еще одного наследника класса Vehicle. Представляю вам Велосипед!
  • Public class Bicycle extends Vehicle{ public Bicycle(int speed){ super(speed); } @Override public int ride(int km){ return km; } }
Полиморфизм практика Теперь создадим 2 экземпляра класса Car и Bicycle соответственно и запихнем их в переменную типа Vehicle. Результат скажет все за себя. public class Main {   public static void main(String[] args) {   runVehicle(new Car(14));//1400   runVehicle(new Bicycle(14));//100   }   public static void runVehicle(Vehicle vehicle){   int time = vehicle.run(100);   System.out.println(time);   }  }

Полиморфизм практика

  • Теперь создадим 2 экземпляра класса Car и Bicycle соответственно и запихнем их в переменную типа Vehicle. Результат скажет все за себя.
  • public class Main {

public static void main(String[] args) {

runVehicle(new Car(14));//1400

runVehicle(new Bicycle(14));//100

}

public static void runVehicle(Vehicle vehicle){

int time = vehicle.run(100);

System.out.println(time);

}

}


Получите в подарок сайт учителя

Предмет: Информатика

Категория: Прочее

Целевая аудитория: Прочее.
Урок соответствует ФГОС

Скачать
Классы. Инкапсуляция. Наследование

Автор: Рыбаков Вячеслав Владимирович

Дата: 31.12.2021

Номер свидетельства: 596652

Похожие файлы

object(ArrayObject)#851 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(64) "Классы. Инкапсуляция. Наследование"
    ["seo_title"] => string(37) "klassy_inkapsuliatsiia_nasledovanie_2"
    ["file_id"] => string(6) "596651"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1640905822"
  }
}
object(ArrayObject)#873 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(64) "Классы. инкапсуляция. наследование"
    ["seo_title"] => string(35) "klassy_inkapsuliatsiia_nasledovanie"
    ["file_id"] => string(6) "588727"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1634481300"
  }
}
object(ArrayObject)#851 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(65) "Классы. Инкапсуляция. Наследование."
    ["seo_title"] => string(37) "klassy_inkapsuliatsiia_nasledovanie_1"
    ["file_id"] => string(6) "588728"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1634481481"
  }
}
object(ArrayObject)#873 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(81) "Реферат "КЛАССЫ. ИНКАПСУЛЯЦИЯ. НАСЛЕДОВАНИЕ""
    ["seo_title"] => string(43) "referat_klassy_inkapsuliatsiia_nasledovanie"
    ["file_id"] => string(6) "588734"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1634484994"
  }
}
object(ArrayObject)#851 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(79) "Реферат классы. инкапсуляция. наследование"
    ["seo_title"] => string(45) "referat_klassy_inkapsuliatsiia_nasledovanie_1"
    ["file_id"] => string(6) "597154"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1641763023"
  }
}


Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства