summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ru-ru/java-ru.html.markdown28
-rw-r--r--ru-ru/learnjava-ru.html.markdown507
2 files changed, 14 insertions, 521 deletions
diff --git a/ru-ru/java-ru.html.markdown b/ru-ru/java-ru.html.markdown
index 182f2df1..460086e3 100644
--- a/ru-ru/java-ru.html.markdown
+++ b/ru-ru/java-ru.html.markdown
@@ -425,42 +425,42 @@ class PennyFarthing extends Bicycle {
// Интерфейсы
// Синтаксис определения интерфейса:
// <модификатор доступа> interface <имя> extends <базовый интерфейс> {
-// // Константы
-// // Определение методов.
+// // Константы
+// // Определение методов.
//}
// Пример - Еда:
public interface Edible {
// Любой класс, реализующий этот интерфейс, должен реализовать этот метод.
- public void eat();
+ public void eat();
}
public interface Digestible {
- public void digest();
+ public void digest();
}
// Сейчас мы можем создать класс, реализующий оба эти интерфейса.
public class Fruit implements Edible, Digestible {
- public void eat() {
- //...
- }
+ public void eat() {
+ //...
+ }
- public void digest() {
- //...
- }
+ public void digest() {
+ //...
+ }
}
// В Java Вы можете наследоватьтолько один класс, однако можете реализовывать
// несколько интерфейсов. Например:
public class ExampleClass extends ExampleClassParent implements InterfaceOne, InterfaceTwo {
- public void InterfaceOneMethod() {
+ public void InterfaceOneMethod() {
- }
+ }
- public void InterfaceTwoMethod() {
+ public void InterfaceTwoMethod() {
- }
+ }
}
```
diff --git a/ru-ru/learnjava-ru.html.markdown b/ru-ru/learnjava-ru.html.markdown
deleted file mode 100644
index 0bb6393c..00000000
--- a/ru-ru/learnjava-ru.html.markdown
+++ /dev/null
@@ -1,507 +0,0 @@
----
-
-language: java
-contributors:
- - ["Jake Prather", "http://github.com/JakeHP"]
- - ["Madison Dickson", "http://github.com/mix3d"]
-translators:
- - ["Sergey Gaykov", "https://github.com/gaykov"]
-filename: LearnJava.java
-
----
-
-Java - это объектно ориентированный язык программирования общего назначения,
-основанный на классах и поддерживающий параллельное программирование.
-[Подробнее читайте здесь.](http://docs.oracle.com/javase/tutorial/java/index.html)
-
-```java
-// Однострочные комментарии начинаются с //.
-/*
-Многострочные комментарии
-выглядят так.
-*/
-/**
-JavaDoc-комментарии выглядят так. Они используются для описания класса
-и его членов.
-*/
-
-// Импорт класса ArrayList из пакета java.util.
-import java.util.ArrayList;
-// Импорт всех классов из пакета java.security.
-import java.security.*;
-
-// Каждый .java файл содержит один публичный класс, имя которого совпадает с
-// именем файла.
-public class LearnJava {
-
- // Программа должна содержать метод main, который является точкой входа.
- public static void main (String[] args) {
-
- // System.out.println используется для печати строк.
- System.out.println("Hello World!");
- System.out.println(
- "Integer: " + 10 +
- " Double: " + 3.14 +
- " Boolean: " + true);
-
- // Чтобы напечатать что-либо не заканчивая переводом строки
- // используется System.out.print.
- System.out.print("Hello ");
- System.out.print("World");
-
-
- ///////////////////////////////////////
- // Типы и Переменные
- ///////////////////////////////////////
-
- // Переменные объявляются с использованием <тип> <имя>
- // Byte - 8-битное целое число.
- // (-128 <= byte <= 127)
- byte fooByte = 100;
-
- // Short - 16-битное целое число.
- // (-32,768 <= short <= 32,767)
- short fooShort = 10000;
-
- // Integer - 32-битное целое число.
- // (-2,147,483,648 <= int <= 2,147,483,647)
- int fooInt = 1;
-
- // Long - 64-битное целое число.
- // (-9,223,372,036,854,775,808 <= long <= 9,223,372,036,854,775,807)
- long fooLong = 100000L;
- // L используется для указания на то, что переменная имеет тип long;
- // По умолчанию, числа без L являются integer.
-
- // Замечание: в Java нет беззнаковых типов.
-
- // Float - 32-битное IEEE 754 число с плавающей запятой с одинарной степенью точности.
- float fooFloat = 234.5f;
- // f используется для указания на то, что переменная имеет тип float;
- // иначе, число являлось бы double.
-
- // Double - 64-битное IEEE 754 число с плавающей запятой с двойной степенью точности.
- double fooDouble = 123.4;
-
- // Boolean - true или false
- boolean fooBoolean = true;
- boolean barBoolean = false;
-
- // Char - Простой 16-битный символ Unicode.
- char fooChar = 'A';
-
- // Переменным final не может быть присвоен другой объект.
- final int HOURS_I_WORK_PER_WEEK = 9001;
-
- // Строки.
- String fooString = "My String Is Here!";
-
- // \n - это экранированный символ, который означает начало новой строки.
- String barString = "Printing on a new line?\nNo Problem!";
- // \t - это экранированный символ, который добавляет символ табуляции.
- String bazString = "Do you want to add a tab?\tNo Problem!";
- System.out.println(fooString);
- System.out.println(barString);
- System.out.println(bazString);
-
- // Массивы
- // Размер массива должен быть указан при объявлении.
- // Объявлять массив можно в следующих форматах:
- //<тип данных> [] <имя> = new <тип данных>[<размер массива>];
- //<тип данных> <имя>[] = new <тип данных>[<размер массива>];
- int [] intArray = new int[10];
- String [] stringArray = new String[1];
- boolean boolArray [] = new boolean[100];
-
- // Другой способ объявления и инициализации массива:
- int [] y = {9000, 1000, 1337};
- String names [] = {"Bob", "John", "Fred", "Juan Pedro"};
- boolean bools[] = new boolean[] {true, false, false};
-
- // Индексация массива - доступ к элементу.
- System.out.println("intArray @ 0: " + intArray[0]);
-
- // Массивы изменяемы и индекс в них начинается с 0.
- intArray[1] = 1;
- System.out.println("intArray @ 1: " + intArray[1]); // => 1
-
- // Дополнительно.
- // ArrayLists - похож на массив, но предлагает больше возможностей,
- // его размер изменяемый.
- // LinkedLists - реализация двусвязного списка. Все операции
- // выполняются так, как ожидается от двусвязного
- // списка.
- // Maps - набор объектов, в которых присутствует связь
- // ключ-значение. В Map ключ не может дублироваться.
- // Каждый ключ связан только с одним значением.
- // HashMaps - этот класс использует хэш-таблицу для реализации
- // интерфейса Map. Это позволяет сохранить постоянной
- // скорость выполнения базовых операций, таких как
- // добавление и удаление элементов, вне зависимости
- // от размера множества.
-
- ///////////////////////////////////////
- // Операторы
- ///////////////////////////////////////
- System.out.println("\n->Операторы");
-
- int i1 = 1, i2 = 2; // Сокращение для множественного объявления.
-
- // Арифметика в Java проста.
- System.out.println("1+2 = " + (i1 + i2)); // => 3
- System.out.println("2-1 = " + (i2 - i1)); // => 1
- System.out.println("2*1 = " + (i2 * i1)); // => 2
- System.out.println("1/2 = " + (i1 / i2)); // => 0 (0.5 округлено)
-
- // Остаток от деления
- System.out.println("11%3 = "+(11 % 3)); // => 2
-
- // Операторы сравнения.
- System.out.println("3 == 2? " + (3 == 2)); // => false
- System.out.println("3 != 2? " + (3 != 2)); // => true
- System.out.println("3 > 2? " + (3 > 2)); // => true
- System.out.println("3 < 2? " + (3 < 2)); // => false
- System.out.println("2 <= 2? " + (2 <= 2)); // => true
- System.out.println("2 >= 2? " + (2 >= 2)); // => true
-
- // Побитовые операторы!
- /*
- ~ Унарное побитовое дополнение.
- << Знаковый сдвиг влево.
- >> Знаковый сдвиг вправо.
- >>> Беззнаковый сдвиг вправо.
- & Побитовое И.
- ^ Побитовое исключающее ИЛИ.
- | Побитовое ИЛИ.
- */
-
- // Операторы инкремента.
- int i = 0;
- System.out.println("\n->Inc/Dec-rementation");
- // Операторы ++ и -- увеличивают и уменьшают значение на 1 соответственно.
- // Если они находятся перед переменной, сначала происходит
- // увеличение/уменьшение, затем операция, если после,
- // то сначала выполняется операция, затем увеличение/уменьшение.
- System.out.println(i++); //i = 1, напечатает 0 (пре-инкремент)
- System.out.println(++i); //i = 2, напечатает 2 (пре-инкремент)
- System.out.println(i--); //i = 1, напечатает 2 (пост-декремент)
- System.out.println(--i); //i = 0, напечатает 0 (пре-декремент)
-
- ///////////////////////////////////////
- // Контролирующие операторы.
- ///////////////////////////////////////
- System.out.println("\n->Контролирующие операторы");
-
- // Оператор if такой же, как и в С.
- int j = 10;
- if (j == 10){
- System.out.println("Я напечатаюсь!");
- } else if (j > 10) {
- System.out.println("Я нет.");
- } else {
- System.out.println("И я тоже нет.");
- }
-
- // Цикл while.
- int fooWhile = 0;
- while(fooWhile < 100)
- {
- // System.out.println(fooWhile);
- // Увеличить счетчик.
- // Будет пройдено 100 итераций, fooWhile 0,1,2...99
- fooWhile++;
- }
- System.out.println("Значение fooWhile: " + fooWhile);
-
- // Цикл Do While.
- int fooDoWhile = 0;
- do
- {
- // System.out.println(fooDoWhile);
- // Увеличить счетчик.
- // Будет пройдено 100 итераций, fooDoWhile 0->99
- fooDoWhile++;
- } while(fooDoWhile < 100);
- System.out.println("Значение fooDoWhile: " + fooDoWhile);
-
- // Цикл for.
- int fooFor;
- // Структура цикла for => for(<начальное_состояние>; <условие>; <шаг>)
- for(fooFor=0; fooFor<10; fooFor++){
- // System.out.println(fooFor);
- // Пройдет 10 итераций., fooFor 0->9
- }
- System.out.println("Значение fooFor: " + fooFor);
-
- // Цикл For Each
- // Автоматический проход через массив или список объектов.
- int[] fooList = {1,2,3,4,5,6,7,8,9};
- // Структура цикла for each => for(<объект> : <объект_массив>)
- // читается как: для каждого объекта в массиве
- // заметка: тип объекта должен совпадать с типом массива.
-
- for( int bar : fooList ){
- System.out.println(bar);
- //Пройдет 9 итераций и напечатает 1-9 на новых строках.
- }
-
- // Switch Case
- // switch работает с типами byte, short, char и int.
- // Также он работает с перечислениями,
- // классом String и с некоторыми классами-обертками над
- // примитивными типами: Character, Byte, Short и Integer.
- int month = 3;
- String monthString;
- switch (month){
- case 1:
- monthString = "Январь";
- break;
- case 2:
- monthString = "Февраль";
- break;
- case 3:
- monthString = "Март";
- break;
- default:
- monthString = "Другой месяц";
- break;
- }
- System.out.println("Результат Switch Case: " + monthString);
-
- // Сокращенный синтаксис условного оператора.
- // Вы можете использовать этот синтаксис для быстрого присвоения
- // или логических переходов.
- // Читается так: "Если (условие) истинно, использовать <значение 1>,
- // в ином случае, использовать <значение 2>"
- int foo = 5;
- String bar = (foo < 10) ? "A" : "B";
- System.out.println(bar); // Напечатает А, потому что условие истинно
-
-
- ///////////////////////////////////////
- // Преобразование и приведение типов данных.
- ///////////////////////////////////////
-
- // Преобразование данных.
-
- // Преобразование строки в число.
- Integer.parseInt("123"); // Вернет числовое представление "123".
-
- // Преобразование числа в строку
- Integer.toString(123); // Вернет строковое представление 123.
-
- // Для других преобразований смотрите следующие классы:
- // Double
- // Long
- // String
-
- // Приведение типов
- // Вы так же можете приводить типы в Java.
- // Подробнее об этом можно узнать по ссылке:
- // http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
-
-
- ///////////////////////////////////////
- // Классы и Функции
- ///////////////////////////////////////
-
- System.out.println("\n->Классы и Функции");
-
- // (Класс Bicycle определен ниже)
-
- // Для создания экземпляра класса используется new.
- Bicycle trek = new Bicycle();
-
- // Вызов методов объекта.
- trek.speedUp(3); // Вы должны всегда использовать сеттеры и геттеры.
- trek.setCadence(100);
-
- // toString возвращает строковое представление объекта.
- System.out.println("trek info: " + trek.toString());
-
- } // Конец метода main.
-} // Конец класса LearnJava.
-
-
-// Вы можете включать другие, не публичные классы в .java файл.
-
-
-// Синтаксис объявления класса:
-// <public/private/protected> class <имя класса>{
-// // Поля с данными, конструкторы, функции, все внутри.
-// // Функции называют методами в Java.
-// }
-
-class Bicycle {
-
- // Поля/Переменные класса Bicycle.
- public int cadence;// Публичные(public): Доступны из любого места.
- private int speed; // Приватные(private): Доступны только внутри класса.
- protected int gear;// Защищенные(protected): Доступ из класса и наследников.
- String name; // по умолчанию: Доступны только внутри пакета.
-
- // Конструкторы - способ создания класса.
- // Это конструктор:
- public Bicycle() {
- gear = 1;
- cadence = 50;
- speed = 5;
- name = "Bontrager";
- }
-
- // Это конструктор, который принимает аргументы:
- public Bicycle(int startCadence, int startSpeed, int startGear, String name) {
- this.gear = startGear;
- this.cadence = startCadence;
- this.speed = startSpeed;
- this.name = name;
- }
-
- // Синтаксис функций:
- // <public/private/protected> <тип возвращаемого значения> <имя>(<аргументы>)
-
- // Классы в Java часто реализуют сеттеры и геттеры для своих полей.
-
- // Синтаксис определения метода:
- // <модификатор> <тип возвращаемого значения> <имя>(<аргументы>)
- public int getCadence() {
- return cadence;
- }
-
- // void-методы не возвращают значений.
- public void setCadence(int newValue) {
- cadence = newValue;
- }
-
- public void setGear(int newValue) {
- gear = newValue;
- }
-
- public void speedUp(int increment) {
- speed += increment;
- }
-
- public void slowDown(int decrement) {
- speed -= decrement;
- }
-
- public void setName(String newName) {
- name = newName;
- }
-
- public String getName() {
- return name;
- }
-
- //Метод для отображения значений атрибутов объекта.
- @Override
- public String toString() {
- return "gear: " + gear +
- " cadence: " + cadence +
- " speed: " + speed +
- " name: " + name;
- }
-} // конец класса Bicycle.
-
-// PennyFarthing - это класс, наследованный от Bicycle
-class PennyFarthing extends Bicycle {
- // (Penny Farthings - это такие велосипеды с большим передним колесом,
- // у них нет передач.)
-
- public PennyFarthing(int startCadence, int startSpeed){
- // Вызов конструктора родительского класса.
- super(startCadence, startSpeed, 0, "PennyFarthing");
- }
-
- // Вы должны пометить метод, который переопределяете, при помощи @аннотации
- // Чтобы узнать о том, что такое аннотации и зачем они нужны, почитайте:
- // http://docs.oracle.com/javase/tutorial/java/annotations/
- @Override
- public void setGear(int gear) {
- gear = 0;
- }
-
-}
-
-// Интерфейсы
-// Синтаксис определения интерфейса:
-// <модификатор доступа> interface <имя> extends <базовый интерфейс> {
-// // Константы
-// // Определение методов.
-//}
-
-// Пример - Еда:
-public interface Edible {
- // Любой класс, реализующий этот интерфейс, должен реализовать этот метод.
- public void eat();
-}
-
-public interface Digestible {
- public void digest();
-}
-
-
-// Сейчас мы можем создать класс, реализующий оба эти интерфейса.
-public class Fruit implements Edible, Digestible {
- public void eat() {
- //...
- }
-
- public void digest() {
- //...
- }
-}
-
-// В Java Вы можете наследоватьтолько один класс, однако можете реализовывать
-// несколько интерфейсов. Например:
-public class ExampleClass extends ExampleClassParent implements InterfaceOne, InterfaceTwo {
- public void InterfaceOneMethod() {
-
- }
-
- public void InterfaceTwoMethod() {
-
- }
-}
-
-```
-
-## Почитать еще
-
-Здесь приведены ссылки только для того, чтобы получить общее представление о Java. Гуглите, чтобы найти какие-либо конкретные примеры.
-
-**Официальные руководства Oracle**:
-
-* [Java Tutorial Trail from Sun / Oracle](http://docs.oracle.com/javase/tutorial/index.html)
-
-* [Модификаторы доступа в Java](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
-
-* [Концепции объектно-ориентированного программирования](http://docs.oracle.com/javase/tutorial/java/concepts/index.html):
- * [Наследование](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
- * [Полиморфизм](http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
- * [Абстракция](http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
-
-* [Исключения](http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
-
-* [Интерфейсы](http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
-
-* [Generics](http://docs.oracle.com/javase/tutorial/java/generics/index.html)
-
-* [Java Code Conventions](http://www.oracle.com/technetwork/java/codeconv-138413.html)
-
-**Уроки онлайн**
-
-* [Learneroo.com - Изучение Java](http://www.learneroo.com)
-
-* [Codingbat.com](http://codingbat.com/java)
-
-
-**Книги**:
-
-* [Head First Java](http://www.headfirstlabs.com/books/hfjava/)
-
-* [Objects First with Java](http://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660)
-
-* [Java The Complete Reference](http://www.amazon.com/gp/product/0071606300)
-
-