Пример 1.1. Файл NewClass.java



Nbsp;   ТЕХНОЛОГИЯ РАЗРАБОТКИ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ ПРОГРАММ НА JAVA   ОГЛАВЛЕНИЕ   Предисловие   4 Глава 1. Основы программирования на Java. Создание простейших приложений и апплетов в NetBeans 7.0………………..     5 Глава 2. Обработка событий. Графика………………………..   36 Глава 3: Разработка графического интерфейса……………… 56 Глава 4. Классы-коллекции……………………………………   79 Глава 5. Многопотоковые приложения……………………….   101 Глава 6. Потоки данных. Работа с локальными файлами……   119 Глава 7. Сетевые приложения «клент-сервер»……………….   139 Глава 8. Generic-классы в Java…………………………………   152

ГЛАВА 1. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА JAVA. СОЗДАНИЕ ПРОСТЕЙШИХ ПРИЛОЖЕНИЙ И

АППЛЕТОВ В NETBEANS 7.0

При появлении Java двумя основными формами Java-программ являлисьприложение иапплет.

Java-приложения выполняются под управлением специального интерпретатора (java.exe). Приложения похожи на программы, созданные, например, с использованием языка C/C++, хотя для своей работы они требуют присутствия Java виртуальной машины (JVM). Это полноправные приложения, которые существуют и выполняются в локальных компьютерных системах пользователей.

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

Инструментальная среда разработки программ на Java

 

Для создания программ на Java возможно использование нескольких сред разработки. Это может быть Microsoft Visual J++, JBuilder,IntelliJ Idea, Eclipse или NetBeans IDE

Использование среды NetBeans 7.0

1. Создание нового Java-проекта. (File – New Project) (рис. 1.1).

2. Настройка проекта (рис. 1.2). Необходимо задать имя проекта (в примере LabWorkN), его расположение и имя главного класса (в примере labworkn.Main). Обратите внимание, что имя разделено точкой. До точки – имя пакета (package), после – имя класса. Названия пакетов принято писать строчными буквами, а заглавные использовать только в именах классов.

 

 

Рис. 1.1. Создание нового проекта

 

 

Рис. 1.2. Задание имен проекта и главного класса

 

Добавление класса, интерфейса, апплета и т.д. в проект (правая кнопка мыши по пакету) (рис. 1.3).

 

Рис. 1.3. Добавление новых модулей в проект

 

3. Если проект не был скомпилирован или был изменен, при запуске (через панель инструментов (см. рис.1.4), меню Run или F6) будет произведена компиляция. Результат выполнения консольного приложения, описание ошибок и исключений выводится в окно Output. Компиляция может быть произведена отдельно, без запуска (Build Main Project или Clean and Build Main Project).

4. Для отладки программы устанавливаем точку останова щелчком по полю с номером строки кода. Появится красный квадрат напротив этой строки. При помощи команды Debug Main Project (Ctrl + F5) запускаем программу в режиме отладки (см. рис.1.5).

5. Создание простейшего приложения. Java-файл будет содержать следующий код:

 

import java.util.*;

 

public class Hello {

public static void main(String args[]) {

System.out.println("Hello, world");

Date d=new Date();

System.out.println("Date:"+d.toString());

}

}

 

 

Рис. 1.4. Запуск программы

 

Рис. 1.5.Отладка программы

Так как класс Hello объявлен с модификатором public, то имя файла с его исходным кодом должно совпадать с именем класса. Для классов с модификатором по умолчанию имена файлов могут быть любыми (расширение обязательно .java).

Все классы являются производными (или подклассами) от существующих классов. В случае - если не определен суперкласс,то по умолчанию предполагается, что таким суперклассом является класс Object.

 

Структура Java-программы

 

Все Java-программы содержат в себе четыре разновидности блоков: классы (classes), методы (methods), переменные (variables) и пакеты (package).

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

Пакеты содержат в себе классы и помогают компилятору найти те классы, которые нужны ему для компиляции пользовательской программы. Классы, входящие в один пакет, особым образом зависят друг от друга. Например, приложение Hello импортирует пакет java.util, в котором содержится класс Date.

Java-программа может содержать в себе любое количество классов, но один из них всегда имеет особый статус и непосредственно взаимодействует с оболочкой времени выполнения (первичный класс). Для приложений первичный класс должен обязательно содержать метод main().

Переменные

 

В Java существует два вида переменных:

- примитивные типы(primitive types). К ним относятся стандартные, встроенные в язык типы для представления численных значений, одиночных символов и булевских (логических) значений. Все примитивные типы имеют предопределенный размер занимаемой ими памяти.

- ссылочные типы (reference type) - относятся типы, определенные пользователем (классы, интерфейсы) и типы массивов. Все ссылочные типы являются динамическими типами, для них выделяется память во время работы программы.

Переменные примитивных типов передаются в методы по значению, тогда как ссылочные переменные всегда передаются по ссылке.

 

Примитивные типы. Всего в Java определено восемь примитивных типов: int (4b), short (2b), byte (1b), long (8b), float (4b), double (8b), boolean (true, false), char (2b).

Первые шесть типов предназначены для хранения численных значений, с ними можно производить арифметические операции. Тип char предназначен для хранения символов в стандарте Unicode (2 байта). Булевские (логические) переменные могут иметь одно из двух допустимых значений: true или false.

 

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

Типы, определенные пользователем. Язык Java позволяет определять новые типы помощью новых классов. Рассмотрим пример определения и использования нового класса (нового типа) MyType:

 

Пример 1.1. Файл NewClass.java

class MyType  {            // объявляется класс

public int myData=5; // переменная-элемент класса

MyType() {                           // конструктор без параметров

System.out.println("Constructor without parameters");

}

MyType(int v) {                 // конструктор с одним параметром

System.out.print("Constructor with one parameter");

System.out.println(" Setting myData="+v);

myData=v;

}

public void myMethod() {    // метод класса

System.out.print("myMethod!");

System.out.println(" myData="+myData);

}

}

 

//  Реализация объектов и действия с ними

public class NewClass { // первичный класс

public static void main(String[] args)    {

// объект obj1 - реализация класса MyType

MyType obj1=new MyType();

obj1.myMethod();           // использование метода

// доступ к открытой переменной

System.out.println("---obj1.myData="+obj1.myData);

// объект obj2 - реализация класса MyType

MyType obj2=new MyType(100);

// доступ к открытой переменной

System.out.println("----obj2.myData="+obj2.myData);

}

}

 

Класс String (тип строковых переменных). Класс String – это класс неизменяемых строк. Данный класс представляет собой гибрид примитивных и ссылочных типов. В основе своей тип String является ссылочным типом, содержащий в себе методы и переменные. Но в то же время этот тип проявляет некоторые свойства примитивного типа, что выражается, в том, как осуществляется присвоение значение этим переменным при помощи знака операции = (но можно для инициализации создаваемых объектов пользоваться и явным вызовом конструктора), например:

String S1="Hello";                 // 1-ый способ инициализации

String S2=new String("Hello");  // 2-ый способ инициализации

Кроме того, строковый тип проявляет свойства примитивных типов в том, что для конкатенации (сложения) двух строк можно использовать знак операции +, например:

String S0="Variable ";

int myInt=3;

String S1=S0+"myInt"+myInt;

String S2=new String(S0+"myInt"+myInt);

Несмотря на поддержку таких операций, строковые переменные типа String являются в то же время и объектами, для них можно вызывать методы класса String, например, узнать длину строки:

int len=S1.length();

Итак, тип String является особым - этоединственный класс, переменные которого могут объявляться и использоваться без применения оператора new.

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

Создание массивов требует использования оператора new, например:

// объявление ссылочной переменной типа массив

int intArray[];               

intArray=new int[3]; // создание массива целого типа

// создание двумерного массива вещественного типа

float[][] flArray = new float[2][3];          

// создание массива и инициализация

double[] а = {0.01, -3.4, 2.89, 4.5, -6.7};               

// создание и инициализация двумерного массива переменных целых

int[][] arrayOfInts = { { 32, 87, 3, 589 }, { 12, 1076, 2000, 8 }, { 622, 127, 77, 955 } };

Массивы Java имеют три важных преимущества перед массивами других языков:

- программисту не обязательно указывать размер массива при его объявлении;

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

- размер массива в любой момент времени можно узнать через специальную переменную length, имеющуюся в каждом массиве, например:

int len=intArray.length;

Классы

Статические и динамические элементы класса. Если при определении элемента не используется ключевое слово static, то этот элемент по умолчанию является динамическим (dynamic).


Дата добавления: 2018-04-15; просмотров: 468; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!