Вопрос: А что именно выезжает? 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, мы получим ошибку. Нельзя так делать.
Возвращаемся к нашим баранам. Вот мы создали метод, и вы скажете все? Да, все! То, что мы видим слева на слайде под названием < modifiers> - их много. Мы будем дальше разбираться с языком, будем разбираться и смотреть, что там может быть. Сейчас мы не думая пишем public static. Что еще мы должны сказать по поводу методов… Вопрос: Как вы думаете, мы должны заставить ее работать? Или мы просто так ее пишем. Ответ: Мы должны ее вызвать. На заметку: Ни один уважающий себя программист так не напишет. А напишет вот так: Посмотрите, на сколько меньше действий. Память выделять не надо. Начальное значение «0» класть не надо. В res клалось после этого новое значение. А потом возвращали res. Ужас! Идем дальше. Написание функций состоит не из одного, а из нескольких элементов. Вы должны написать саму функцию метод, а второе что вы должны сделать – это вызов. Вот вы написали сейчас эту функцию. А она сейчас где-то используется? Нет. Для того, чтобы этот вызов заработал, его нужно вызвать? Где угодно, в вашей другой программе, в другом коде можете вызывать. Вот если сейчас эту программу запустить, то в качестве последнего мы увидим результат суммирования этих трех значений. Вопрос: Какой порядок объявления в классе методов? Ответ: Любой. Главное после открывающей скобки class. Я могу писать в начале метод summa, а могу в конце. Это без разницы. Могу так, а могу так.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|