You don't have to declare them as private although that's the normal practice for instance members (fields). There are no hard and fast rules. You have to think about why you need to expose something as public and decide whether that's a good idea or not. A few things could factor into that decision: Java coding conventions (using getters instead of providing direct access to a field), encapsulation / information hiding, etc.
Practice only makes habit, only perfect practice makes perfect.
Practice mindfully by doing the right things and doing things right.— Junilu