LXF84:Java
WikiSysop (обсуждение | вклад) (→Добавлен врез) |
(Содержание, раздел Героический объект) |
||
Строка 38: | Строка 38: | ||
Единственный атрибут нашего класса quest имеет тип строка (String). Для установки значения атрибута quest используется метод | Единственный атрибут нашего класса quest имеет тип строка (String). Для установки значения атрибута quest используется метод | ||
setQuest. Метод setQuest является public и не возвращает никакого значения. Для обозначения методов, не возвращающих значение, используется зарезервированное слово void. Для вызова метода setQuest необходим обязательный параметр: Quest типа String. Для получения значения атрибута quest используется метод getQuest, который вызывается без параметров, является открытым и возвращает значение типа String. | setQuest. Метод setQuest является public и не возвращает никакого значения. Для обозначения методов, не возвращающих значение, используется зарезервированное слово void. Для вызова метода setQuest необходим обязательный параметр: Quest типа String. Для получения значения атрибута quest используется метод getQuest, который вызывается без параметров, является открытым и возвращает значение типа String. | ||
+ | |||
+ | Вызов описанных выше методов для объекта ourNewHero осуществляется следующим образом: | ||
+ | <code> | ||
+ | ourNewHero.getQuest(); | ||
+ | ourNewHero.setQuest(“какая-то строка”); | ||
+ | </code> | ||
+ | Парные методы, различающиеся приставками set и get, принято создавать для работы с закрытыми атрибутами. Это обязательное | ||
+ | условие для реализации объекта в виде JavaBean. Что такое JavaBean, мы обсудим позже – сейчас запомните, что такое наименование методов позволяет избавиться от ряда проблем в больших системах. | ||
+ | |||
+ | Приступим к написанию самой сказки. Возьмите следующий код и поместите его в файл '''Story.java'''. | ||
+ | |||
+ | <code> | ||
+ | public class Story { | ||
+ | public static void main(String[] args) { | ||
+ | FirstHero ourNewHero = new FirstHero(“Спасти царевну “); | ||
+ | System.out.println(“Наш герой хочет отправиться в путь и “ + ourNewHero.getQuest()); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Это класс Story, он имеет всего один метод main, который является статичным (static-методы и переменные принято называть переменными класса и методами класса, т.к. они общие для всех объектов) и используется для работы с классом в целом. Метод main – это стартовая точка для запуска программы, с которой начинается интерпретация кода. | ||
+ | |||
+ | В ходе интерпретации метода main создается новый объект ourNewHero, а также вызывается метод println объекта out, который обеспечивает вывод в стандартный выходной поток строковойпеременной. | ||
+ | |||
+ | Откомпилируем код и увидим, что у нас получилось. Для компиляции переместитесь в каталог, где вы разместили свои файлы и выполните следующую команду: | ||
+ | <code> | ||
+ | # javac *.java | ||
+ | </code> | ||
+ | При желании вы можете откомпилировать классы по отдельности, следующим образом: | ||
+ | <code> | ||
+ | # javac Story.java | ||
+ | # javac FirstHero.java | ||
+ | </code> | ||
+ | В итоге вы получите два файла '''Story.class''' и '''FirstHero.class'''. Теперь посмотрим на результат: | ||
+ | <code> | ||
+ | # java Story | ||
+ | Наш герой хочет отправиться в квест и Спасти царевну | ||
+ | </code> | ||
+ | |||
+ | Первая программа на Java готова и работает! Вы создали два класса и научились выводить информацию в консоль. Но мы забыли о | ||
+ | комментариях... | ||
+ | |||
+ | Комментарии бывают нескольких типов: | ||
+ | *Строчные начинаются с символа // и длятся до окончания строки. | ||
+ | *Многострочные комментарии заключаются между /* и */. | ||
+ | *Комментарии JavaDoc – это многострочные комментарии, заключенные между /** и */, например: | ||
+ | |||
+ | <code> | ||
+ | /** | ||
+ | * Класс является прототипом объекта “герой” | ||
+ | * @author Chernousov Anton | ||
+ | * @version 0.1 | ||
+ | */ | ||
+ | public class FirstHero { | ||
+ | … | ||
+ | /** | ||
+ | * Метод предназначен для установки внутренней переменной | ||
+ | quest | ||
+ | * в значение Quest. | ||
+ | * У этого метода один параметр | ||
+ | * @param Quest это переменная означает задание для Героя | ||
+ | */ | ||
+ | public void setQuest(String Quest) | ||
+ | … | ||
+ | </code> | ||
+ | |||
+ | Комментарии JavaDoc предназначены для формирования документации к проекту из исходных кодов. Если добавить в файл '''FirstHero.java''' только что приведенные строки, то с помощью команды '''javadoc -author -version *.java''' можно сформировать документацию к нашему проекту. | ||
+ | |||
+ | JavaDoc позволяет создавать подробную документацию, которая просто необходима для любого достаточно крупного проекта. | ||
+ | === Наследование,интерфейсы и их реализация === | ||
+ | === Полиморфизм === | ||
+ | === Перегруженные методы === | ||
+ | === Вместо заключения === |
Версия 08:49, 7 марта 2008
|
|
|
Содержание |
Сказка Java
ЧАСТЬ 1: От кофеварок до промышленных серверов и биллинговых систем - Java можно встретить буквально везде. Начните изучение этой технологии вместе с Антоном Черноусовым.
Начиная ряд статей о программировании на объектно-ориентированном языке Java, хотел бы выразить свое мнение относительно корпоративного рынка разработки программного обеспечения, на котором в данный момент борются за лидерство два гиганта, две платформы: J2EE и .NET.
В основе платформы J2EE лежит язык программирования Java – приложения, созданные с его помощью, являются кроссплатформенными, сам язык, средства разработки и технология активно поддерживаются многими корпорациями: Sun, Google, IBM, Oracle, BEA. Платформа пользуется большой популярностью и среди компаний, ориентированных на OpenSource, таких как Apache Foundation. В противовес J2EE, корпорация Microsoft предлагает свою технологию .NET, которая является колоссом, построенным на мощи программного обеспечения Microsoft.
Сегодня еще нельзя сказать, какая технология станет доминирующей, и, возможно, от вас зависит скорость распространения современной кроссплатформенной технологии создания приложений J2EE и языка программирования Java.
Предложенные вашему вниманию уроки позволят овладеть основными понятиями ООЯ Java и создавать различные приложения с его помощью. Рассмотрев основы языка, мы сможем изучить типовые решения (паттерны) в программировании и приступить к изучению J2EE. В первом уроке мы создадим свое первое приложение и разберемся с основными понятиями: инкапсуляция, наследование и полиморфизм. Для выполнения этого урока нам понадобится пакет Java SDK 1.5, текстовый редактор и немного терпения.
Героический объект
Приступая к этой серии материалов, я вспомнил, что, как правило, изучение языков программирования начинается с написания приложения «Hello World!», но такой прием настолько изъезжен, что я намереваюсь предложить пример поинтереснее: мы напишем приложение, рассказывающее сказку. Основа приложения – два класса. Каждый класс содержит члены двух видов: атрибуты и методы. Атрибуты – это данные, принадлежащие самому классу. Совокупное значение атрибутов определяет состояние объекта или класса. Метод – это последовательность операторов, изменяющих значения атрибутов и, как следствие, состояние класса или объекта.
В каждой интересной сказке должен быть свой герой. Предлагаю взглянуть на класс, который реализует нашего героя. Итак, по порядку. Следующий код необходимо сохранить в файл FirstHero.java.
public class FirstHero { private String quest; public FirstHero(String Quest) { this.quest = Quest; } public void setQuest(String Quest){ this.quest = Quest; }; public String getQuest(){ return quest; }; }
Расположение одного класса в одном файле считается хорошим тоном среди программистов на Java – так что приучайтесь к нему сразу. Имя файла должно совпадать с названием класса, расширение у файла – .java.
Первый созданный нами класс содержит один защищенный атрибут (private – модификатор, зарезервированное слово, которое обеспечивает возможность обращения к члену класса только внутри класса) и три открытых метода (public – модификатор, зарезервированное слово, которое обеспечивает возможность обращения к члену класса из любого другого класса.). Хорошо спроектированный класс не имеет открытых атрибутов, что позволяет быть уверенным в правильной работе с ними. Доступ к защищенным атрибутам осуществляется через открытые методы. Такая организация класса позволяет разработчику через методы реализовать различные проверки и исключить неправильное поведение объекта. Класс представляет собой объединение атрибутов и методов в единое целое – подобное объединение называется инкапсуляцией.
Вы можете заметить, что первый метод (третья строка представленного ранее листинга) имеет то же название, что и класс – FirstHero. Такой метод называется конструктором. Конструктор – это метод, который используется при создании экземпляра класса для задания внутреннего состояния объекта, например:
FirstHero ourNewHero = new FirstHero(“Спасти царевну”);
Единственный атрибут нашего класса quest имеет тип строка (String). Для установки значения атрибута quest используется метод setQuest. Метод setQuest является public и не возвращает никакого значения. Для обозначения методов, не возвращающих значение, используется зарезервированное слово void. Для вызова метода setQuest необходим обязательный параметр: Quest типа String. Для получения значения атрибута quest используется метод getQuest, который вызывается без параметров, является открытым и возвращает значение типа String.
Вызов описанных выше методов для объекта ourNewHero осуществляется следующим образом:
ourNewHero.getQuest(); ourNewHero.setQuest(“какая-то строка”);
Парные методы, различающиеся приставками set и get, принято создавать для работы с закрытыми атрибутами. Это обязательное условие для реализации объекта в виде JavaBean. Что такое JavaBean, мы обсудим позже – сейчас запомните, что такое наименование методов позволяет избавиться от ряда проблем в больших системах.
Приступим к написанию самой сказки. Возьмите следующий код и поместите его в файл Story.java.
public class Story { public static void main(String[] args) { FirstHero ourNewHero = new FirstHero(“Спасти царевну “); System.out.println(“Наш герой хочет отправиться в путь и “ + ourNewHero.getQuest()); } }
Это класс Story, он имеет всего один метод main, который является статичным (static-методы и переменные принято называть переменными класса и методами класса, т.к. они общие для всех объектов) и используется для работы с классом в целом. Метод main – это стартовая точка для запуска программы, с которой начинается интерпретация кода.
В ходе интерпретации метода main создается новый объект ourNewHero, а также вызывается метод println объекта out, который обеспечивает вывод в стандартный выходной поток строковойпеременной.
Откомпилируем код и увидим, что у нас получилось. Для компиляции переместитесь в каталог, где вы разместили свои файлы и выполните следующую команду:
# javac *.java
При желании вы можете откомпилировать классы по отдельности, следующим образом:
# javac Story.java # javac FirstHero.java
В итоге вы получите два файла Story.class и FirstHero.class. Теперь посмотрим на результат:
# java Story Наш герой хочет отправиться в квест и Спасти царевну
Первая программа на Java готова и работает! Вы создали два класса и научились выводить информацию в консоль. Но мы забыли о комментариях...
Комментарии бывают нескольких типов:
- Строчные начинаются с символа // и длятся до окончания строки.
- Многострочные комментарии заключаются между /* и */.
- Комментарии JavaDoc – это многострочные комментарии, заключенные между /** и */, например:
/** * Класс является прототипом объекта “герой” * @author Chernousov Anton * @version 0.1 */ public class FirstHero { … /** * Метод предназначен для установки внутренней переменной quest * в значение Quest. * У этого метода один параметр * @param Quest это переменная означает задание для Героя */ public void setQuest(String Quest) …
Комментарии JavaDoc предназначены для формирования документации к проекту из исходных кодов. Если добавить в файл FirstHero.java только что приведенные строки, то с помощью команды javadoc -author -version *.java можно сформировать документацию к нашему проекту.
JavaDoc позволяет создавать подробную документацию, которая просто необходима для любого достаточно крупного проекта.