мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
java:elective [25/10/2012 13:27] nbazhenovjava:elective [12/03/2014 15:54] (текущий) nbazhenov
Строка 1: Строка 1:
-====== Полезные ссылки ======+====== Семинары (2013-2014) ======
  
-  * [[java:basics|Справочник по Яве]]   +===== Первый семестр =====
-  * [[http://parallels.nsu.ru/~kuznecov/JavaDoc/index.html|Зеркало JavaDoc]]+
  
-====== Семинар 1 ======+  * [[java:elective:lesson_10_02_13|Занятие 1 (введение)]] 
 +  * [[java:elective:lesson_10_09_13|Занятие 2 (задача о датах)]] 
 +  * [[java:elective:lesson_10_16_13|Занятие 3 (римская система счисления)]] 
 +  * [[java:elective:lesson_11_06_13|Занятие 4 (позиционные системы счисления)]] 
 +  * [[java:elective:lesson_11_20_13|Занятие 5 (палиндромы)]]
  
-Перед началом работы рекомендуется прочитать уроки 1 и 2 из [[java:basics|Справочника по Яве]].+===== Второй семестр =====
  
-===== Пример 1.1 =====+  * [[java:elective:lesson_01_29_14|Занятие 1 (двусвязный список)]] 
 +  * [[java:elective:lesson_03_12_14|Занятие 2 (двоичные деревья поиска)]]
  
-Программа "Hello world"+====== Семинары (2012-2013) ======
  
-<code java> +  * [[java:elective:lesson1|Семинар 1 (введение)]] 
-package com.nsunc.wiki.java;+  * [[java:elective:lesson2|Семинар 2 (задача о датах)]] 
 +  * [[java:elective:lesson3|Семинар 3 (быстрая сортировка)]] 
 +  * [[java:elective:lesson4|Семинар 4 (двусвязный список и задача Иосифа Флавия)]] 
 +  * [[java:elective:lesson5|Семинар 5 (двоичные деревья поиска)]] 
 +  * [[java:elective:lesson6|Семинар 6 (неориентированные графы и поиск в ширину)]]
  
-public class HelloWorld { +====== Полезные ссылки ======
- public static void main (String[] args){ +
- System.out.println("Hello, World!"); +
-+
-+
-</code>+
  
-===== Пример 1.2 ===== +  * [[java:basics|Справочник по Яве]] 
- +  * [[http://www.mindviewinc.com/downloads/TIJ-3rd-edition4.0.zip|Bruce EckelThinking in Java3rd edition (zip archive)]] 
-В лекции 1 был показан пример класса, являющегося представлением электрической лампочки. Приведем здесь упрощенный вариант этого примера: +  * [[http://parallels.nsu.ru/~kuznecov/JavaDoc/index.html|Зеркало JavaDoc]]
-<code java+
-package com.nsunc.wiki.java; +
- +
-public class SimpleLight { +
- boolean state; +
- +
- boolean getState(){ +
- return state; +
-+
-  +
- void on(){ +
- state = true; +
-+
-  +
- void off(){ +
- state = false; +
-+
-+
-</code> +
- +
-===== Задание 1.1.A ===== +
- +
-В пакете ''com.nsunc.wiki.java'' создайте класс ''SimpleLight'', приведенный выше, и новый класс ''TestClass''. С помощью ''TestClass'' протестируйте работу методов класса ''SimpleLight''. Убедитесь в том, что Java присваивает значение полю ''state'' по умолчанию. +
- +
-===== Задание 1.1.B ===== +
- +
-Модифицируйте реализацию ''SimpleLight'' следующим образом: +
- +
-  - Добавьте в класс ''SimpleLight'' новые целочисленные поля ''brightness'' (яркость) и ''step'' (шаг). Сделайте так, чтобы значение поля ''step'' было по умолчанию равным 100. +
-  - Измените код существующих методов так, чтобы при включении лампочки ее яркость принимала значение 1000, а при выключении - 0. +
-  - Напишите метод ''dim()'' (терять яркость), производящий следующие действия: если яркость лампочки больше значения ''step'', то яркость уменьшается на ''step''; в противном случае лампочка выключается и в консоли печатается соответствующее сообщение. +
-  - Напишите метод ''brighten()'' (делать ярче), производящий следующие действияесли яркость лампочки не превосходит значения ''(1000-step)'', то яркость увеличивается на ''step''; в противном случае в консоли печатается сообщение об ошибке. +
- +
-Протестируйте работу методов класса ''SimpleLight''. +
- +
-//Замечание:// Лампочка считается включенной если и только если ее яркость больше нуля. +
- +
-===== Задание 1.1.С ===== +
- +
-Модифицируйте реализацию ''SimpleLight'' следующим образом: +
-  Добавьте новое статическое целочисленное поле ''maxBrightness'' (максимальная яркость). Сделайте так, чтобы по умолчанию ''maxBrightness'' принимало значение 1000. +
-  Измените код метода ''brighten()'', заменив 1000 на ''maxBrightness''. +
-  - Напишите 2 статических метода: ''getMaxBrightness()'' - возвращает значение ''maxBrightness''; и ''setMaxBrighness(int a)'' - устанавливает значение ''maxBrightness''. +
- +
-Продемонстрируйте работу статических методов. +
- +
-===== Арифметические операторы ===== +
-Основные арифметические операторы: сложение (''+'')вычитание (''-'')умножение (''*''), деление (''/''), остаток от деления нацело (''%''). +
- +
-Можно использовать сокращенную форму записи операторов: +
-<code java> +
-a += b; // a = a + b +
-a -= b; // a = a - b +
-a *= b; // a = a * b +
-a /= b; // a = a / b +
-a %= b; // a = a % b +
-</code> +
- +
-===== Операторы инкремента и декремента ===== +
- +
-Оператор инкремента записывается в виде ''++'' и означает "увеличить на единицу"Оператор декремента записывается в виде ''----'' и означает "уменьшить на единицу". +
- +
-Для каждого из операторов есть две версии: префиксная и постфиксная. +
- +
-<code java> +
-++a; // префиксная версия оператора инкремента +
-a++; // постфиксная версия оператора инкремента +
-</code> +
- +
-В префиксном варианте сначала выполняется операция, а затем выдается значение. В постфиксном варианте сначала выдается значение, и лишь затем выполняется операция. +
- +
-<code java> +
-int a = 0; +
-System.out.println("1. a = " + ++a); // напечатается: 1. a = 1 +
-System.out.println("2. a = " + a++); // напечатается: 2. a = 1 +
-</code>+