It depends on which version you're using.
In proto1 and proto2, every field had a "has" method and "explicitly set to default value" was different from "absent".
In proto3, they tried to remove this feature, and instead said that for basic types, "set to default" and "absent" are the same thing.
(I wrote proto2. I left Google before proto3 came about.)