Московский государственный индустриальный университет
Опубликован: 27.09.2006 | Доступ: свободный | Студентов: 3335 / 382 | Оценка: 4.17 / 3.79 | Длительность: 24:17:00
Специальности: Программист
Лекция 2:

Основы языка Java

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Аннотация: Java - язык ООП. Свойства объектно-ориентированных языков программирования. Основные свойства объектно-ориентированных программ. Типы, переменные и операторы. Использование и реализация класса Xterm. Логические и условные операторы.
Ключевые слова: Java, Интернет, язык программирования java, объектно-ориентированный, класс, аплет, безопасность, надежность, интерактивность, производительность, объектно-ориентированное программирование, ООП, представление, объект, метод, управляющие, объединение, язык программирования, инкапсуляция, наследование, , полиморфизм, свойства программы, программа, корректность, эффективность, удобство эксплуатации, удобство сопровождения, понятность, целый, Правильность, модифицируемость, алгоритм, определение, строчная константа, имя файла, компилятор, javac, произвольное, форматирование, ПО, лексема, ключевое слово, идентификатор, строковый, литерал, значение, Документирование программы, тело функции, файл, вывод, состояние, компонент, пространство состояний, вызов метода, синтаксис, параметр, аргумент, курсор, простой тип, primitive, ссылочный тип, Reference, логический тип, ложь, истина, символьный тип, параграф, переменная, присваивание, оператор присваивания, описание переменной, строгая типизация, автоматическое преобразование, обратное преобразование, оператор преобразования типа, операторы, унарный оператор, бинарный оператор, тернарный оператор, операции, префиксный оператор, постфиксный оператор, арифметический оператор, битовый оператор, оператор отношения, логический оператор, цвет фона, полиморфный оператор, печать, методы класса, исключительная ситуация, перегруженный метод, перегрузка метода, линейная программа, управляющая конструкция, условный оператор, предикат, логические выражения, равенство, неравенство, ссылка, оператор отрицания, логическое И, логическое ИЛИ, исключающее ИЛИ, условное И, условное или, оператор условия, отрицание, дизъюнкция, конъюнкция, эквивалентность, блок, поток управления, выражение, целочисленный тип, операнд, Произведение, действительное число, координаты, прямой, расстояние, коэффициенты

Литературы, содержащей описание языка Java, сейчас достаточно много. На первой стадии знакомства с ним можно воспользоваться любым изданием, однако такие книги, как [11], [13] и [10] из библиографического списка, заведомо окажутся полезными и в дальнейшем.

Java - язык ООП

В информатике и программировании изменения происходят постоянно и с большой скоростью. Одним из самых значительных изменений за последние двадцать лет стало появление общемировой сети Интернет и языка программирования Java. Важнейшими свойствами этого языка, называемого даже революционным, являются следующие:

  • Java является современным объектно-ориентированным языком;
  • Java предоставляет программисту богатый набор классов различных объектов;
  • Java позволяет создавать аплеты, являющиеся небольшими, надежными, динамичными и не зависящими от платформы сетевыми приложениями, которые встраиваются в веб-страницы Интернет.

Выбор этого языка в качестве базового для нашего курса обусловлен прежде всего наличием у него таких качеств, как простота и мощь, безопасность, объектная ориентированность, надежность, интерактивность, архитектурная независимость, возможность интерпретации, высокая производительность и легкость в изучении. Часть из них нам понадобится с первых же шагов, другие — несколько позже.

Объектно-ориентированное программирование настолько интегрировано в Java, что написание даже простейших программ требует знания основных принципов ООП. Хотя в первой части курса мы и не собираемся акцентировать внимание на них, общее представление об основах объектно-ориентированного подхода необходимо иметь уже сейчас.

Объектно-ориентированное программирование представляет собой технологию программирования, в основе которой лежит способность человека обобщать, классифицировать и генерировать абстракции. Концепция ООП базируется на таких понятиях как объекты и классы. В повседневной жизни объекты встречаются на каждом шагу: компьютеры, телефоны, машины, дома, чашки и многое другое. В программировании это могут быть символы, числа, строки, а также объекты, придуманные и реализованные автором программы.

Важно то, что объекты — это не только некоторые значения (данные). В них также имеются методы, связывающие данные и управляющие ими. Объекты представляют собой объединение структур данных, содержащих информацию, и методов и функций для управления этими данными.

Произвольный объектно-ориентированный язык программирования характеризуют три основных свойства:

  • инкапсуляция, т.е. совмещение данных с функциями (методами), предназначенными для манипулирования этими данными, в одном объекте, сопровождающееся сокрытием его внутренней структуры от внешнего мира; в языке Java это достигается путем введения механизма классов;
  • наследование, т.е. создание новых, производных классов, на базе уже имеющихся, которые наследуют данные и методы от ранее определенных базовых классов; при этом возможно переопределение или добавление новых данных и методов; в результате создается так называемая иерархия классов ;
  • полиморфизм, т.е. наличие у разных классов методов с одним и тем же именем, в результате чего каждый из классов имеет возможность по-своему выполнять связанные с этим методом действия.

Более полную информацию, связанную с объектно-ориентированным программированием, можно почерпнуть из уже упоминавшейся книги [10] и замечательной, хотя и сложной для новичка, книги [2]. В нашем же курсе мы вернемся к этому вопросу в "Проект "Компилятор формул""

Основные свойства программ и первые примеры

Перед тем, как перейти непосредственно к примерам программ, обсудим вопрос о том, какими качествами должна обладать хорошая программа.

Оказывается, что таких свойств достаточно много: корректность, эффективность, удобство эксплуатации, надежность, удобство сопровождения, понятность и еще целый ряд других. Четырьмя самыми главными из них являются корректность или правильность, эффективность и понятность и модифицируемость.

Так как программа на языке Java является просто записью алгоритма решения определенной задачи, прежде всего она должна быть правильной, то есть реализующей корректный алгоритм решения исходной задачи. Оказывается, что не так просто не только научиться писать правильные программы, но даже и просто сформулировать, что это такое. Только в "Спецификация программ и преобразователь предикатов" , после предварительного изучения основ теории предикатов, мы сможем дать точное определение понятию правильная программа.

Обсуждению вопросов эффективности программ посвящена значительная часть "Особенности представления чисел в ЭВМ" , в которой весьма убедительно доказывается важность быстрых алгоритмов. Сейчас же ограничимся только одним примером: времена работы быстрой и обычной программ, упорядочивающих в порядке возрастания миллион чисел, отличаются в 50000 раз!

Свойства понятности и модифицируемости программ связаны самым тесным образом: очень трудно изменить программу, которую не понимаешь. В реальной жизни программиста задачи на модификацию уже написанных кем-то ранее программ встречаются едва ли не чаще, чем задачи на разработку программ с нуля. Решение задач на модификацию является также и весьма эффективным способом изучения как языка, так и методов программирования.

Научиться писать понятные и легко модифицируемые программы существенно легче, чем правильные и эффективные. Для этого достаточно только соблюдать несколько простых общих правил, которые мы сформулируем в применении к языку Java:

  • используйте в программе осмысленные имена для всех переменных, отличных от счетчиков и других подобных величин;
  • всем константам, отличным от нуля и единицы, присваивайте имена;
  • соблюдайте принятый в языке стиль написания имен (имена классов должны начинаться с прописной буквы, переменных и методов — со строчной, констант — состоять полностью из прописных букв);
  • применяйте разумное форматирование текста программы;
  • там, где это необходимо, используйте комментарии.

Программа на языке Java пишется в обычном текстовом файле, содержащем в себе определения одного или нескольких классов. Имя файла обязано совпадать с именем основного класса, определенного в нем, и иметь расширение java. Компилятор, запускаемый обычно с помощью команды javac Filename.java, при отсутствии ошибок компиляции порождает один или несколько выходных файлов с именами, совпадающими с именами содержащихся в исходном файле классов, и расширением class. Для запуска откомпилированной программы после этого необходимо выполнить команду java Filename.

В соответствии с давно установившейся традицией рассмотрим в качестве первой задачи следующую.

Задача 2.1. Напишите программу, выводящую на экран строку текста Здравствуй, мир!.

Текст программы

public class Hello {
    public static void main(String[] args) {    
        System.out.println("Здравствуй, мир!");
    }
}

Приведенный выше текст обязательно должен содержаться в файле с именем Hello.java (обратите внимание на то, что первая буква в имени является прописной, а остальные — строчными).

Как и большинство других языков, Java допускает произвольное форматирование текста программы. Это означает, что любую программу в принципе можно записать в одну длинную строку или, наоборот, максимально растянуть по вертикали, размещая на каждой строке только по одной лексеме — минимальной неделимой единице языка. Приведенная выше программа состоит из следующей цепочки лексем: ключевые слова public, class, идентификатор Hello, разделитель {, ключевые слова public, static и void, идентификатор main, разделитель (, идентификатор String, разделители [ и ], идентификатор args, разделители ) и {, идентификатор System, разделитель ., идентификатор out, разделитель ., идентификатор println, разделитель (, строковый литерал "Здравствуй, мир!", разделители ), ;, и дважды }. Данная программа не содержит лексем только еще одного типа, существующего в языке — констант, примером которой является, скажем, число 5.

Человек, однако, не машина, и ему далеко не безразлично, как отформатирован текст программы. Неудачное форматирование существенно усложняет правильное восприятие текста и порождает потенциальные ошибки. Не обсуждая сейчас вопрос о том, какой именно стиль форматирования программ на языке Java является наиболее правильным, мы призываем читателя следовать тем образцам, которые он найдет в книге — они предлагают заведомо не самый плохой вариант.

Запомните, что в языке Java существует около шести десятков зарезервированных ключевых слов, которые имеют вполне определенное значение и не могут быть использованы для иных целей, кроме тех, для которых они предназначены.

Последовательное выполнение двух команд javac Hello.java и java Hello должно привести к тому, что на экране появится результат работы программы — строка Здравствуй, мир!

Мы не будем приводить подробный разбор того, каков смысл отдельных частей рассмотренной программы, — этот комментарий можно найти в любой книге по языку Java. Вместо этого мы обсудим решение следующей задачи, в которой будут использованы методы уже анонсированного выше класса Xterm.

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Анастасия Халудорова
Анастасия Халудорова
екатерина яковлева
екатерина яковлева