[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-core-v-chem-raznitsa-mezhdu-chlenom-ekzemplyara-klassa-i-staticheskim-chlenom-klassa":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":20,"progress":21,"seo":22},40,"v-chem-raznitsa-mezhdu-chlenom-ekzemplyara-klassa-i-staticheskim-chlenom-klassa",2,"java-core","Java Core","☕","В чем разница между членом экземпляра класса и статическим членом класса?","Модификатор `static` говорит о том, что данный метод или поле принадлежат самому классу и доступ к ним возможен даже без создания экземпляра класса. Поля, помеченные `static` инициализируются при инициализации класса. На методы, объявленные как `static`, накладывается ряд ограничений:\n\n+ Они могут вызывать только другие статические методы.\n+ Они должны осуществлять доступ только к статическим переменным.\n+ Они не могут ссылаться на члены типа `this` или `super`.\n\nВ отличии от статических, поля экземпляра класса принадлежат конкретному объекту и могут иметь разные значения для каждого. Вызов метода экземпляра возможен только после предварительного создания объекта класса.\n\nПример:\n```java\npublic class MainClass {\n\n\tpublic static void main(String args[]) {\n\t\tSystem.out.println(TestClass.v);\n\t\tnew TestClass().a();\n\t\tSystem.out.println(TestClass.v);\n\t}\n\n}\n```\n\n```java\npublic class TestClass {\n\n\tpublic static String v = \"Initial val\";\n\n\t{\n\t\tSystem.out.println(\"!!! Non-static initializer\");\n\t\tv = \"Val from non-static\";\n\t}\n\n\tstatic {\n\t\tSystem.out.println(\"!!! Static initializer\");\n\t\tv = \"Some val\";\n\t}\n\n\tpublic void a() {\n\t\tSystem.out.println(\"!!! a() called\");\n\t}\n\n}\n```\n\nРезультат:\n\n```\n!!! Static initializer\nSome val\n!!! Non-static initializer\n!!! a() called\nVal from non-static\n\n```","","junior",[15,16,17,18,19],"ООП","core","static","основы","экземпляр",[],null,{"title":23,"description":24,"ogTitle":25,"ogDescription":26,"keywords":27,"schemaAnswer":32,"featuredSnippetReady":33},"Член экземпляра vs статический член класса в Java — Gymterview","Статический член принадлежит классу и доступен без создания объекта. Член экземпляра принадлежит конкретному объекту и требует его создания.","Статический член класса и член экземпляра — в чём разница?","Static принадлежит классу, доступен без объекта. Instance принадлежит объекту, имеет разные значения для каждого экземпляра.",[28,29,30,31],"статический член класса Java","член экземпляра Java","static vs instance","разница static Java","Статический член принадлежит самому классу и доступен без создания экземпляра. Статические методы могут вызывать только другие статические методы, обращаться только к статическим переменным и не могут ссылаться на this или super. Члены экземпляра принадлежат конкретному объекту, могут иметь разные значения для каждого экземпляра, и их вызов возможен только после создания объекта.",true]