Во второй лекции второго уровня курса JavaRush был приведен следующий вывод:
“Переменные делятся на два типа: примитивные и ссылочные.
Примитивные типы у себя внутри хранят значение, а ссылочные – ссылку на объект. Примитивные типы – это int, char, boolean и ещё немного, а ссылочные типы – это все остальные, и образуются они с помощью классов.”
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public class Solution { public static void main(String[] args) { Cat cat = new Cat(); // создали новый объект cat (cat - переменная класса Cat) cat.owner = new Person(); // обращение к полю owner переменной cat // для занесения в нее ссылки на новосозданный объект Person /* тут мы изменяем переменную name, которая находится в переменной owner (экземпляре класса Person), переменная owner в свою очередь находится в переменной cat (экземпляре класса Cat). Переменная cat находится в методе public static void main() и чтобы добраться до этой переменной мы указываем цепочку как добраться до переменной name которая находится в переменной owner, которая находится в переменной cat использую точки */ cat.owner.name = "God"; } public static class Cat { public Person owner; } public static class Person { public String name; } } |
Примитивных типов несколько int, long, byte, char float double boolean (всегда пишутся с маленькой буквы). Они примитивные потому, что это только тип, например: у ссылочного типа String есть разные методы toString() toUpperCase(), toLowerCase() и т.д.
У примитивных типов нет методов, они представляют собой только место в памяти, это не классы (и они не наследуются от класса Object в отличие от всех остальных ссылочных типов), т.е. примитивный тип хранит в себе только одно какое-то значение, у переменных примитивных типов нет ни методов, ни полей, ничего, кроме своего значения
Поле это та же переменная только она находится не внутри метода, а внутри класса и кроме того к полям применимы модификаторы доступа, а к другим переменным не применимы, то есть можно указать это private или public переменная только если она находится в классе, а не в одном из методов.

Свежие комментарии