banner banner banner
Основы программирования с Java
Основы программирования с Java
Оценить:
Рейтинг: 0

Полная версия:

Основы программирования с Java

скачать книгу бесплатно

Основы программирования с Java
Тимур Машнин

Эта книга предназначена для всех, кто хочет изучить основы программирования с использованием языка Java.

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

Тимур Машнин

Основы программирования с Java

Введение. Что такое хорошо определенные задачи

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

Тем не менее, это не всегда так, по крайней мере пока. Например, если кто-то попытается использовать компьютерную программу, чтобы понять пейзаж вокруг нас, производительность компьютера все равно будет далека от того, чтобы совпадать с ощущениями человека.

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

Что мы подразумеваем под четко определенной задачей.

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

Например, если вас попросили найти решение арифметического выражения "1 умножить на 2 плюс 3", вы бы знали, что мы должны сначала умножить 1 на 2, что дает промежуточный результат 2, и тогда результат умножения будет добавлен к 3, и 5 будет в качестве окончательного ответа.

Но если я попрошу вас решить задачу "1 плюс 2 умножить 3", я хочу, чтобы вы подумали о том, каким может быть ответ.

Разные люди могут давать различные ответы, потому что некоторые могут подумать, что умножение должно быть выполнено до прибавления, что во первых надо умножить 2 на 3, что дает 6 в качестве промежуточного результата, а затем добавить 6 к 1, и это дает 7 в качестве окончательного ответа, но некоторые могут просто следовать порядку операторов в арифметическом выражении, в этом случае мы сначала добавим 1 к 2, и это дает 3 в качестве промежуточного результата, и затем умножим 3 на 3, и получим 9 как конечный результат.

Так какой из этих двух ответов является правильным ответом?

Это зависит от того, какие правила должны быть использованы при определении порядка операций.

И мы вернемся к этому вопросу позднее.

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

И вы можете реализовать решения задач с помощью Java в интегрированной среде разработки (IDE).

Есть много доступных языков программирования, и Java является лишь одним из них.

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

Поговорим немного о том, что такое абстракции данных.

Абстракция данных отделяет существенные свойства объектов данных от деталей того, как они реализуются, то есть, детали реализации объектов данных скрыты от пользователей.

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

Например, число может быть представлено разными способами.

На человеческом языке, наиболее часто используемая система чисел – это арабские цифры 0, 1, … 9, но есть и римские цифры, обратите внимание, что только три символа, вертикальная черточка, V и крест используются для представления чисел от 1 до 10, и нет никакой специальной римской цифры для нуля.

Есть также китайские цифры и многие другие. И в компьютерах, числа представляются нулем и 1.

При этом, что независимо от того, как числа представляются, мы ожидаем, что операции, выполняемые над числами, будут подчиняться определенным правилам.

Например, при добавлении 1 к 2, как ожидается, три будет в качестве ответа, независимо оттого, что это делается китайцем, итальянцем, американцем или компьютером. И можно придумать другие жизненные примеры, использующие абстракцию.

Например, за рулем автомобиля, когда мы нажимаем на газ, автомобиль должен ускориться, и когда мы нажимаем на тормоз, предполагается, что автомобиль замедлится.

Но при этом мы не заботимся о механике, как это работает.

При использовании приложений на смартфонах, скажем iPhone, все, что вам нужно знать, это только то, что приложения должны делать, но вам действительно все равно, как они были фактически реализованы.

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

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

Теперь, правильный подход к решению задач требует знания информатики.

Информатика является дисциплиной, изучающей теорию, дизайн и применения вычислительных систем.

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

Изучение аппаратных средств включает в себя проектирование и строительство компьютерных систем в виде физических устройств для выполнения программы.

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

В центре внимания данной книги – программное обеспечение компьютерных систем.

В конце концов, основное использование компьютеров, это решение реальных задач.

В этой книги вы узнаете некоторые фундаментальные концепции программирования для решения задач с использованием компьютерных программ.

Здесь мы будем использовать много примеров, которые работают с фотографиями и изображениями, чтобы проиллюстрировать некоторые важные концепции программирования.

И вы сможете применить эти понятия для решения реальных задач.

Аппаратные средства

Давайте начнем рассмотрение основных компонентов компьютерных систем. И начнем мы с аппаратных средств.

В общем и целом, есть два основных компонента в компьютере, а именно аппаратные и программные компоненты.

В 1946 году, первый, общего назначения, электронный компьютер в мире был построен Пенном.

Он назывался ENIAC. ENIAC означает электронный цифровой интегратор и компьютер.

Как вы можете видеть на этом слайде, ENIAC был большой машиной, которая весила более 30 тонн, содержала приблизительно 18000 вакуумных трубок, и размещалась в большой комнате 180 квадратных метров.

Если сравнивать с сегодняшним компьютером, вы увидите, что компьютерный чип, который используется в вашем мобильном телефоне, во много-много раз более мощный, чем ENIAC.

Существует важное наблюдение, сделанное Гордоном Муром, сооснователем Intel, он предсказал в 1965 году, что мощность компьютерного чипа удваивается примерно каждые 18 месяцев.

Это наблюдение еще работает и сегодня.

Это имеет некоторые очень важные последствия, потому что задача, которая требует одну минуту времени обработки, используя сегодняшнюю машину, потребовала бы более 40 лет времени обработки с помощью компьютера, разработанного 40 лет назад, то есть, машина все равно бы не выполнила задачу после 40 лет.

В общем и целом, компьютер представляет собой электронное устройство, которое работает под управлением команд (или программ), хранящихся в запоминающем устройстве.

Диаграмма здесь иллюстрирует поток данных с помощью различных аппаратных компонентов.

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

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

Эту модель вычислений часто называют хранимой программой компьютера.

Основным компонентом компьютера является центральный процессор, который считается мозгом компьютера.

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

Центральный процессор получает инструкции из памяти и выполняет вычисление данных.

И ЦП, как правило, состоит из двух частей, а именно, это арифметико-логическое устройство и блок управления.

Арифметико-логическое устройство ALU отвечает за вычисления, в том числе основных арифметических операций, таких как сложение, вычитание, умножение и деление, и логической оценки данных, в том числе логических сравнений, таких как "равно", "больше чем" или "меньше чем".

Блок управления контролирует и координирует общие операции внутри компьютера.

Основные функции блока управления включают в себя:

Управление доступом к главной памяти хранения.

Управление последовательностью, в которой команды выполняются.

Регулирование времени всех операций, осуществляемых в CPU.

Отправка и прием сигналов управления в и из периферийных устройств, таких как клавиатура и принтер.

Управление потоком данных между АЛУ и основной памятью.

Существует три вида памяти для работы компьютера.

Это память, которая находится внутри процессора, и которая известна как «регистр».

Регистры, это быстрая память для хранения данных, которые процессор в настоящее время обрабатывает.

Все данные должны быть сохранены в регистре, прежде чем они могут быть обработаны.

Например, в сложении двух чисел, оба числа должны быть в регистрах, а результат также будет помещен в регистр.

Это основная память, которая также известна как оперативное запоминающее устройство (ОЗУ), которая содержит инструкции программы и данные для программы.

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

Устройства ввода несут ответственность за получение информации от пользователей.

Самым распространенным устройством ввода является клавиатура, которая стала стандартным устройством для большинства компьютеров.

Кроме того, существуют и другие устройства ввода, которые помогают улучшить пользовательский интерфейс, например, мышь.

Некоторые устройства ввода разработаны с конкретной целью.

Например, микрофон для записи звука, считыватель штрих-кода для считывания штрих-кодов, сканер для сканирования документов и цифровой фотоаппарат для съемки.

Я уверен, что вы можете придумать и другие примеры.

Устройства вывода отвечают за представление информации для пользователей.

Два основные типы устройств вывода, это мониторы и принтеры.

Мониторы отображают информацию на экране.

Тем не менее, информация, представленная таким образом, является энергозависимой и не-портативный.

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

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

В настоящее время, так как мобильные устройства набирают популярность, сенсорные экраны используются в качестве устройств ввода и вывода.

Опять же, вы можете придумать и другие примеры.

Кроме того, существуют внешние запоминающие устройства, такие как CD, DVD и жесткие диски.

Емкость жесткого диска в настоящее время может легко держать несколько сотен гигабайт данных.

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

В общем и целом, они медленнее и менее эффективны, чем основная память.

В течение последних 10 лет, такой вид носителей, становится очень популярным, как USB или карты памяти.

USB накопители в настоящее время могут легко хранить 10-ки и даже более 100 Гбайт данных.

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

Программное обеспечение