{"id":3456,"date":"2016-11-01T14:54:19","date_gmt":"2016-11-01T12:54:19","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=3456"},"modified":"2016-11-01T14:54:19","modified_gmt":"2016-11-01T12:54:19","slug":"aufgebaute-exemplare-mitzaehlen","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2016\/11\/aufgebaute-exemplare-mitzaehlen\/","title":{"rendered":"Aufgebaute Exemplare mitz\u00e4hlen"},"content":{"rendered":"<p>Ein\u00a0Konstruktor soll die Anzahl der erzeugten Objekte mitz\u00e4hlt; eine statische Methode liefert sp\u00e4ter die bis dahin gebauten Exemplare:<\/p>\n<pre>public class Rollercoaster {\n\n\n\n\n\u00a0 private static int <strong>numberOfInstances<\/strong>;\n\n\n\n\n\u00a0 {\n\n\u00a0\u00a0\u00a0 <strong>numberOfInstances++<\/strong>;\n\n\u00a0\u00a0}\n\n\n\n\n\u00a0 public static int getNumberOfInstances() {\n\n\u00a0\u00a0\u00a0 return <strong>numberOfInstances<\/strong>;\n\n\u00a0 }\n\n\n\n\n\u00a0 public static void main( String[] args ) {\n\n\u00a0\u00a0\u00a0 new Rollercoaster();\n\n\u00a0\u00a0\u00a0 new Rollercoaster();\n\n\n\n\n\u00a0\u00a0\u00a0 System.out.println( Rollercoaster.getNumberOfInstances() ); \/\/ 2\n\n\u00a0 }\n\n}<\/pre>\n<p>Die statische Variable numberOfInstances wird bei jedem neuen Exemplar \u00fcber den Konstruktor hochgesetzt. Direkt ausgeschrieben ist der Konstruktor nicht, sondern es findet ein Exemplarinitialisierer Anwendung, da der Compiler den Code automatisch in jeden Konstruktor kopiert. Das hat den Vorteil, dass Entwickler sp\u00e4ter problemlos neue Konstuktoren f\u00fcr den Rollercoaster hinzuf\u00fcgen k\u00f6nnen, ohne das Inkrement der statischen Variable immer im Hinterkopf behalten zu m\u00fcssen.<\/p>\n<p><strong>Hinweis:\u00a0<\/strong>Bei nebenl\u00e4ufigen Zugriffen auf statische Variablen kann es zu Problemen kommen. Deshalb m\u00fcssen wir spezielle Synchronisationsmechanismen nutzen \u2013 die das Beispiel allerdings nicht verwendet. Statische Variablen k\u00f6nnen auch schnell zu Speicherproblemen f\u00fchren, da Objektreferenzen sehr lange gehalten werden. Der Einsatz muss wohldurchdacht sein.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein\u00a0Konstruktor soll die Anzahl der erzeugten Objekte mitz\u00e4hlt; eine statische Methode liefert sp\u00e4ter die bis dahin gebauten Exemplare: public class Rollercoaster { \u00a0 private static int numberOfInstances; \u00a0 { \u00a0\u00a0\u00a0 numberOfInstances++; \u00a0\u00a0} \u00a0 public static int getNumberOfInstances() { \u00a0\u00a0\u00a0 return numberOfInstances; \u00a0 } \u00a0 public static void main( String[] args ) { \u00a0\u00a0\u00a0 new Rollercoaster(); [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1,11],"tags":[],"class_list":["post-3456","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-insel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=3456"}],"version-history":[{"count":5,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3456\/revisions"}],"predecessor-version":[{"id":3461,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3456\/revisions\/3461"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=3456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=3456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=3456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}