Добавил:
north memphis Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование II Экзамен Теория и Практика.pdf
Скачиваний:
2
Добавлен:
29.01.2025
Размер:
343.67 Кб
Скачать

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);

//выведется то значение, которое ввел пользователь

}

}

Если ввести вместо целого числа строку, то будет порождено исключение