Человек не способен создать ничего, что бы не соотвествовало его видению мира.
Любая теория, любая структура, любая система или наука лишь отражают абстракции его собственного мозга.
Даже железяки создаются им по собственному образу и подобию.
И программируются через призму концептуального знания.
Хочет человек того или нет, видит он мир таким образом:
Классы
Класс - основное понятие объектно-ориентированного программирования. Класс - это шаблон. Шаблон описания предмета или явления. Предусмотрения для него свойств и методов.
Свойства будут характеризовать. Скажем, свойство "цвет" характерно для классов, описывающих предметы. У явлений обязательным свойством станет, например, "интенсивность". У каждого отдельного предмета свой цвет. У каждого явления - своя интенсивность. Но если то или иное свойство не указано при проектировании класса, то им не будет обладать ни одна его реализация.
Методы описывают то, что предмет или явление могут делать. Или как будут реагировать на внешние события. Например, кружка может стоять. А если ее уронить, то может разбиться. Остальные методы кружки додумывайте сами.
Классы-шаблоны могут наследовать свойства и методы других, более абстрактных классов. Кружка наследует от "емкостей для питья", которые в свою очередь получили свойства и методы от "кухонной посуды". И дальше, дальше, до совершенно абстрактного класса "предмет". От него унаследованы свойства "цвет", "плотность", "прозрачность"...
Объекты
Объект - это реализация класса. Каждый раз разная. Каждый раз уникальная. Даже две одинаковые кружки - это две совершенно разные кружки. А по сути объект - это область памяти, не более того. Выделенная область, с адресом того места, где сидит объект. Две области - две кружки. Три области - три кружки.
Объект характеризуется тем, сколько ячеек памяти занимает. И тем, чем забиты эти ячейки. А забиты они единицами и нулями, которые описывают то, как именно проявляются характеристики объекта. Зеленая кружка или в цветочек. Стекляная, фарфоровая или алюминиевая. Бьется ли, или гнется, потому что резиновая.
Вот тут важный момент, над которым спорят все философии мира. Дело в том, что объекта нет. Давайте повторим. Есть область памяти. Есть свойства и методы, расписанные в этой области. Объекта нету. В зависимости от того, от какой до какой ячейки мы рассматриваем единицы и нули, мы рассматриваем разные объекты.
Ссылки на объекты
Адрес ячейки, с которой нужно начинать считывать характеристики объекта, загружается в один из регистров процессора. Скажу проще: тот, кто обрабатывает данные, тот и знает, откуда начинать. Не сам знает, ему подсказали более знающие. Но нам сейчас это неинтересно. Важно то, что как подскажут, так и будет работать. Причем, поправить изначальную посказку нельзя пока программа загружена. Иногда можно, но эти поправки мы должны предусмотреть в программе.
Проектируя программу, мы не знаем, в какую ячейку памяти поместят характеристики объекта. А нам нужно ссылаться на него много раз. Так, чтобы подсказчик потом мог подставить выделенный им адрес ячейки в нужное место. Поэтому мы даем объекту имя. Связь между именем и местом, где объект искать, и есть ссылка на объект.
Ссылок может быть великое множество, все они будут указывать на один и тот же объект. Ссылки можно уничтожать. Даже когда останется одна последняя ссылка на объект, ее можно стереть. Объект останется, но мы ни за что не сумеем им воспользоваться.
Класс тоже имеет имя для того, чтобы мы могли к нему обращаться и создавать реализации класса - объекты.
Выводы
Кружки вообще - это класс. Ноумен. Придумайте сами еще какие-нибудь философские понятия.
Вот эта кружка со смешными цеплятами на боку - объект класса "кружки". Феномен. Ну и см. выше.
Никто из моих домашних в настоящий момент не имеет ссылки на эту кружку. Как и на некоторые другие вещи. В крайнем случае, они могут обратиться ко мне, чтобы я передала им эту ссылку. Или обрести ссылку в процессе поиска. Чтобы объяснить, какая именно кружка им нужна, они используют ее имя - "кружка с цыплятами, но не та, из которой ты обычно пьешь чай, а вторая".
Но мы можем говорить о кружках вообще, используя имя класса. Никаких ссылок на класс мы получить не можем. Ну это и понятно.
Выводы? Выводы делайте сами. У меня их нет.