Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3-й семестр / Лекции / 2 - Презентация.pptx
Скачиваний:
53
Добавлен:
25.12.2020
Размер:
2.24 Mб
Скачать

Центр дистанционного

обучения

Пример Die.java

public class( Dieигра{ в кости) private final int MAX = 6; // maximum face value

private int faceValue; // current value showing on the die

//Constructor: Sets the initial face value. public Die( ) {

faceValue = 1;

}

// Rolls the die and returns the result. public int roll() {

faceValue = (int)(Math.random() * MAX) + 1; return faceValue;

}

4-61 online.mirea

.ru

Используем автораспаковку для Integer

Центр дистанционного

обучения

Die.java

//Face value mutator.

public void setFaceValue (int value) { faceValue = value;

}

//Face value accessor. public int getFaceValue() { return faceValue;

}

//Returns a string representation of this die. public String toString()

String result = return result;

}

}

4-62

online.mirea

.ru

 

Центр дистанционного

 

обучения

Main.java (игра в

public staticкости)

 

public class Main{

 

void main (String[] args) {

 

Die die1, die2;

 

int sum;

Создаем два

 

die1 = new Die();

объекта Die

 

die2 = new Die();

Вызов метода roll в

 

die1.roll();

классе Die

 

die2.roll();

 

System.out.println ("Die One: " + die1 + ", Die Two: " + die2);

Вызов метода

die1.roll(); сеттера die2.setFaceValue(4);

System.out.println ("Die One: " + die1 + ", Die Two: " + die2);

4-63 online.mirea

.ru

Центр дистанционного

Main.java обучения

sum = die1.getFaceValue() + die2.getFaceValue(); System.out.println ("Sum: " + sum);

Вызов метода геттера

sum = die1.roll() + die2.roll();

System.out.println ("Die One: " + die1 + ", Die Two: " + die2); System.out.println ("New sum: " + sum);

}

}

4-64 online.mirea

.ru

Центр дистанционного

обучения

Метод toString()

Метод toString() это метод класса Object, который лежит на вершине иерархии классов java. Создавая собственные классы мы неявным образом наследуемся от класса Object

Для все пользовательских классов необходимо переопределить метод toString()

Метод toString() возвращает значение символьной строки, для того чтобы тем самым представить данный объект

Он вызывается автоматически, когда объект конкатенируется со строкой или когда он передается внутрь метода println()

4-65 online.mirea

.ru

Центр дистанционного

обучения

Рекурсия

Что такое рекурсия?

В контексте языка программирования рекурсия - это некий активный метод (или подпрограмма) вызываемый сам по себе непосредственно, или вызываемой другим методом (или подпрограммой) косвенно.

Для чего использовать рекурсию?

Существует распространенное мнение, что гораздо легче научиться программировать итеративно, или использовать нерекурсивные методы, чем научиться программировать рекурсивно.

Хотя на самом деле, рекурсия является методом основанным на технике использования итераций.

online.mirea

.ru

Центр дистанционного

обучения

Типы рекурсии

Прямая рекурсия:

procedure Alpha; begin

Alpha end;

Косвенный (или взаимная) рекурсия:

procedure Alpha; begin

Beta end;

procedure Beta; begin

Alpha end;

Возникают трудности в некоторых языках программирования из-за использования прямой ссылки

online.mirea

.ru

Центр дистанционного

Почему стоитобучения использовать

• Это покажетсярекурсию!вам совсем не сложным, как только вы попробуете это на практике.

• Рекурсивные программы часто более емкие, элегантные и их легче понять, чем их итеративные аналоги

• Некоторые проблемы легко решаются с помощью рекурсивных методов, причем гораздо проще, чем на итеративных.

online.mirea

.ru

Центр дистанционного

Пример Числаобучения Фибоначчи

• Числа Фибоначчи имеют невероятное количество свойств, которые используются в области Computer science.

• Есть даже целый журнал - The Fibonacci Quarterly, который существует с единственной целью - публикации теорем с участием чисел Фибоначчи.

F0

F1

F2

F3

F4

F5

F6

F7

 

 

 

 

 

 

 

 

 

0

1

1

2

3

5

8

13

 

 

 

 

 

 

 

 

 

online.mirea

.ru

Центр дистанционного

обучения

Пример Числа СвойстваФибоначчи:

1.Сумма квадратов двух последовательных чисел Фибоначчи также представляет из себя еще одно число Фибоначчи

2.Сумма первых “n” чисел Фибоначчи на единицу меньше,

чем Fn+2

Поскольку числа Фибоначчи рекурсивно определяются, то напишем рекурсивную процедуру для расчета Fn, что представляется разумным в данном случае.

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

Рассмотрим также итерационный способ!

Примеры программ на следующих слайдах….

online.mirea

.ru

Соседние файлы в папке Лекции