
- •Теория
- •Структуры
- •Объединение
- •Файлы
- •Определения
- •Объявление файлов:
- •Смещение
- •Определение размера файла:
- •Чтение и запись данных в файл
- •JAVA
- •Типы переменных
- •Объявление переменных
- •Объявление массивов
- •Классы, поля, методы
- •Квалификаторы доступа к полям и методам класса
- •Конструктор
- •Класс Scanner
- •Наследование
- •Исключения
- •Отслеживаемые исключения
- •Неотслеживаемые исключения
- •Практика
- •Практика
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Задание 6
JAVA
Это язык программирования с си-подобным синтаксисом, имеющий парадигму Объектно Ориентированного Программирования (ООП). Компиляция происходит в реальном времени
(Just-In-Time компиляция).
Объект (ООП) – это сущность, являющаяся совокупностью кода и данных.
В Java есть особый модуль – Garbage collector. Это модуль виртуальной машины, который анализирует объекты и удаляет из памяти те, которые не имеют упоминания в программе.
Типы переменных
● boolean – 1 бит (обычно 1 байт); значение: ложь/истина ● char – 16 бит (2 байта); единственный беззнаковый тип
● short – 16 бит (2 байт) ● byte – 8 бит (1 байт) ● long – 64 бит (8 байт) ● int – 32 бит (4 байта)
● float – 32 бит (4 байта); вещественный тип
● double – 64 бит (8 байт); вещественный тип
Объявление переменных
int a; При этом имена переменных чувствительны к регистру
int b=5; – можно
Объявление массивов
Если массив сразу инициализировать значениями, то он создается, иначе он просто объявляется
(далее нужно его создать)
int[] a; – массив объявлен, но не создан
a = new int[10] – создание объявленного массива
int[] a = {2,0,7,1,3} – массив создан (5 элементов) сразу
int[] a = new int[] {9,2,7} – массив создан сразу (еще один способ)
Классы, поля, методы
Класс – сущность, являющаяся совокупностью данных (полей) и функций (методов). Для каждого класса должен быть свой исходный код: один класс — один файл — один исходный код.
Поле – переменная в составе класса, но не метода
Метод – функция в составле класса.

public class Hello{
|
|
public static void main(String[] args){ |
- регистр важен! |
|
|||
|
|
|
|
|
|
|
|
|
|
System.out.println("Hello world!"); |
|
|
|||
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
}
Содержимым класса является все то, что находится в фигурных скобках после объявления класса; void при объявлении метода main должен присутствовать ВСЕГДА; static позволяет вызывать методы из класса без создания экземпляра класса.
Экземпляр класса (объект) – аналогичен экземплярам структур в си.
...
public static void main(String[] args){
int a;
//локальная переменная (внутри метода) не имеет автоматической инициализации
System.out.println(a);
//будет ошибка компиляции, т.к. нельзя обратиться к неинициализированной переменной
}
...
Фигурные скобки создают новую область видимости, но при этом нельзя объявлять переменную с
одинаковым именем с вышестоящей областью видимости (независимо от типа)
final int a=5; Квалификатор final предназначен для объявления поля или переменной как константы (любое изменение приведет к ошибке)
public int a; – объявление поля (есть автоматическая инициализация: вещественные и целочисленные как ноль, boolean инициализируется как false)
Если имя поля и локальной переменной совпадают, то приоритет переходит к локальной переменной:
...
public int a=1;
public static void main(String[] args){
int a=5;
System.out.println(a);
//выведет 5 - значение локальной переменной
System.out.println(this.a);
//выведет 1 - так как this обращается к полям
}
...

Квалификаторы доступа к полям и методам класса
● public – делает поля и методы доступными для любых обращений извне и из класса
● private – запрещает обращение извне, но поля и методы доступны в пределах этого же класса ● protected – запрещает доступ к полям и методам извне, но при этом разрешает доступ для
дочерних классов. Поля и методы с этим квалификатором доступны не только в дочерних классах, но и в классах в том же пакете. (?проверить?)
● default – разрешает доступ извне, но он возможен только для тех классов, которые находятся внутри пакета.
Пакет – именованная область, содержащая набор классов
Конструктор
Конструктор (constructor) – метод класса, который выполняется при создании объекта (экземпляра). Конструктор выполняется автоматически (явный вызов запрещен). У класса может быть несколько конструкторов (есть возможность выбора).
Свойства конструктора:
● Всегда public метод
● Ручной вызов запрещен ● Не имеет типа (ничего не возвращает)
● Имя конструктора всегда совпадает с именем класса ● Необязателен
Если конструктор не описан, вызывается конструктор по умолчанию. Конструктор, который принимает не менее одного аргумента называется параметризованным.
Если в классе есть параметризованный конструктор, и не объявлен конструктор по умолчанию, то компилятор не будет добавлять неявный конструктор по умолчанию.
Класс Scanner
Данный класс предназначен для чтения данных из какого-либо потока.
import java.util.Scanner; // до объявления класса! public class Hello{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
//scanner (с маленькой буквы) - переменная. Можно любое другое имя
//System.in - стандартный поток ввода
int a = scanner.nextInt();
//nextInt() - метод чтения с клавиатуры int значений
System.out.println(a);
//выведется то значение, которое ввел пользователь
}
}
Если ввести вместо целого числа строку, то будет порождено исключение