Элементарные типы данных и переменные
Java предоставляет множество элементарных типов данных. Под каждый тип данных выделяется строго фиксированное количество бит, определенное в официальной документации. Еще одним отличием Java от других языков является тот факт что все типы данных содержат бит выделенный под знак и избавится от него нельзя. В таблице представлены параметры всех типов данных.
Переменная – это область памяти, выделенная для хранения какого-либо значения.
Литералы
Литералами называют константные значения, представленные в явном виде. Например:
int i = 5; // 5-литерал
Для каждого литерала выделяется отдельная область памяти. Разберем сколько именно памяти выделяется под тот или иной тип литерала.
В случае если мы представили литерал в целочисленном виде, то для него выделяется 32 бита, а сам литерал имеет тип int. Но в случае если переменной меньшего размера присваивается целое число, оно автоматически конвертируется в значение той переменной.
Символьный литерал имеет тип char и обозначается в одинарных кавычках:
char ch = «h’; // символьный литерал
все дробные числа изначально имеют тип double. Если попробовать присвоить дробное число переменной типа float, то это вызовет ошибку. Простой способ присвоить число переменной float – это конце числа подставить символ F:
float f = 2.0F;// переменная типа float
Так же в Java присутствуют булевы тип. Литералы этого типа имеют всего два значения: true и false. В случае присвоения другого значения булевой переменной, компилятор выдаст ошибку.
Введение в ООП
Java является объектно-ориентированным языком программирования. Определяющими понятиями данной парадигмы программирования можно назвать класс и объект.
Класс – это тип данных определяемый разработчиком.
Объект – это экземпляр класса. Давайте разберем более подробно, что это значит.
В классе мы задаем поведение и все необходимые параметры (переменные, объекты других классов) и поведение (методы и конструкторы) объекта данного класса. При создании и инициализации объекта выделяется необходимый объем памяти, ровно столько сколько было прописано в классе, так же объекты вынуждены подчиняться поведениям, описанных в классе.
Приведу пример: допустим нам необходимо реализовать класс учебной группы. В качестве параметров можно принять количество студентов (может выступать переменная int numberStud), наименование группы (например объект класса String name), так же необходимо указать какие именно студенты будут входит в состав группы (можно сделать массив объектов класса студентов, который в свою очередь тоже имеют свои параметры и свое поведение). в процессе существования группа может: поменять имя, поменять количество студентов, прекратить свое существование и другое. Это и называется поведение объекта. В процессе написания программы программист всячески совершает над объектами различные действия. Все эти действия необходимо прописать в нашем классе, иначе они попросту не смогут выполняться.
Еще одними из определяющими понятиями в ООП (не только в Java) являются: полиморфизм, наследование и инкапсуляция. Это своего рода принципы (свойства) на которых построена парадигма ООП, именно на них она и базируется.
Наследование
В рамках объектно-ориентированного программирования любой класс может унаследовать некоторые свойства от другого класса. Такой принцип называется наследованием. В качестве свойств могут выступать методы, переменные и тд.
Разберем пример: пусть нам необходимо описать породу собаки в нашем классе. Существуют довольно много собачьих пород, которые в свою очередь обладают уникальными свойствами. Для каждой породы нам придется написать свой собственный класс. В то же время все породы обладают параметрами, присущие абсолютно для всех собак. У нас есть вариант описать абсолютно все свойства в каждом классе, в том числе уникальные для каждой породы и универсальные, присущие для всех пород, но это займет много кода и вовсе усложнит задачу. Можно просто создать главный класс собак, описать в нем параметры и поведение, которые есть у всех и класс, описывающую конкретную породу унаследовать от главного.