Git Product home page Git Product logo

object_java's Introduction

Object_JAVA

Class Object java.lang.Object

В корне иерархии всех классов находится класс java.lang.Object, который является наиболее общим из всех классов. java.lang.Object является прародителем (суперклассом) всех объектов. Это начальный класс, из которого произведены все остальные классы. Методы, определенные в Object, очень важны, так как они появляются в каждом экземпляре каждого класса по всей Java.

Особенности:

  • Каждый класс имеет класс Object в качестве суперкласса (неявно).
  • Все объекты, включая массивы, наследуют методы этого класса.
  • Объектами не являются лишь простые типы: числа, символы и логические значения.

Методы класс Object.

  • clone() - Создает и возвращает копию этого объекта. protected Object

  • equals(Object obj) - Указывает, является ли какой-либо другой объект «равным» этому. boolean

public boolean equals(Object obj)
Указывает, является ли какой-либо другой объект "равным" этому.

Метод `equals` реализует(implements ) отношение эквивалентности для ненулевых ссылок на объекты:

	* Это рефлексивно: для любого ненулевого ссылочного значения `x`, `x.equals(x)`
 	должно возвращать `true`.

	* Это симметрично: для любых ненулевых ссылочных значений `x и y, x.equals(y)`
 	должно возвращать `true` тогда и только тогда, когда `y.equals(x)` возвращает true.

	* Это транзитивно: для любых ненулевых ссылочных значений `x, y и z,
 	если x.equals(y)` возвращает `true`, а `y.equals(z)` возвращает `true`,
  	то `x.equals(z)` должен возвращать значение true.

	* Это согласовано: для любых ненулевых ссылочных значений x и y многократные вызовы `x.equals(y)`
	последовательно возвращают `true` или последовательно возвращают `false`,
	при условии, что информация, используемая при сравнении объектов `equals`, не изменена.

	* Для любого ненулевого ссылочного значения x, x.equals(null) должно возвращать значение false.

Метод `equals` для `class Object` реализует наиболее точное из возможных отношений эквивалентности объектов;
то есть для любых ненулевых ссылочных значений x и y этот метод возвращает true тогда и только тогда,
когда x и y ссылаются на один и тот же объект (x == y имеет значение true)..

Обратите внимание, что обычно необходимо переопределять метод `hashCode` всякий раз,
когда этот метод переопределяется,
чтобы сохранить общий контракт для метода `hashCode`,
в котором указано, что равные объекты должны иметь равные хэш-коды.

Параметры:
obj - эталонный объект, с которым выполняется сравнение.
Возвращается:
истинно, если этот объект совпадает с аргументом obj; ложно в противном случае.
  • finalize() - Вызывается сборщиком мусора для объекта, когда сборщик мусора определяет, что больше нет ссылок на объект. protected void

  • getClass() - возвращает объект типа Class (описание класса объекта). Class<?>

public final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
Возвращаемый Class object — это объект заблокированный  static synchronized методами представляемого класса.

Фактический тип результата — Class<? extends |X|> where |X| стирание статического типа выражения,
для которого getClass вызывается. Например, в этом фрагменте кода приведение не требуется:

Number n = 0;
Class<? extends Number> c = n.getClass();

Возвращает:
Объект Class, представляющий класс среды выполнения этого объекта.
  • hashCode() - возвращает уникальный идентификатор объекта(). int
public int hashCode()
Возвращает значение хэш-кода для объекта.
Этот метод поддерживается для хеш-таблиц, таких как предоставленные HashMap.

Общий контракт hashCode:
	* Всякий раз, когда он вызывается для одного и того же объекта более одного раза
 	во время выполнения Java-приложения,
	метод hashCode должен последовательно возвращать одно и то же целое число,
 	при условии, что информация,
	используемая при сравнении equals для объекта, не изменяется.
	Это целое число не обязательно должно оставаться неизменным
 	от одного выполнения приложения к другому выполнению того же приложения.

	* Если два объекта равны в соответствии с методом `equals(Object)`,
	то вызов метода `hashCode` для каждого из двух объектов должен
 	привести к одинаковому целочисленному результату.

	* Не требуется, чтобы, если два объекта были неравными в соответствии с
 	`equals`(java.lang.Object) метод,
	затем вызов метода `hashCode` для каждого из двух объектов должен приводить к
 	различным целочисленным результатам.
	Однако программист должен знать,
	что получение различных целочисленных результатов для неодинаковых объектов
 	может повысить производительность хэш-таблиц.

Насколько это разумно практично, метод hashCode,
определенный `class Object`, возвращает различные целые числа для различных объектов.
(Обычно это реализуется путем преобразования внутреннего адреса объекта в целое число,
но язык программирования Java™ не требует такого способа реализации.)

Возвращается:
значение хэш-кода для этого объекта.
  • notify() - возобновляет (уведомляет) один из потоков, вызвавших метод wait() на этом же объекте. void

  • notifyAll() - возобновляет (уведомляет) все потоки, вызвавшие метод wait() на этом же объекте.

  • toString() - возвращает представление объекта в виде строки. String

  • wait() - Заставляет текущий поток ожидать, пока другой поток не вызовет notify() метод или notifyAll() метод для этого объекта. void

  • wait(long timeout) - Заставляет текущий поток ожидать, пока другой поток не вызовет notify() метод или notifyAll() метод для этого объекта, или пока не истечет указанное количество времени. void

  • wait(long timeout, int nanos) - Заставляет текущий поток ожидать, пока другой поток не вызовет notify()метод или notifyAll()метод для этого объекта, или какой-либо другой поток не прервет текущий поток, или пока не истечет определенное количество реального времени. void

object_java's People

Contributors

lukviktor avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.