Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Вопрос: А что именно выезжает? 0 – неправильно, 1 – неправильно.




Вопрос: А что именно выезжает? 0 – неправильно, 1 – неправильно.

Ответ: Выезжает знаковый бит. Потому что если число у вас положительное и вы двигаете вправо, оно у вас уменьшается, но оно остается положительным. А значит выезжает ноль. А если у нас число -8 и буду двигать вправо, оно на 1 позицию, когда двигаем, это равносильно «/*» на 2. Оно должно быть -4. А чтобы оно было -4 должна выехать единичка. Для этого надо знать, как представлены в памяти целые числа в двоичной системе.

Сдвиг влево – при сдвиге влево число увеличивается Сдвиг вправо – при сдвиге вправо число уменьшается

Для тех, кто забыл, как представлены в памяти отрицательные и положительные целые числа - обязательно почитайте книжку. Вот тогда будет понятно. Вы скажете, ну значит здесь выезжает либо ноль, либо единичка? А если я хочу чтобы здесь выезжал тоже всегда нолик. Я хочу двигать. Мне не интересно, знаковый или беззнаковый бит. Если бы это был другой язык, то я бы просто взял беззнаковый тип данных (unsigned), а в ЯП Java нет беззнаковых типов данных. Поэтому им пришлось добавить операцию три стрелки вправо. «--> » - беззнаковый сдвиг вправо. Не существует трех стрелок влево.

Вот такая операция была добавлена просто из-за того что в системе типов ЯП Java. Вот это основное отличие.

Разобрали переменные и операции и следующая тема, которая является важной, но не имеется прямого отношения к ООП – это написание методов.

Методы и операторы Java – (2 академ. часов)

Java не является процедурным языком: любая функция может существовать только внутри класса. Это подчёркивает терминология языка Java, где нет понятий «функция» или «функция-член» (англ. member function), а только метод. В методы превратились и стандартные функции. Например, в Java нет функции sin(), а есть метод Math. sin() класса Math (содержащего, кроме sin(), методы cos(), exp(), sqrt(), abs() и многие другие).

Создание и вызов методов.

Вопрос: Зачем пишутся методы?

Ответ: Мы все знаем. Это повторное использование кода. Я хочу написать какую-то статистику, которая понадобится мне не один раз в жизни. А может быть это настолько интересный статистический алгоритм, что я хочу его запрограммировать, и потом в будущем он мне не раз пригодится. Но я должен буду написать его, а потом использовать многократно.

Общая рекомендация по методу:

Метод – это как черный ящик. Вы ему кидаете на вход данные, а он выдает вам какой-то результат. И метод должен делать одно действие. Вот, например, он считает статистику, но он не должен печатать статистику и печатать данные на экране – это два действия. Это уже не правильный подход. Он должен посчитать статистику и вернуть вам эти данные. А уже, что вы будете с ними делать (на экран печатать, в базу отправить) – это уже не проблемы метода.

Разрабатывая метод, вы должны себе всегда в голове представлять его, как черный ящик.

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

Возьмем для примера метод «сумма». Он на вход получает три числа: a, b, c. Вернет он вам их сумму.

У нас есть имя метода, входные параметры и я должен обязательно сказать, какой тип я возвращаю. Это очень важно с т. з. генерации кода компилятора. Тип возвращаемого значения всегда пишется слева от имени.

Вопрос: Что возвращает main? Какой тип написан слева от main?

Ответ: void. Это специальное ключевое слово, которое обозначает отсутствие типа, потому что может быть метод, который получает данные и ничего не возвращает. Такое бывает, но редко. Тогда для того, чтобы сказать, что у нас ничего нет, - есть специальное слово void означающее отсутствие типа.

При попытке заменить в main тип возвращаемого значения void на int, мы получим ошибку. Нельзя так делать.

run: Error: Main method must return a value of type void in class app18. pkg1. App181, please define the main method as: public static void main(String[] args) C: \Documents and Settings\122-zhdanov\Local Settings\Application Data\NetBeans\Cache\8. 1\executor-snippets\run. xml: 53: Java returned: 1 СБОРКА ЗАВЕРШЕНА СО СБОЕМ (общее время: 0 секунд)

 

Возвращаемся к нашим баранам. Вот мы создали метод, и вы скажете все? Да, все!

То, что мы видим слева на слайде под названием < modifiers> - их много. Мы будем дальше разбираться с языком, будем разбираться и смотреть, что там может быть. Сейчас мы не думая пишем public static.

Что еще мы должны сказать по поводу методов…

Вопрос: Как вы думаете, мы должны заставить ее работать? Или мы просто так ее пишем.

Ответ: Мы должны ее вызвать.

На заметку: Ни один уважающий себя программист так не напишет.

А напишет вот так:

Посмотрите, на сколько меньше действий. Память выделять не надо. Начальное значение «0» класть не надо. В res клалось после этого новое значение. А потом возвращали res. Ужас!

Идем дальше.

Написание функций состоит не из одного, а из нескольких элементов. Вы должны написать саму функцию метод, а второе что вы должны сделать – это вызов. Вот вы написали сейчас эту функцию. А она сейчас где-то используется? Нет. Для того, чтобы этот вызов заработал, его нужно вызвать? Где угодно, в вашей другой программе, в другом коде можете вызывать.

Вот если сейчас эту программу запустить, то в качестве последнего мы увидим результат суммирования этих трех значений.

Вопрос: Какой порядок объявления в классе методов?

Ответ: Любой. Главное после открывающей скобки class. Я могу писать в начале метод summa, а могу в конце. Это без разницы. Могу так, а могу так.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...