Определение методов экземпляра и методов класса
При объявлении метода тип метода, который не изменяется ключевым словом static, является методом экземпляра, а тип метода, который изменяется ключевым словом static, является методом класса, также называемым статическим методом.
Например:
classMain{inta;floatmax(floatb,floatc){//Метод экземпляра...}staticfloatmax(floatd,floate){//Метод класса...}}
Разница между методами экземпляра и методами класса
1. Объект вызывает метод экземпляра:
Когда файл байт-кода класса загружается в память, методу экземпляра класса не будет назначен адрес входа. Только после того, как класс создаст объект, методу экземпляра в классе будет присвоен адрес входа. Метод экземпляра может использоваться любым объектом, созданным при выполнении вызова класса.
Уведомление:
Когда мы создаем первый объект, методу экземпляра в классе присваивается адрес входа. Когда объект создается снова, адрес входа больше не назначается. Другими словами, адрес входа метода является общим для всех объектов. . Когда все объекты Если ни один из них не существует, адрес входа метода отменяется.
Методы экземпляра могут работать не только с переменными экземпляра, но и с переменными класса. Когда объект вызывает метод экземпляра, переменные экземпляра и переменные класса, которые появляются в методе, являются переменными, присвоенными объекту, но переменные класса используются совместно со всеми другими объектами.
2. Вызовите метод класса, используя имя класса:
Для методов класса в классе, когда класс загружается в память, назначается соответствующий адрес записи, так что метод класса может быть не только вызван и выполнен любым объектом, созданным классом, но также может быть вызван непосредственно через имя класса. Адрес входа метода класса не отменяется до выхода из программы.
Уведомление:
Методы экземпляра не могут вызываться по имени класса, только объекты. А поскольку переменные-члены экземпляра не выделили память до того, как класс создаст объект, метод класса не может работать с переменными экземпляра.
3. Принципы проектирования методов класса:
Если методу не требуется использовать какие-либо переменные экземпляра в классе для удовлетворения потребностей программы, вы можете рассмотреть возможность разработки такого метода как статического метода.
Для статических методов вы можете вызвать его напрямую с именем класса, не создавая объект. Создание объекта приведет к тому, что переменным экземпляра в классе будет выделено пространство памяти.