Ukrywanie danych to metoda wykorzystywana w programowaniu obiektowym do ukrywania informacji w kodzie komputerowym. Obiekty w kodzie nie mają dostępu do informacji uważanych za ukryte. Ma to kilka zalet dla programistów, ponieważ obiekty nie są w stanie połączyć się z nieistotnymi danymi, a hakerzy mają mniejsze szanse na dostęp do danych. Jednocześnie ukrywanie danych może utrudnić programiście, który może potrzebować więcej kodu do tworzenia efektów w ukrytych danych, niż byłoby to konieczne, gdyby dane były publiczne.
Programowanie obiektowe to rodzaj programowania, w którym części kodu są dzielone na obiekty. Każdy z tych obiektów jest zaprogramowany w kapsułach, więc każdy obiekt ma swoje własne kodowanie, które dotyczy tylko tego obiektu. Bez określania danych jako ukrytych wszystkie dane są otwarte dla obiektów.
Ukrywanie danych zajmuje pewne części kodu i ukrywa te części przed obiektami. Obiekty nie mają bezpośredniego dostępu do żadnych danych, które są ukryte. Jeśli obiekt uzyska dostęp do ukrytych danych, zwróci błąd. Dzieje się tak, ponieważ obiekt nie widzi danych, więc wszelkie funkcje lub dane oznaczone jako ukryte będą wyglądać na niewidoczne dla obiektu. W większości przypadków ukryte dane to wewnętrzne komponenty, które nie są potrzebne użytkownikowi i mogą okazać się niebezpieczne, jeśli dane zostaną otwarte dla użytkownika.
Zaletą dla programistów jest to, że programista nie ma możliwości przypadkowego połączenia się z nieprawidłowymi danymi. Ukrywanie danych zapewnia, że jeśli programista utworzy to łącze, program po prostu zwróci błąd, aby programista mógł szybko naprawić błąd. Zapewnia to również, że wszystkie obiekty są naprawdę odizolowanymi jednostkami, co jest główną koncepcją kodowania obiektowego. Dane nietrwałe są zazwyczaj ukryte, ponieważ ich upublicznienie może spowodować uszkodzenie obiektu i zniszczenie całego programu.
Kolejną zaletą ukrywania danych jest zwiększone bezpieczeństwo przed hakerami. Jeśli wszystkie dane wewnętrzne są publiczne, haker może łatwo wcisnąć się do danych wewnętrznych i wprowadzić dowolne zmiany, aby złośliwie manipulować programem. Ukrywając dane znacznie trudniej jest złamać kod, ponieważ dane będą niewidoczne dla obiektów i hakera.
Wadą ukrywania danych jest to, że czasami może zmusić programistów do użycia dodatkowego kodowania. Jeśli programista jest w stanie połączyć się z ukrytymi danymi, może to przyspieszyć działanie obiektów lub zmniejszyć dużą ilość kodu. Większość programistów nie udostępnia jednak wszystkich informacji publicznie z powodu wszystkich problemów związanych z tego typu kodowaniem.