Java: различия между версиями

Содержимое удалено Содержимое добавлено
м Добавил пропущенную букву
м Ссылки; избыточные <big /> и <font /> вокруг <source />; пробелы.
Строка 9:
 
== Что и где скачать ==
Для компиляции и запуска программ вам понадобится [http[w://ru.wikipedia.org/wiki/JDK |JDK]] (Java Development Kit), который можно скачать <!--[http://java.sun.com/javase/downloads/index.jsp здесь] или--> на сайте http://www.oracle.com/technetwork/java/javase/overview/index.html компании [[:w:Oracle|Oracle]].
 
Учебник и краткий справочник по Java "Полный справочник по Java. Java SE 6 Edition. Шилдт Г. 7-е издание" в формате [[:w:DjVu|djvu]] можно скачать по ссылке на странице http://libbib.org/?p=2552 и др.
Строка 20:
1. Создаем файл [[Java/HelloWorld.java|HelloWorld.java]] [[Работа с электронным текстом|в любом текстовом редакторе]] и пишем в него:
<!--Как изменить шрифт, вид и размер шрифта до 10-го размера описано в Википедии на странице "Семейство шрифтов (HTML)"-->
<font face="verdana" size="2">
<source lang="java">
class HelloWorld {
Строка 26 ⟶ 25 :
System.out.println("Hello World!");
}
}</source></font>
2. [[/Запуск программы#Подготовка пакета SDK или пакета JDK к работе|Подготовим пакет SDK или пакет JDK к работе]]:<br>
2.1. [[/Запуск программы#Открытие окна системного ввода-вывода|Откроем окно системного ввода-вывода]].<br>
2.2. [[/Запуск программы#Указание пути к папке bin|Укажем путь к папке bin с компилятором javac.exe]].<br>
Строка 56 ⟶ 55 :
 
=== Наследование ===
Классы могут наследовать методы и данные один другого. Наследование реализуется с помощью ключевого слова ''extends'' (class <имя_класса> extends <имя_суперкласса>).
Если существуют ящик и комната, объем которых вычисляется перемножением трех параметров, то можно определить материнский класс для двух вышеперечисленных классов, чтобы в нем определить вычисление объема, а наследники будут только пользоваться унаследованным свойством, а не переписывать его несколько раз. В то же время при желании любой из наследников может перегрузить унаследованное свойство. Так, например, если в комнате находится какой-то предмет и объем комнаты не должен включать объема этого предмета, то функция вычисления объема уже не будет одинаковой для ящика и комнаты.
 
Строка 70 ⟶ 69 :
== От абстракции к программированию ==
Теперь давайте попробуем записать пример с комнатами на языке Java. Сначала создадим интерфейс.
<big><source lang="java">
interface Capacity {
public double getCapacity(); //Заметим, что у функции пока нет тела
}
</source></big>
 
Класс комната и ящик поддерживают интерфейс Capacity и могут выглядеть так:
 
<big><source lang="java">
class Room implements Capacity {
public double width;
Строка 98 ⟶ 97 :
}
}
</source></big>
 
Не будем пока обращать внимания на слово '''public''', об этом мы поговорим позже в разделе [[Java/Видимость|видимость]]. А обратим внимание на то, что оба класса как две капли воды похожи друг на друга. Давайте вынесем одинаковую функциональность в общий класс-предок:
 
<big><source lang="java">
class Base implements Capacity {
public double width;
Строка 118 ⟶ 117 :
class Room extends Base {
}
</source></big>
 
Допустим, что в любой комнате обязательно находится один объект определенного объёма и объем комнаты не включает объема данного объекта. Тогда класс Room будет выглядеть так:
 
<big><source lang="java">
class Room extends Base {
public Capacity inner;
Строка 130 ⟶ 129 :
}
}
</source></big>
 
Обратите внимание, что мы перегрузили функцию '''getCapacity''' (строки 4-6) и теперь объем комнаты не включает объема внутреннего объекта.
Строка 136 ⟶ 135 :
Ну вот и пришло время проверить все то, что мы написали. Для проверки создадим еще один класс.
 
<big><source lang="java">
class Test {
public static void main(String[] args) {
Строка 152 ⟶ 151 :
}
}
</source></big>
 
Запускаем:
Строка 164 ⟶ 163 :
== Swing в примерах ==
=== Создание пустого окна ===
<big><source lang="java">import javax.swing.*;
 
class Main
Строка 175 ⟶ 174 :
frame.setVisible(true);
}
}</source></big>
 
== Ссылки ==