It depends on how it was defined:
handles.num = 15
Now "handles" is a struct containing the field "num", which has the value 15. But if your define "handles" as object, it could be something different.
So please take the time to investigate it yourself:
class(handles)
whos('handles')
methods(handles)
If I dare to guess, "handles = guidata(FigureHandle)" might be the creator of the struct "handles". If so, see "help guidata" for more details.