Категории: ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника |
РАЗРАБОТКА КОНСОЛЬНЫХ ПРИЛОЖЕНИЙ
Цель: создание консольных приложений.
Понятие и определение класса Класс – это шаблон для объекта. Объект – это экземпляр класса. Данные класса называются переменными экземпляра. Каждый объект содержит собственную копию этих переменных. Метод предназначен для обработки данных. Определение класса:
class classname { type instance-variable1; type instance-variable2; // … type instance-variableN; type methodname1 (parameter-list) { // тело метода } type methodname2 (parameter-list) { // тело метода } //… type methodnameN(parameter-list) { // тело метода } }
Рассмотрим пример класса, с помощью которого определяется минимальное и максимальное число.
Пример 1.1 class MinMax { int x; int y; public int max(){ if(x>y) return x; else return y;} public int min(){ if(x<y) return x; else return y;} }
Для определения экземпляра класса используется синтаксис:
ИмяКласса имяпеременной; имяпеременной = new ИмяКласса (параметры инициализации); или ИмяКласса имяпеременной = new ИмяКласса (параметры инициализации); Членами класса могут быть: • поля; • методы; • внутренние типы (классов и интерфейсов; • конструкторы; • инициализаторы; • статические инициализаторы.
Поля и методы могут иметь одинаковые имена. Пример 1.2 class Point { int x=3; int x() {return x;} int y=x(); public static void main (String s[]) { Point p=new Point(); System.out.println(p.x+", "+p.y); System.out.println(p.x());
} } Результат программы: 3, 3
Модификаторы класса public – класс доступен для использования, наследования вне зависимости от пакета или от каталога; public-классы должны храниться в файлах с именем имя_класса.java. friendly – модификатор класса по умолчанию, если модификатор не определен явно для класса. Такой класс доступен только для объектов, находящихся в том же пакете. Вне пакета он выступает как private. final – класс не может быть наследован, т.е. иметь подклассов. abstract – класс, в котором объявлен хотя бы один абстрактный метод. Для таких классов нельзя создавать объекты. Такие классы используются для производных классов, а также для организации стандартизированных интерфейсов.
Пример 1.3 abstract class Myclass { abstract void actMet(); }
Объявление методов Объявление метода состоит из заголовка и тела метода. Состав заголовка: • модификаторы (доступа в том числе); • тип возвращаемого значения или ключевого слова void; • имя метода; • список аргументов в круглых скобках (аргументов может не быть); • специальное throws-выражение. Заголовок начинается с перечисления модификаторов. Для методов доступен любой из трех возможных модификаторов доступа. Также допускается использование доступа по умолчанию. Кроме этого, существует модификатор final, который говорит о том, что такой метод нельзя переопределять в наследниках. Можно считать, что все методы final-класса, а также все private-методы любого класса являются final. Затем поддерживается модификатор native. Метод, объявленный с таким модификатором, не имеет реализации на Java. Он должен быть написан на другом языке (C/C++, Fortran и т.д.) и добавлен в систему в виде загружаемой динамической библиотеки (например DLL для Windows). Наконец, существует еще один специальный модификатор synchronized, который будет рассмотрен в теме, описывающей потоки. Объявление объектов и операция new Получение объектов класса − это двухшаговый процесс. Во-первых, нужно объявить переменную типа «класс». Она не определяет объект. Это просто переменная, которая может ссылаться на объект. Во-вторых, нужно получить актуальную, физическую копию объекта и назначать ее этой переменной. Это можно сделать с помощью операции new. Операция new распределяет динамически (т.е. во время выполнения) память для объекта и возвращает ссылку на нее. Данная ссылка является адресом ячейки памяти, выделенной объекту вышеуказанной операцией. Затем эта ссылка сохраняется в переменной. Таким образом, в Java все объекты класса должны быть распределены динамически. Ниже приведен пример, в котором создается объект типа Box двумя способами.
Пример 1.4 // первый способ Box mybox = new Box(); // второй способ Box mybox; // объявить ссылку на объект mybox = new Box(); // распределить память для Вох-объекта
Первый вариант комбинирует два шага, как это было вначале описано, второй пошагово создает объект типа Box.
Метод main Итак, виртуальная машина реализуется приложением операционной системы и запускается по обычным правилам. Программа, написанная на Java, является набором классов. Требуется некая входная точка, с которой должно начинаться выполнение приложения. Такой входной точкой, по аналогии с языками C/C++, является метод main(). Для объявления метода main() используется следующий синтаксис:
public static void main(String[] args) {} Модификатор static позволяет вызвать метод main(), не создавая объектов. Метод не возвращает никакого значения, хотя в C есть возможность указать код возврата из программы. В Java для этой цели есть метод System.exit(), который закрывает виртуальную машину и имеет аргумент типа int. Аргументом метода main() является массив строк. Он заполняется дополнительными параметрами, которые были указаны при вызове метода. Пример 1.5 Пример демонстрирует вывод в консоль параметров, переданных в метод main. Для запуска примера необходимо передать сами параметры, например java test.first.Test HelloWorld package test.first; public class Test { public static void main(String[] args) { for (int i=0; i<args.length; i++) { System.out.print(args[i]+" "); } System.out.println(); } }
Результат работы программы: HelloWorld
Если вышеприведенный модуль компиляции сохранен в файле Test.java, который лежит в директории test\first, то вызов компилятора записывается следующим образом: javac test\first\Test.java А вызов виртуальной машины: java test.first.Test
Конструкторы Конструктор – это тот же метод класса, обладающий некоторыми особенностями: · имеет такое же название, как и класс; · вызывается сам; · не возвращает никакого значения. Ниже продемонстрирован пример перегрузки конструктора.
Пример 1.6 // перегрузка конструктора class worker { private int Age; public String Name; public worker() // конструктор без параметров { Age = 20;} public worker(int newAge, String newName) { Age = newAge; Name = newName; } public int getAge() {return Age;} }; class worker_pub { public static void main(String args[]) { worker wrk1 = new worker( ); worker wrk2 = new worker(40, "Petrov"); System.out.println(wrk1. getAge()+wrk1.Name); System.out.println(wrk2. getAge()+wrk2.Name); } }
Результат выполнения программы: 20null 40Petrov
Если конструктор не определяется явно, то Java создает его сам, без параметров.
|
|
Последнее изменение этой страницы: 2016-08-11 lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда... |