мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
java:elective [21/02/2013 16:24] – nbazhenov | java:elective [12/03/2014 15:54] (текущий) – nbazhenov | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== | + | ====== |
- | * [[java: | + | ===== Первый семестр ===== |
- | * [[http:// | + | |
- | * [[http:// | + | |
- | ====== Семинар | + | * [[java: |
+ | * [[java: | ||
+ | * [[java: | ||
+ | * [[java: | ||
+ | * [[java: | ||
- | Перед началом работы рекомендуется прочитать уроки 1 и 2 из [[java: | + | ===== Второй семестр |
- | ===== Пример 1.1 ===== | + | * [[java: |
+ | * [[java: | ||
- | Программа "Hello world" | + | ====== Семинары (2012-2013) ====== |
- | < | + | * [[java: |
- | package com.nsunc.wiki.nbazhenov; | + | * [[java: |
+ | * [[java: | ||
+ | * [[java: | ||
+ | * [[java: | ||
+ | * [[java: | ||
- | public class HelloWorld { | + | ====== Полезные ссылки ====== |
- | public static void main (String[] args){ | + | |
- | System.out.println(" | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ===== Пример 1.2 ===== | + | |
- | + | ||
- | В лекции 1 был показан пример класса, | + | |
- | <code java> | + | |
- | package com.nsunc.wiki.nbazhenov; | + | |
- | + | ||
- | public class SimpleLight { | + | |
- | boolean state; | + | |
- | + | ||
- | boolean getState(){ | + | |
- | return state; | + | |
- | } | + | |
- | + | ||
- | void on(){ | + | |
- | state = true; | + | |
- | } | + | |
- | + | ||
- | void off(){ | + | |
- | state = false; | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ===== Задание 1.1.A ===== | + | |
- | + | ||
- | Создайте пакет '' | + | |
- | + | ||
- | ===== Задание 1.1.B ===== | + | |
- | + | ||
- | Модифицируйте реализацию '' | + | |
- | + | ||
- | - Добавьте в класс '' | + | |
- | - Измените | + | |
- | - Напишите метод '' | + | |
- | - Напишите метод '' | + | |
- | + | ||
- | Протестируйте работу методов класса '' | + | |
- | + | ||
- | // | + | |
- | + | ||
- | ===== Задание 1.1.С | + | |
- | + | ||
- | Модифицируйте реализацию '' | + | |
- | - Добавьте новое статическое целочисленное поле '' | + | |
- | - Измените код метода '' | + | |
- | - Напишите 2 статических метода: | + | |
- | + | ||
- | Продемонстрируйте работу статических методов. | + | |
- | + | ||
- | ====== Семинар 2 ====== | + | |
- | + | ||
- | ===== Арифметические операторы ===== | + | |
- | Основные арифметические операторы: | + | |
- | + | ||
- | Можно использовать сокращенную форму записи операторов: | + | |
- | <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 java> | + | |
- | ++a; // префиксная версия оператора инкремента | + | |
- | a++; // постфиксная версия оператора инкремента | + | |
- | </ | + | |
- | + | ||
- | В префиксном варианте сначала выполняется операция, | + | |
- | + | ||
- | <code java> | + | |
- | int a = 0; | + | |
- | System.out.println(" | + | |
- | System.out.println(" | + | |
- | </ | + | |
- | + | ||
- | ===== Операторы сравнения ===== | + | |
- | + | ||
- | Операторы сравнения: | + | |
- | + | ||
- | ===== Логические операторы ===== | + | |
- | + | ||
- | Основные логические операторы: | + | |
- | + | ||
- | ===== Задание 2.1 ===== | + | |
- | + | ||
- | С клавиатуры вводится четыре натуральных числа: '' | + | |
- | + | ||
- | // | + | |
- | + | ||
- | // | + | |
- | + | ||
- | ====== Семинар 3 ====== | + | |
- | + | ||
- | ===== Задание 3.1 ===== | + | |
- | + | ||
- | Реализовать алгоритм быстрой сортировки массива. | + | |
- | + | ||
- | Описание алгоритма можно найти [[http:// | + | |
- | + | ||
- | ===== Указания к оформлению решения ===== | + | |
- | + | ||
- | * Метод, реализующий быструю сортировку, | + | |
- | <code java> | + | |
- | class MySort { | + | |
- | static void quickSort (/* Ваш список параметров */){ | + | |
- | // Ваш код | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | * В методе '' | + | |
- | <code java> | + | |
- | import java.util.*; | + | |
- | + | ||
- | public class TestClass { | + | |
- | public static void main(String[] args){ | + | |
- | int size = 20; | + | |
- | int m[] = new int[size]; | + | |
- | + | ||
- | Random rand = new Random(); | + | |
- | for(int i = 0; i < size; i++) | + | |
- | m[i] = rand.nextInt(100); | + | |
- | + | ||
- | System.out.println(Arrays.toString(m)); | + | |
- | + | ||
- | MySort.quickSort(/ | + | |
- | System.out.println(Arrays.toString(m)); | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ====== Семинар 4 ====== | + | |
- | + | ||
- | Классы и интерфейсы в языке Java могут быть шаблонными (generic), т.е. иметь типовые параметры. При создании объекта такого класса нужно указывать конкретные значения его типовых параметров. | + | |
- | + | ||
- | Пример использования generic-ов: | + | |
- | + | ||
- | <code java> | + | |
- | public class TwoTuple< | + | |
- | public final A first; | + | |
- | public final B second; | + | |
- | public TwoTuple(A a, B b) { first = a; second = b; } | + | |
- | public String toString() { | + | |
- | return " | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | public class ThreeTuple< | + | |
- | public final C third; | + | |
- | public ThreeTuple(A a, B b, C c) { | + | |
- | super(a, b); | + | |
- | third = c; | + | |
- | } | + | |
- | public String toString() { | + | |
- | return " | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | Пример работы с этими классами: | + | |
- | + | ||
- | <code java> | + | |
- | TwoTuple< | + | |
- | System.out.println(tuple0.toString()); | + | |
- | ThreeTuple< | + | |
- | System.out.println(tuple1.toString()); | + | |
- | </ | + | |
- | + | ||
- | ===== Задание 4.1 ===== | + | |
- | + | ||
- | Приведем одну из возможных реализаций двусвязного списка: | + | |
- | + | ||
- | <code java> | + | |
- | public class MyLinkedList< | + | |
- | private static class Node< | + | |
- | E element = null; | + | |
- | Node< | + | |
- | Node< | + | |
- | + | ||
- | Node (E element){ | + | |
- | this.element = element; | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | private Node< | + | |
- | private Node< | + | |
- | + | ||
- | private int size = 0; | + | |
- | + | ||
- | public void addLast(E element){// добавляет новый элемент в конец списка | + | |
- | Node< | + | |
- | if(tail == null){ | + | |
- | head = tmpNode; | + | |
- | tail = head; | + | |
- | } else{ | + | |
- | tail.next = tmpNode; | + | |
- | tmpNode.previous = tail; | + | |
- | tail = tmpNode; | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | public String toString(){// | + | |
- | if(head == null) | + | |
- | return null; | + | |
- | + | ||
- | Node< | + | |
- | String tmpString = " | + | |
- | + | ||
- | while (tmpNode != tail){ | + | |
- | tmpNode = tmpNode.next; | + | |
- | tmpString = tmpString.concat(", | + | |
- | }; | + | |
- | tmpString = tmpString.concat(" | + | |
- | + | ||
- | return tmpString; | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | Пример использования: | + | |
- | + | ||
- | <code java> | + | |
- | MyLinkedList< | + | |
- | for (int i = 0; i < 10; i++) | + | |
- | list.addLast(new Integer(i)); | + | |
- | System.out.println(list.toString());// | + | |
- | </ | + | |
- | + | ||
- | Допишите следующие методы: | + | |
- | - Добавление нового элемента в начало списка. | + | |
- | - Удаление первого/ | + | |
- | - Получение значения первого/ | + | |
- | - Получение размера списка. | + | |
- | - Получение значения '' | + | |
- | - Удаление '' | + | |
- | + | ||
- | ===== Указание к оформлению решения ===== | + | |
- | + | ||
- | Новые методы должны называться в соответствии с методами класса [[http:// | + | |
- | + | ||
- | ===== Задание 4.2 ===== | + | |
- | + | ||
- | С помощью получившегося двусвязного списка напишите решение [[http:// | + | |
+ | * [[java: | ||
+ | * [[http:// | ||
+ | * [[http:// |