{"id":1198,"date":"2023-06-29T13:12:06","date_gmt":"2023-06-29T11:12:06","guid":{"rendered":"https:\/\/bitcamp.it\/blog\/?p=1198"},"modified":"2023-06-29T13:12:08","modified_gmt":"2023-06-29T11:12:08","slug":"encapsulation","status":"publish","type":"post","link":"https:\/\/bitcamp.it\/blog\/glossario\/encapsulation\/","title":{"rendered":"Encapsulation"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">L\u2019encapsulation, nella programmazione a oggetti, consiste nel fare in modo che <strong>i dati e le funzioni di elaborazione relative siano integralmente contenuti all&#8217;interno di un singolo oggetto<\/strong> <strong>oppure all&#8217;interno di una piccola famiglia di moduli strettamente collegati tra di loro<\/strong>.<br>In questo modo diventa possibile <strong>modificarli<\/strong> senza interferire con il funzionamento di altre porzioni di programma.<br><br>Si nascondo <strong>all&#8217;esterno<\/strong> gran parte dei dettagli che caratterizzano l&#8217;oggetto: gli attributi (dati) e i metodi (le procedure).<br>Sono invece visibili le operazioni che l&#8217;oggetto pu\u00f2 compiere e le interfacce con cui attivarle.<br><br>L\u2019encapsulation \u00e8 altamente desiderabile nella programmazione modulare e risulta di fatto essenziale nella <strong>programmazione a oggetti<\/strong>. I tre tipi di elementi che di solito vengono incapsulati sono: <strong>i dati<\/strong>, in particolare se strutturati come nel caso di tabelle o liste; <strong>gli algoritmi<\/strong> per manipolare tali dati; <strong>i nomi dei dati<\/strong> interni necessari a tali algoritmi.<br>In Java, ad esempio, l\u2019encapsulation consiste nel fatto che lo stato di <strong>un dato oggetto<\/strong> non viene liberamente condiviso ma <strong>incapsulato<\/strong>, cio\u00e8 racchiuso, in modo sia <strong>raggiungibile e modificabile<\/strong> solo secondo una precisa disciplina.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>L\u2019encapsulation consiste nel fare in modo che i dati e le funzioni di elaborazione relative siano integralmente contenuti all&#8217;interno di un singolo oggetto o di una piccola famiglia di moduli.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[24],"class_list":["post-1198","post","type-post","status-publish","format-standard","hentry","category-glossario","tag-e"],"_links":{"self":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts\/1198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/comments?post=1198"}],"version-history":[{"count":1,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts\/1198\/revisions"}],"predecessor-version":[{"id":1199,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/posts\/1198\/revisions\/1199"}],"wp:attachment":[{"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/media?parent=1198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/categories?post=1198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitcamp.it\/blog\/wp-json\/wp\/v2\/tags?post=1198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}