воскресенье, 9 июля 2017 г.

Java. Классы и Обьекты

Java является языком объектно-ориентированным, это значит что программа состоит из объектов, или классов, которые по своей сути - не зависимы. То есть - если в Java объекте нет метода (или функции , как это принято называть в языках программирования СИ ) который возвращает (return) или предоставляет доступ к присвоению значений своим элементам, вы эти элементы никак не сможете использовать. Java Класс, по структуре чем то напоминает корпускулярно-волновой дуализм света. То-есть, в одних ситуациях свет ведет себя как электромагнитная волна, а в других как частица(с объектом можно вести себя как с переменной типа int, давая ей имена и присваивать значения, а можно вести себя и более шире ).
В СИ подобных языках ( к которым относится и Java) есть переменная типа int.
Int принимает в некотором диапазоне целые значения: 1, 2, 3... Int создается записью:

Int 'название';

Объект из класса создается подобным образом - 'тип' плюс 'название'.
Только если описание типа int уже заложено языком Java, то тип объекта вы должны сами придумать какой вам нужен, создав класс.
Например, класс содержащий размеры чего-то, должен иметь внутри себя имеет запись вида:

public class size {

int x=2;
int y=4;
int z=6;

}

Это был создан только Java класс (тип) ( что то вроде вашей собственной переменной int, но которая может хранить не одно число, а много разных).
Но чтоб создать переменную (вернее-Объект), нужно ей дать еще имя, для
int x;

'int'-это тип переменной, х - название переменной и имя участка в памяти, в которой хранится некое значение. Как типу int нельзя присвоить значение (int = 5), так и классу нельзя присвоить значение ( public class size{} , size = 5 ). Класс это только описание переменной, как буд-то вы сказали: "int-должен хранить только целые числа!".
Работа начинается после создания объекта:


public class size {

int x=2;
int y=4;
int z=6;

}


size object_a;//Имя указателя на Физически существующий объект в памяти.
object_a = new size();// Физически существующий объект в памяти.
size object_b; //Имя указателя на Физически существующий объект в памяти.
object_b=object_a;// Копирование физического адреса на который указывает object_a;
//.....................
object_b=new size();//Создание нового объекта
object_b=object_a;// Создание копии объекта object_a;

И тут основное отличие от примитивных переменных - работа с объектами происходит только через указатель. Причина в простом - функции после оперирования данными могут возвращать только одно значение, а как упоминалось ранее, в объекте могут хранится много переменных со своими значениями, поэтому функции возвращают только одно значение - указатель на объект, над которым происходили вычисления. И через этот указатель можно извлекать нужную информацию после обработки.

Комментариев нет:

Отправить комментарий