Введение в JAVA. Кафедра ЮНЕСКО по НИТ 2 Список рекомендуемой литературы Вязовик Н., Жилин Е. Программирование на JAVA (www.intuit.ru) Эккель Б. Философия.

Презентация:



Advertisements
Похожие презентации
Операции Условная операция ? : Если истинно, то результатом будет, иначе. Например, int x = a < b ? a : b вычисляет минимум из a и b.
Advertisements

Типы данных Инна Исаева. Переменные Переменная - это как ящик, в котором можно хранить данные. Каждая переменная имеет своё имя, она служит для хранения.
Создание программ на Java Управляющие структуры языка, объявление классов и методов, компиляция и запуск программ.
Существует три разновидности комментариев: комментарии в одной строке, комментарии в нескольких строках, комментарии для документирования. Комментарии,
b5_java_s4
Java. Part 2. Спецификаторы доступа public private protected не указан – доступ в пределах пакета Могут использоваться перед классами, методами, полями.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Лекция 2 С => C++ => C# Большие и маленькие буквы различаются (main, Main, MAIN, mAin – разные имена) После каждого оператора ставится точка с запятой.
Практическое занятие 6. Функции. Большинство языков программирования используют понятия функции и процедуры. C++ формально не поддерживает понятие процедуры,
1 Классы в Java Ключевое слово class означает: Я говорю тебе, как выглядит новый тип объекта. Класс является базовым элементом объектно-ориентированного.
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Лекция 3. Лексика языка Java Курс по программированию на языке Java для магистров 1 года обучения. 10 семестр, 2011 год, ТУИТ, кафедра ПОИТ Ст.преп.И.В.Хан.
Кафедра ОСУ, Java 2004 Слайд 1 Наследование Наследование позволяет использовать существующий класс для определения новых классов, т.е. способствует.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
1 Java 6. ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ. 2 Интерфейсы Не являются классами Ни один из объявленных методов не может быть реализован внутри интерфейса.
Данные в Visual Basic. Типы данных ДАННЫЕ переменные величины постоянные величины.
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
Объектно-ориентированный язык программирования. Переменная - эта поименованная ячейка памяти, хранящая какое-либо одно значение (одно число, один фрагмент.
Транксрипт:

Введение в JAVA

Кафедра ЮНЕСКО по НИТ 2 Список рекомендуемой литературы Вязовик Н., Жилин Е. Программирование на JAVA ( Эккель Б. Философия JAVA. СПб.: Питер, – 971с. Хорстманн К.С., Корнелл Г. Библиотека профессионала. JAVA 2. Том 1, 2. – М.: Издательский дом Вильямс, Бишоп Д. Эффективная работа JAVA2. СПб.: Питер, с. Дейтел Х.М., Дейтел П.Дж. Технология программирования на JAVA2. - М.: ООО Бином-Пресс, – 560 с. Кубенский М. Программирование и структуры на JAVA. Официальный сайт корпорации SUN Microsystems и другие Интернет-источники.

Кафедра ЮНЕСКО по НИТ 3 История создания 1991г. – начало работы над проектом Green (П. Нотон, М. Шеридан, Д. Гослинг), создание OAK Компания FirstPerson, провал идеи интерактивного телевидения г.–создание Mosaic1.0 NetScape 1994 г. – браузер WebRunner. Возрождение OAK, разработка апплетов 1995 г. - переименование OAK в JAVA, WebRunner - в HotJAVA

Кафедра ЮНЕСКО по НИТ 4 Платформа JAVA Платформой называют сочетание аппаратной архитектуры и операционной системы JVM - это программа, которая пишется специально для каждой реальной платформы, чтобы с одной стороны скрыть все ее особенности, а с другой - предоставить единую среду исполнения для Java-приложений JAVA использует 2 подхода для компиляции приложений – компилирование и интерпретирование Компилятор JIT – транслирует java-байт код в двоичный код операционной системы

Кафедра ЮНЕСКО по НИТ 5 Преимущества JAVA- платформы переносимость, или кросс-платформенность; объектная ориентированность,создана эффективная объектная модель; привычный синтаксис С/С++; встроенная и прозрачная модель безопасности; ориентация на интернет-задачи, сетевые распределенные приложения; динамичность, легкость развития и добавления новых возможностей; легкость в освоении.

Кафедра ЮНЕСКО по НИТ 6 Основные направления JAVA Java 2 Platform, Standard Edition (J2SE); Java 2 Platform, Enterprise Edition (J2EE); Java 2 Platform, Micro Edition (J2ME).

Кафедра ЮНЕСКО по НИТ 7 Лексика языка Для записи текста применяется кодировка Unicode (\u1B05 – пример записи символа) Компилятор разделяет программу на пробелы – все символы, разбивающие текст программы на лексемы комментарии лексемы

Кафедра ЮНЕСКО по НИТ 8 Лексика языка. Пробелы ASCII-символ SP, space, пробел,\ u0020, десятичный код 32; ASCII-символ HT, horizontal tab, символ горизонтальной табуляции, \u0009, десятичный код 9; ASCII-символ FF, form feed, символ перевода страницы (был введен для работы с принтером), \u000c, десятичный код 12; завершение строки: ASCII-символ LF, символ новой строки (код 10); ASCII-символ CR, "возврат каретки" (код 13); символ CR, за которым сразу же следует символ LF.

Кафедра ЮНЕСКО по НИТ 9 Лексика языка. Комментарии Строчные - //комментарий Блочные - /*комментарий*/ Разработчика - /**комментарии в виде html-кода, с применением символа */

Кафедра ЮНЕСКО по НИТ 10 Лексика языка. Лексемы идентификаторы (identifiers); ключевые слова (key words); литералы (literals); разделители (separators); операторы (operators).

Кафедра ЮНЕСКО по НИТ 11 Лексика языка. Идентификаторы Идентификаторы - это имена, которые даются различным элементам языка для упрощения доступа к ним. Имена имеют пакеты, классы, интерфейсы, поля, методы, аргументы и локальные переменные Длина имени не ограничена. Идентификатор состоит из букв и цифр. Имя не может начинаться с цифры Java-буквы, используемые в идентификаторах, включают в себя ASCII-символы A-Z (\u0041-\u005a), a-z (\u0061-\u007a), а также знаки подчеркивания _ (ASCII underscore,\u005f) и доллара $ (\u0024). Знак доллара используется только при автоматической генерации кода

Кафедра ЮНЕСКО по НИТ 12 Лексика языка. Ключевые слова Abstract, default, if, private, this, Boolean, do, implements, protected, throw, break, double, import, public, throws, byte, else, instanceof, return, transient, case, extends, int, short, try, catch, final, interface, static, void, char, finally, long, strictfp, volatile, class, float, native, super, while, const, for, new, switch, continue, goto, package, synchronized

Кафедра ЮНЕСКО по НИТ 13 Лексика языка. Литералы Литералы позволяют задать в программе значения для числовых, символьных и строковых выражений, а также null- литералов. Всего в Java определены следующие виды литералов: целочисленный (integer); дробный (floating-point); булевский (boolean); символьный (character); строковый (string); null-литерал (null-literal).

Кафедра ЮНЕСКО по НИТ 14 Лексика языка. Целочисленные литералы Целочисленные литералы позволяют задавать целочисленные значения в десятеричном, восьмеричном и шестнадцатеричном виде. Запись нуля можно осуществить следующими способами: 0 (10-ричная система) 00 (8-ричная) 0x0 (16-ричная) Тип int – 4 байта, тип long – 8 байт. Если в конце литерала не стоит указателя на тип, то литерал по умолчанию имеет тип int.

Кафедра ЮНЕСКО по НИТ 15 Лексика языка. Дробные литералы Дробные литералы представляют собой числа с плавающей десятичной точкой. Дробный литерал состоит из следующих составных частей: целая часть; десятичная точка (используется ASCII-символ точка); дробная часть; показатель степени (состоит из латинской ASCII-буквы E в произвольном регистре и целого числа с опциональным знаком + или -); окончание-указатель типа (D или F). Тип float – 4 байта, double – 8. Если в конце литерала не стоит указателя на тип, то литерал по умолчанию имеет тип double.

Кафедра ЮНЕСКО по НИТ 16 Лексика языка. Символьные литералы Символьные литералы. Представляют собой один символ и заключаются в одинарные кавычки s, a. Допускается запись через Unicode \u0041 – латинская буква A. Специальные символы: \b \u0008 backspace BS -забой \t \u0009 horizontal tab HT -табуляция \n \u000a linefeed LF -конец строки \f \u000c form feed FF -конец страницы \r \u000d carriage return CR -возврат каретки \" \u0022 double quote "-двойная кавычка \' \u0027 single quote '-одинарная кавычка \\ \u005c backslash \-обратная косая черта \восьмеричный код \u0000 to \u00ff Код символа в восьмеричном формате

Кафедра ЮНЕСКО по НИТ 17 Лексика языка. Строковые литералы Строковые литералы состоят из набора символов и записываются в двойных кавычках: // литерал нулевой длины \ // литерал, состоящий из символа простой текст //литерал длины 13

Кафедра ЮНЕСКО по НИТ 18 Лексика языка. NULL-литерал. Разделители Null литерал может принимать всего одно значение: null. Это литерал ссылочного типа, причем эта ссылка никуда не ссылается, объект отсутствует. Разумеется, его можно применять к ссылкам любого объектного типа данных. Разделители – специальные символы, используемые в конструкциях языка (), [], {}, ;,,,..

Кафедра ЮНЕСКО по НИТ 19 Лексика языка. Операторы =>>>> +=-=*=/=&=|=^=%= >=>>>=

Кафедра ЮНЕСКО по НИТ 20 Типы данных Все типы данных разделяются на две группы. Первую составляют 8 простых или примитивных (primitive) типов данных. Они подразделяются на три подгруппы: целочисленные: byte, short, int, long, char (также является целочисленным типом) дробные: float, double булевский: boolean Вторую группу составляют объектные или ссылочные (reference) типы данных. Это все классы, интерфейсы и массивы. Любая переменная имеет три базовых характеристики: имя, тип, значение. Слово final используют для констант

Кафедра ЮНЕСКО по НИТ 21 Сравнение примитивных и ссылочных переменных class Point { int x,y; } Point p1 =new Point(3,5); Point p2=p1; p1.x=7; print(p2.x); Результат:7 int a=5; int b=a; a=3; print(b); Результат: 5

Кафедра ЮНЕСКО по НИТ 22 Целочисленные типы Byte, short, int, long, char Операции сравнения (, >=, ==, !=), числовые (+, -, *, /, %, ++, --, битовые >, >>>, ~, &, |, ^ ), условия (+, -, *,/,% ), приведения типов, конкатенации (+) По умолчанию тип int

Кафедра ЮНЕСКО по НИТ 23 Работа с целочисленными переменными Пр.1. int x= ;//Наименьшее возможное значение типа int int y=-x; //Результат:y= , т.к произошло переполнение типа и отбросились старшие биты. JAVA не создает ошибок!!! Пр.2. int x=300000; print(x*x);//Результатом такого примера будет: Явное выписывание в коде литералов, которые слишком велики для используемых типов, приводит к ошибке компиляции. Если же переполнение возникает в результате выполнения операции, "лишние" биты просто отбрасываются.

Кафедра ЮНЕСКО по НИТ 24 Работа с целочисленными переменными Хотя целочисленные типы обладают длиной в 8,16,32 и 64 бита, вычисления проводятся только с 32-х и 64-х битной точностью. Если хотя бы один аргумент операции имеет тип long, то все аргументы приводятся к этому типу, и результат операции также будет типа long. Аналогично с int. //пример вызовет ошибку компиляции byte b=1; byte c=b+1; // так как +1 приводит к типу int Понятно, что типы большей длины могут хранить больший спектр значений, а потому Java не позволяет присвоить переменной меньшего типа значение большего типа. //пример вызовет ошибку компиляции int x=1; byte b=x;

Кафедра ЮНЕСКО по НИТ 25 Работа с целочисленными переменными //пример вызовет ошибку компиляции. Почему? byte b=5; byte c=-5; byte x=2; byte y=3; byte z=(x>y)?x :y; // верно, x и y одинакового типа byte abs=(x>0)?x :-x;//неверно! int x=1; print("x="+x); //Результатом будет:x=1 print(1+2+"text"); print("text"+1+2); // Его результатом будет:3text text12 char c1=10; char c2='A';//латинская буква A (\u0041,код 65) int i=c1+c2-'B'; Переменная i получит значение 9.

Кафедра ЮНЕСКО по НИТ 26 Дробные типы Float и double, операции над ними аналогичны целочисленным. нельзя задать литерал заведомо больший, чем позволяет тип данных (ошибка overflow). И нельзя задать литерал, значение которого по модулю слишком мало для данного типа (underflow). Если в конце литерала стоит буква F или f, то литерал рассматривается как значение типа float. По умолчанию дробный литерал имеет тип double (D или d).

Кафедра ЮНЕСКО по НИТ 27 Дробные типы Специальные значения дробного типа положительная и отрицательная бесконечности (POSITIVE_INFINITY и NEGA TIVE_INFINITY); значение "не число", Not-a-Number, или сокращенно NaN; положительный и отрицательный нули. 1f/0f //положительная бесконечность, тип float -1d/0d //отрицательная бесконечность, тип double 0.0/0.0 //деление ноль на ноль - NAN (1.0/0.0)*0.0 //умножение бесконечности на ноль - NAN

Кафедра ЮНЕСКО по НИТ 28 Булевский тип Булевский тип представлен всего одним типом boolean, который может хранить всего два возможных значения - true и false операции сравнения (возвращают булевское значение) -==,!= логические операции (возвращают булевское значение) -!, -&, |, ^, &&, || оператор с условием ?: оператор конкатенации со строкой +

Кафедра ЮНЕСКО по НИТ 29 Ссылочные типы Объект (object)-это экземпляр некоторого класса или экземпляр массива. Класс - это описание объектов одинаковой структуры, и если в программе такой класс используется, то описание присутствует в единственном экземпляре. Объекты всегда создаются с использованием ключевого слова new, причем одно слово new порождает строго один объект. После ключевого слова указывается имя класса, от которого мы собираемся породить объект. Создание объекта всегда происходит через вызов одного из конструкторов класса. Если конструктор отработал успешно, то выражение new возвращает ссылку на созданный объект. Эту ссылку можно сохранить в переменной, передать в качестве аргумента в какой-либо метод или использовать другим способом.

Кафедра ЮНЕСКО по НИТ 30 Ссылочные типы Пример Class Point {Int x,y; Point (int Newx, int Newy){ //конструктор класса x=Newx; y=Newy;} // инициализация полей } Point p=new Point(1,2); //создание объекта, получение на него ссылки Point p1=p; // вторая ссылка на объект точку (1,2) p=new point(3,4); // осталась 1 ссылка на точку (1,2) p1=null; // не осталось ссылок на точку (1,2) Так как ссылок на объект больше нет, доступ к нему утерян, и он будет уничтожен garbage collector (сборщиком мусора)

Кафедра ЮНЕСКО по НИТ 31 Ссылочные типы Пример Class Parent{} Class child extends Parent{} Class ChildOfChild extends Child{} Class Child2 extends Parent{} Parent p=new Child(); Print (p instanceof Child); // true Parent p1=new ChildOfChild(); Print (p1 instanceof Child); // true Print (p instanceof Child2); //false Объект всегда помнит, от какого класса он бы порожден. С другой стороны, можно ссылаться на объект, используя ссылку другого типа. Используя оператор instanceof можно узнать, от какого класса произошел объект. Операторы = и != проверяют равенство объектов по ссылке Пример Point p1=new Point(2,3); Point p2=p1; Point p3=new Point(2,3); Print (p1==p2); //true Print (p1==p3); //false

Кафедра ЮНЕСКО по НИТ 32 Класс Object В JAVA множественное наследование отсутствует. Класс Object – класс, от которого наследуются все классы, если только в объявлении потомка явно не указан родительский класс. Метод getClass() возвращает объект типа Class, от которого был порожден этот объект. У класса Class есть метод getName(), возвращающий имя класса. String s=abc Class cl=s.getClass(); Print(cl.getName()); // java.lang.String Метод equals() служит для сравнения объектов по значению. Данный метод переопределен во множестве классов, т.к. Object не имеет полей и сравнение идет по ссылке.

Кафедра ЮНЕСКО по НИТ 33 Класс Object Метод toString() позволяет получить текстовое описание любого объекта. Данный метод можно переопределять для получения более полной информации при создании нового класса. Метод finalize(). Данный метод вызывается автоматически при уничтожении объекта garbage collectorом. В методе нужно описывать только дополнительные действия, связанные с логикой работы приложения: закрытие соединения с БД, снятие блокировок с файлов и т.д. Все необходимое для удаления объекта JVM сделает сама.

Кафедра ЮНЕСКО по НИТ 34 Класс Class Класс Class является метаклассом для всех классов JAVA. Когда JVM загружает файл.class, который описывает некоторый тип, в памяти создается объект типа Class, который и хранит это описание. Строка Point p=new Point(1,2); создает следующие объекты 1. Объект типа Point, описывающий точку (1,2) 2. Объект класса Class, описывающий класс Point 3. Объект класса Class, описывающий класс Object. 4. Объект класса Class, описывающий класс Class. Это обычный JAVA-класс, который должен быть загружен по общим правилам.

Пакеты

Кафедра ЮНЕСКО по НИТ 36 Пакеты Программа на Java представляет собой набор пакетов (packages). Каждый пакет может включать вложенные пакеты, а так же может содержать классы и интерфейсы Каждый пакет имеет свое пространство имен, что позволяет создавать одноименные классы в различных пакетах. Имена бывают простыми (simple), состоящими из одного идентификатора, и составными (qualified), состоящими из последовательности идентификаторов, разделенных точкой. Составное имя любого элемента пакета составляется из составного имени этого пакета и простого имени элемента. Имя простое составное java.lang lang

Кафедра ЮНЕСКО по НИТ 37 Организация пакетов Простейшим способом организации пакетов и типов является обычная файловая структура. Например, исходный код класса space.sunsystem.Moon хранится в файле space\sunsystem\Moon.java Запуск программы на JAVA стоит производить из директории, в которой содержатся пакеты. Было бы ошибкой запускать Java прямо из папки space\sunsystem и пытаться обращаться к классу Moon, несмотря на то, что файл-описание лежит именно в ней. Необходимо подняться на два уровня директорий выше, чтобы Java, построив путь из имени пакета, смогла обнаружить нужный файл

Кафедра ЮНЕСКО по НИТ 38 Модуль компиляции Модуль компиляции (complication unit)-хранится в текстовом.java-файле и является единичной порцией входных данных для компилятора. Состоит из трех частей: Объявление пакета; Import-выражения; Объявления верхнего уровня ;

Кафедра ЮНЕСКО по НИТ 39 Объявление пакета Объявление пакета указывает, какому пакету будут принадлежать все объявляемые ниже типы. Используется ключевое слово package, после которого указывается полное имя пакета. Например, в файле java/lang/Object.java идет: package java.lang; что служит одновременно объявлением пакета lang, вложенного в пакет java, и указанием, что объявляемый ниже класс Object, находится в этом пакете. Так складывается полное имя класса java.lang.Object.

Кафедра ЮНЕСКО по НИТ 40 Импорт-выражения Область видимости типа - пакет, в котором он располагается. Внутри этого пакета допускается обращение к типу по его простому имени. Из всех других пакетов необходимо обращаться по составному имени. Для решения этой проблемы вводятся import-выражения, позволяющие импортировать типы в модуль компиляции и далее обращаться к ним по простым именам. Существует два вида таких выражений: 1. импорт одного типа: import java.net.URL; 2. импорт пакета: import java.awt.*; Пакет java.lang импортируется неявно во всех программах! Импортировать вложенные пакеты нужно отдельно!!! Например, пакет image импортируется так: import java.awt.image.*;

Кафедра ЮНЕСКО по НИТ 41 Порядок просмотра импорт- выражений сначала просматриваются выражения, импортирующие типы; затем другие типы, объявленные в текущем пакете, в том числе, и в текущем модуле компиляции; наконец, просматриваются выражения, импортирующие пакеты. Таким образом, если явно импортирован тип, то невозможно ни объявление нового типа с таким же именем, ни доступ по простому имени к одноименному типу в текущем пакете !!! Какова разница в представленных подходах? Как поступать лучше?

Кафедра ЮНЕСКО по НИТ 42 Объявление верхнего уровня Модуль компиляции может содержать одно или несколько объявлений классов и интерфейсов. Область видимости типа - пакет, в котором он описан. Из других пакетов к типу можно обращаться либо по составному имени, либо с помощью импортирующих выражений. Однако кроме области видимости в Java также есть средства разграничения доступа. По умолчанию тип объявляется доступным только для других типов своего пакета. Чтобы другие пакеты также могли использовать его, можно указать ключевое слово public. В модуле компиляции может быть максимум один public тип, и его имя и имя файла должны совпадать!

Кафедра ЮНЕСКО по НИТ 43 Модификаторы доступа. Пример работы с public и private public class Human { private /*int*/double age; public int getAge(){ return (int)Math.round(age); public void setAge(int a){ age=a; public double getExactAge(){ return age;} public void setExactAge(double a){ age=a; }} public class Human { public int age;} Human h =getHuman(); int i=h.age; //Ошибка!! Если захотим сменить тип на double, то Поэтому, объявим как private поле age и создадим методы getAge(), setAge(): public class Human { private int age;} public int getAge(){ return age;} public void setAge(int a){ age=a;}

Кафедра ЮНЕСКО по НИТ 44 Разграничение доступа в JAVA public; private; protected: дает доступ наследникам класса. Наследникам может потребоваться доступ к некоторым элементам родителя, с которыми не требуется иметь дело внешним классам. если не указан ни один из этих 3 типов, то уровень доступа определяется по умолчанию (default). Позволяет обращения из того же пакета, где объявлен и сам этот класс.

Кафедра ЮНЕСКО по НИТ 45 Возможные модификаторы доступа для элементов языка ЭлементыМодификаторыПояснение ПакетнетВсегда доступны (как public) Типы (классы и интерфейсы) не указываются или public public – тип доступен везде; Не указывается – тип default, доступен внутри пакета Массивзависит от типаТот же уровень доступа, что и у типа, на котором основан Элементы (поля) и конструкторы объектных типов все модификаторыЭлементы интерфейсов всегда public

Кафедра ЮНЕСКО по НИТ 46 Пример package first; public class Parent { } //Класс Child наследуется от класса Parent (default) class Child extends Parent { } public class Provider { public Parent getValue(){ return new Child(); } } package second; import first.*; public class Test { public static void main(String s[]){ Provider pr =new Provider(); Parent p =pr.getValue(); System.out.println( p.getClass().getName()); //Приведение типа (Child)p вызовет ошибку компиляции! }} Результатом вывода будет: first.Child

Кафедра ЮНЕСКО по НИТ 47 Класс Тело класса может содержать объявление элементов (members) класса: полей; методов; внутренних типов (классов и интерфейсов); конструкторов; инициализаторов; статических инициализаторов. Модификатор class Имя_класса [extends Имя класса] {} Объявление полей начинается с перечисления модификаторов. Затем указывается тип данных и имя переменной. Можно указывать начальное значение – инициализация. int a; final double PI=3.1415; final long creationTime=System.currentTimeMillis();

Кафедра ЮНЕСКО по НИТ 48 Методы Объявление метода состоит из заголовка и тела метода. Заголовок состоит из: модификаторов (доступа в том числе); типа возвращаемого значения или ключевого слова void; имени метода; списка аргументов в круглых скобках (аргументов может не быть); специального throws- выражения. Существует модификатор final, который говорит о том, что такой метод нельзя переопределять в наследниках. Можно считать, что все методы final-класса, а также все private- методы любого класса являются final. public void process(int x,final double y){ x=x*x+Math.sqrt(x); //y=Math.sin(x);-так писать нельзя,т.к.y -final!}

Кафедра ЮНЕСКО по НИТ 49 Сигнатура метода Сигнатура определяется именем метода и его аргументами (количеством, типом, порядком следования). Если для полей запрещается совпадение имен, то для методов в классе запрещено создание двух методов с одинаковыми сигнатурами. class Point { void get(){} void get(int x){} void get(int x,double y){} void get(double x,int y){}} Если в заголовке метода указан тип возвращаемого значения, а не void, то в теле метода обязательно должно встречаться return-выражение.

Кафедра ЮНЕСКО по НИТ 50 Конструкторы классов Формат объявления конструкторов похож на упрощенное объявление методов. Отсутствует тип возвращаемого значения public class Human { private int age; protected Human(int a){ age=a;} public Human(String name,Human mother,Human father){ age=0;} } Используется 2 конструктора. Это возможно, так как сигнатуры различные!!!

Кафедра ЮНЕСКО по НИТ 51 Наследование конструкторов public class Parent { private int x,y; public Parent(){ x=y=0;} public Parent(int newx,int newy){ x=newx; y=newy;} } public class Child extends Parent { public Child(){ super();} public Child(int newx,int newy){ super(newx,newy); } Ключевое слово super указывает на наследование конструктора от класса родителя Иногда требуется в конструкторе вызвать один из конструкторов данного класса. Для этого приме- няется ключевое слово this(), которое вызывает конструктор и принимает аргументы.

Кафедра ЮНЕСКО по НИТ 52 Функция Main Программа, написанная на Java, является набором классов. Понятно, что требуется некая входная точка, с которой должно начинаться выполнение приложения. public static void main(String[]args){} Аргументом метода main() является массив строк. Он заполняется дополнительными параметрами, которые были указаны при вызове метода. package test.first; public class Test { public static void main(String[]args){ for (int i=0;i