Разделы презентаций


Программирование на языках высокого уровня

Содержание

Две парадигмы программированияПрограмма = код + данныеПодходы к программированию делятся наПроцессно-ориентированный: Программа – код, воздействующий на данные.Программа представляет собой последовательность действий.Процедурные ЯВУ.Объектно-ориентированный: Программа – управляемый данными доступ к коду.Программа представляет собой

Слайды и текст этой презентации

Слайд 1Программирование на языках высокого уровня
Принципы ООП

Программирование на языках высокого уровняПринципы ООП

Слайд 2Две парадигмы программирования
Программа = код + данные
Подходы к программированию делятся

на
Процессно-ориентированный:
Программа – код, воздействующий на данные.
Программа представляет собой последовательность

действий.
Процедурные ЯВУ.
Объектно-ориентированный:
Программа – управляемый данными доступ к коду.
Программа представляет собой взаимодействующую совокупность объектов.
Объектно-ориентированные ЯВУ.
Две парадигмы программированияПрограмма = код + данныеПодходы к программированию делятся наПроцессно-ориентированный: Программа – код, воздействующий на данные.Программа

Слайд 3Абстракция
Абстракция – отвлечение от несущественных для решения задачи деталей объекта
Сложный

объект можно представить в виде иерархической классификации, на каждом уровне

которой будет своя степень абстракции.
Объектно-ориентированное программирование использует абстракцию для
преобразования данных традиционной программы в свои объекты;
преобразования последовательности действий традиционной программы в систему обмена сообщениями между объектами
АбстракцияАбстракция – отвлечение от несущественных для решения задачи деталей объектаСложный объект можно представить в виде иерархической классификации,

Слайд 4ОО-программа
Состоит из объектов
описывающих свое поведение,
имеющих состояние,
откликающихся на сообщения, говорящие им

«что нужно делать»,
и посылающие сообщения другим объектам.

ОО-программаСостоит из объектовописывающих свое поведение,имеющих состояние,откликающихся на сообщения, говорящие им «что нужно делать»,и посылающие сообщения другим объектам.

Слайд 5Три принципа ООП
Инкапсуляция:
механизм, связывающий код и используемые им данные
и

сохраняющий последние в безопасности от внешнего влияния и произвольного доступа.


Доступ к коду и данным производится через определенный интерфейс.
Реализация сокрыта от пользователя.
Наследование
процесс, с помощью которого один объект приобретает свойства другого,
но не лишается возможности доопределить некоторые собственные, уникальные свойства.
Полиморфизм
свойство, позволяющее использовать один интерфейс для общего класса действий.
Каждый объект реализует поведение по-своему,
пользователь использует один и тот же интерфейс для группы разнородных объектов,
а компилятор в каждом конкретном случае принимает решение «откуда взять нужный код».
Три принципа ООПИнкапсуляция:механизм, связывающий код и используемые им данные и сохраняющий последние в безопасности от внешнего влияния

Слайд 6Пример наследования

Пример наследования

Слайд 7Классы
Класс – основа механизма инкапсуляции.
Содержит структуру (данные или поля) и

поведение (код, работающий с данными и разбитый на фрагменты –

методы класса) некоторой группы объектов.
Поля и методы – члены класса.
Объект – экземпляр класса,
имеющий все определенное в классе поведение
и конкретные значения данных – состояние.
Класс – логическая конструкция, трафарет, а объект – «физическая реальность».
Существуют механизмы сокрытия полей и методов от внешнего пользователя.
Классы позволяют избежать повторного кодирования.
КлассыКласс – основа механизма инкапсуляции.Содержит структуру (данные или поля) и поведение (код, работающий с данными и разбитый

Слайд 8Классы в Java
В java-программе весь код и данные находятся внутри

класса.
Объявление класса в Java в общем виде:
[модификаторы] class Имя_класса [extends

Имя_суперкласса]
[implements Имя(Список)_интерфейса(ов)]
Модификаторы класса
public – спецификатор доступа – указывает, что к данному классу возможен доступ из других пакетов (с помощью оператора import либо указанием квалифицированного имени класса, включающего имя пакета.) В случае отсутствия public доступ разрешен только внутри текущего пакета
abstract – модификатор реализации класса – указывает, что класс не может иметь экземпляров. Класс, имеющий хотя бы один абстрактный метод (т.е. метод без реализации), должен быть abstract.
final – модификатор ограничения иерархии классов – указывает что класс не может иметь производных классов (например, класс java.lang.String).
Тело класса заключено в {} и может быть пустым.
Создание объекта класса: A a = new A(param1, param2, …);
Доступ к полям и методам объекта осуществляется с помощью оператора «точка»: a.field; a.method();
Классы в JavaВ java-программе весь код и данные находятся внутри класса.Объявление класса в Java в общем виде:	[модификаторы]

Слайд 9Пакеты в Java
Пакеты используются для объединения связанных между собой классов,

интерфейсов и других пакетов и их защиты.
Пакет создает собственное пространство

имен (в разных пакетах можно использовать одни и те же имена классов).
Квалифицированное имя класса включает имя пакета (например, java.applet.Applet). Пакет импортируется в программу с помощью оператора import.
import, в отличие от include в c++, не связывает с приложением используемые классы, не увеличивает размер откомпилированного файла.
Программист может создать собственный пакет с помощью оператора package и поместить в него любое количество классов (интерфейсов).
Можно создавать древовидную структуру пакетов.
Пакеты в JavaПакеты используются для объединения связанных между собой классов, интерфейсов и других пакетов и их защиты.Пакет

Слайд 10Приведение типов
Объект всегда может быть приведен к типу своего суперкласса

(в т.ч. неявно).
Обратное приведение можно выполнить с помощью оператора явного

приведения типа.
Любой тип класса может быть приведен к типу класса Object.
После приведения объекта к типу суперкласса все переменные и методы собственного класса объекта становятся для него недоступными.
Приведение типовОбъект всегда может быть приведен к типу своего суперкласса (в т.ч. неявно).Обратное приведение можно выполнить с

Слайд 11Элементы класса.
Поле – переменная, содержащая данные класса или экземпляра класса.
Метод

– это именованный фрагмент исполнимого кода класса, вызов которого возможен

как внутри класса, так и для объектов класса.
Все поля и методы доступны для методов данного класса.
Для ограничения доступа к полям и методам из других классов используются спецификаторы доступа:
Открытый (public) – элемент класса доступен везде, где доступен данный класс.
Защищенный (protected) – элемент доступен из классов данного пакета и из любого потомка данного класса.
Пакетный (по умолчанию) – элемент доступен из классов данного пакета.
Закрытый (private) – доступ к элементу разрешен в пределах данного класса.

Элементы класса.Поле – переменная, содержащая данные класса или экземпляра класса.Метод – это именованный фрагмент исполнимого кода класса,

Слайд 12Разновидности переменных
В классе различают несколько разновидностей переменных:
поля класса, которые объявляются

вне методов и доступны всем методам класса;
локальные переменные блока (метода,

конструктора, блока инициализации или операторов {…}, выражения условия для управляющей конструкции цикла for), объявляемые внутри блока, доступные только в нем и существующие только во время его выполнения;
параметры методов, конструкторов, обработчиков исключений.
Разновидности переменныхВ классе различают несколько разновидностей переменных:поля класса, которые объявляются вне методов и доступны всем методам класса;локальные

Слайд 13Поля класса
Объявление поля класса имеет вид:
[спецификатор доступа] [модификаторы] тип_данных имя_поля

[= значение_инициализации];
Спецификаторы доступа (public, protected, private) указываются для каждого объявления

отдельно
Модификаторы полей класса:
static указывает, что поле принадлежит классу в целом и существует в единственном экземпляре, Такое поле, принято называть статическим полем или просто полем класса. Оно создается при загрузке класса, прекращает существование – при выгрузке. Для обращения к статическому полю создавать экземпляр класса не требуется: System.out.println();
final запрещает изменение значения поля после инициализации. Это константы. Для экономии памяти константы обычно делают статическими. Например, в Integer имеются следующие константы:
public static final int MAX_VALUE = 2147483647;
public static final int MIN_VALUE = -2147483648;
transient указывает, что переменная не является частью устойчивого состояния объекта и поэтому не должна записываться на постоянное хранение при сериализации объекта, т.е. записи его состояния в файл.
volatile используется в многопоточном программировании. Сообщает компилятору, что к полю могут одновременно обращаться несколько потоков текущего процесса и это поле не следует использовать при оптимизации программы.
Поля классаОбъявление поля класса имеет вид:	[спецификатор доступа] [модификаторы] тип_данных имя_поля [= значение_инициализации];Спецификаторы доступа (public, protected, private) указываются

Слайд 14Методы класса
Объявление метода:
[спецификатор доступа][модификатор] тип_возвращаемого_значения имя_метода ([список параметров]) [throws список

исключений, бросаемых из метода]
Комбинация имени-идентификатора метода и списка параметров называется

сигнатурой метода.
Спецификаторы доступа (public, protected, private) ограничивают доступ к методу.
Параметры перечисляются через запятую в формате type1 parameter1, type2 parameter2, …
В качестве параметров могут быть использованы переменные любых типов, в том числе объекты классов, но:
переменная простого типа передается по значению,
а переменная ссылочного типа – по ссылке.
Если метод должен возвращать какое-либо вычисленное им значение, то в объявлении требуется указать его тип, а тело метода должно содержать оператор return value. Иначе метод должен быть объявлен с ключевым словом void. В таком методе содержится оператор return.
Объекты простого и ссылочного типа возвращаются единообразно.
Методы классаОбъявление метода:	[спецификатор доступа][модификатор] тип_возвращаемого_значения имя_метода ([список параметров]) [throws список исключений, бросаемых из метода]Комбинация имени-идентификатора метода и

Слайд 15Модификаторы методов
abstract – модификатор реализации. Абстрактные методы объявляются, но не

реализуются в данном классе (не имеют тела)
static – модификатор принадлежности.

Статический метод служит атрибутом класса в целом, а не частных его экземпляров.
вызывается непосредственно из класса, не требуя создавать экземпляр;
может ссылаться только на статические поля и методы класса;
не может быть переопределен, так как неявно является final-методом.
final – модификатор переопределения. Конечный метод не может быть переопределен в производных классах. По умолчанию private-методы являются final-методами. Для final-класса все методы по умолчанию являются конечными.
synchronized – методы для организации работы многопоточных приложений.
native – метод, только объявленный в Java-классе, а реализованный как внешняя библиотека в машинно-зависимом коде. Использованию native-методов в апплетах препятствует менеджер безопасности.
strictfp обеспечивает одинаковое выполнение операций с плавающей точкой во всех JVM.
Модификаторы методовabstract – модификатор реализации. Абстрактные методы объявляются, но не реализуются в данном классе (не имеют тела)static

Слайд 16Список исключений метода
При выполнении методов Java могут создаваться исключения (объекты

типа Exception), связанные с возникновением ошибок. Все исключения должны
либо

обрабатываться внутри метода,
либо описываться в объявлении метода после ключевого слова throws (тогда исключение передастся для обработки коду, вызвавшему метод).
Компилятор требует обязательной обработки всех исключений, кроме типа RuntimeException.
Пример метода класса Integer, выбрасывающего исключение типа RuntimeException:
public static int parseInt(String s) throws NumberFormatException
Список исключений методаПри выполнении методов Java могут создаваться исключения (объекты типа Exception), связанные с возникновением ошибок. Все

Слайд 17Конструкторы класса
Конструкторы –специальные методы, используемые для инициализации полей создаваемых объектов.


Имя конструктора должно совпадать с именем класса.
Конструктор не возвращает значения.
Конструктор

вызывается с помощью оператора new.
Конструктор вызывается после присваивания полям вновь созданного объекта значений по умолчанию и выполнения блоков инициализации.
Класс может содержать несколько конструкторов с различными списками параметров или ни одного.
При отсутствии конструктора компилятор автоматически включает в состав класса конструктор без параметров.
Конструктор без параметров (конструктор по умолчанию) используется при создании объекта и вызывает конструктор непосредственного суперкласса.
Если суперкласс не обладает конструктором без параметров, то возникает ошибка компиляции.
Компилятор не будет автоматически синтезировать для класса конструктор без параметров, если пользователь определил хотя бы один конструктор.
Конструкторы классаКонструкторы –специальные методы, используемые для инициализации полей создаваемых объектов. Имя конструктора должно совпадать с именем класса.Конструктор

Слайд 18Перегрузка и переопределение методов
Перегруженные (overloading) методы – методы одного класса,

имеющие одинаковые имена, но разные сигнатуры.
Можно перегружать конструкторы.
Пример:
Перегруженные конструкторы

класса String.
Перегруженные методы IndexOf класса String.
Переопределение (overriding) – замена реализации метода суперкласса в производном классе.
Сигнатура переопределенного метода должна полностью совпадать с сигнатурой исходного
Переопределенный метод нельзя объявлять более защищенным.

Перегрузка и переопределение методовПерегруженные (overloading) методы – методы одного класса, имеющие одинаковые имена, но разные сигнатуры.Можно перегружать

Слайд 19Ключевые слова THIS и SUPER
this можно использовать в любом нестатическом

методе для ссылки на текущий объект в следующих случаях:
Если текущий

объект обращается к некоторому методу и передает ссылку на себя в качестве параметра.
Если требуется устранить неоднозначность при использовании двух переменных с одним именем, одна из которых является полем, другая – локальной переменной.
super используется как ссылка на экземпляр суперкласса с целью обеспечения доступа к его нестатическим полям и методам.
Ключевые слова THIS и SUPERthis можно использовать в любом нестатическом методе для ссылки на текущий объект в

Слайд 20Рекурсия
Метод, написанный на java может быть рекурсивным – вызывать себя

внутри своего тела.
Преимущество: упрощение алгоритма.
Недостатки: замедление работы, возможное переполнение стека

(в котором при очередном вызове сохраняются параметры предыдущего), опасность бесконечной рекурсии.

int factorial(int f)
{
if (f == 1) return 1;
return factorial(f-1);
}

// внутри другого метода происходит вызов:
int f6 = factorial(6);

РекурсияМетод, написанный на java может быть рекурсивным – вызывать себя внутри своего тела.Преимущество: упрощение алгоритма.Недостатки: замедление работы,

Слайд 21Сборка мусора
В java нет деструкторов – методов, освобождающих память, выделенную

для объекта (delete имя в С++)
JVM содержит garbage collector –

«сборщик мусора», который периодически запускается и освобождает те участки памяти, на которые не осталось ссылок.
Задача программиста – в нужные моменты обнулить ссылки на созданные ранее объекты. Через некоторое время объекты будут удалены из памяти.
Garbage collector перед удалением объекта вызывает его метод finalize(), унаследованный от Object. Если программист желает выполнить при удалении объекта класса classA некоторые действия, он описывает их в теле переопределенного в classA метода finalize().
Сборка мусораВ java нет деструкторов – методов, освобождающих память, выделенную для объекта (delete имя в С++)JVM содержит

Слайд 22Контрольные вопросы
class myClass
{
public int value;
public int square()

{
return value*value;
}
}

myClass a =

new myClass();
a.value = 10;
myClass b;

b.value = 5;
b = a;
a = null;
int c = b.square();
b = null;

Поясните работу программы (в т.ч. состояние памяти)
Найдите ошибку

Контрольные вопросыclass myClass{  public int value;	 public int square()  {   return value*value;

Слайд 23Контрольные вопросы
class Square{
int x;
int getArea(){
return

x*x;
}
}
class Rectangle
extends Square{
int y;
Rectangle(int x,

int y){
this.x = x; this.y = y;
}
int getArea(){
return x*y;
}
int getDifference(){
return getArea() –
super.getArea();
}
}

class myClass
{
int x,y;
Rectangle rect;
rect = new Rectangle(6,4);
int a = rect.getArea();
int b =
((Square)rect).getArea();
int c = rect.getDifference();
}

Контрольные вопросыclass Square{ int x; int getArea(){   return x*x; } }class Rectangle 	extends Square{ int

Слайд 24Контрольные вопросы
class Point{
int x,y,path;
}
class Main{
int move(newX,newY,oldX,oldY){
int path=Math.sqrt(sqr(newX-oldX)+sqr(newY-oldY));
oldX=newX;
oldY=newY;
}
void move(newX,newY,Point p){
p.path=Math.sqrt(sqr(newX-p.x)+sqr(newY-p.y));
p.x=newX;
p.y=newY;
}
void main(String

args[]){
Point p=new Point();
int x=0,y=0;
int path1=move(10,10,x,y);
p.move(10,10,p);
int path2=p.path;
}
}
Поясните работу программы
Найдите перегруженные методы
Выясните,

чему будут равны переменные x,y и поля x,y объекта p в каждый момент
Контрольные вопросыclass Point{	int x,y,path;}class Main{	int move(newX,newY,oldX,oldY){		int path=Math.sqrt(sqr(newX-oldX)+sqr(newY-oldY));		oldX=newX;		oldY=newY;	}	void move(newX,newY,Point p){		p.path=Math.sqrt(sqr(newX-p.x)+sqr(newY-p.y));		p.x=newX;		p.y=newY;	}	void main(String args[]){		Point p=new Point();		int x=0,y=0;		int path1=move(10,10,x,y);		p.move(10,10,p);		int path2=p.path;	}}Поясните работу

Слайд 25Вложенные и внутренние классы
Вложенные классы (nested) определяются внутри определения класса-владельца,

в любом его месте (даже внутри метода).
Вложенный класс имеет

доступ ко всем элементам класса-владельца, а класс-владелец к элементам вложенного класса – нет.
Бывают двух типов:
статический (static) – не может обратиться к нестатическим элементам класса-владельца напрямую, только через создание объекта.
нестатический – может прямо использовать элементы класса-владельца.
Нестатические вложенные классы называются внутренними.
Внутренний класс, не имеющий имени, называется анонимным внутренним классом.
При компиляции будут созданы отдельные файлы с байт-кодом (*.class) для всех вложенных классов. Для анонимных классов файл с байт-кодом будет назван Name#N.class
Вложенные и внутренние классыВложенные классы (nested) определяются внутри определения класса-владельца, в любом его месте (даже внутри метода).

Слайд 26Строки в Java
Класс String содержится в пакете java.lang. Любая строка

в Java является объектом и к ней применимы все действия,

выполняемые над объектами.
Строку можно создать явно с помощью оператора new или неявно:
String str1 = “Новая строка”;
String str2 = new String (“Новая строка”);
Строки можно объединять, используя оператор конкатенации строк: str2 = str1 + “еще одна строка”;
Класс String предназначен для работы со строковыми константами (литералами). Методы класса String не изменяют объект, а создают дополнительный.
Альтернатива – java.lang.StringBuffer, позволяющий создавать изменяемые строковые объекты.
В Java в каждом классе определен наследуемый от Object метод toString(), который предназначен для преобразования объектов этого класса в строку.
Строки в JavaКласс String содержится в пакете java.lang. Любая строка в Java является объектом и к ней

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика