Describe the Four Levels of Access Protection ?
Any two various Java objects have one of four relations to each other. The four relations are:
• The objects are in the similar class.
• One object is a subclass of the other object's class.
• The objects are in the similar package.
• None of the above. (Both objects are members of the general public.)
These relationships are not mutually exclusive. One object could be a subclass of another object in the similar package, for example.
You can describe that of your class's members that is its fields and its methods, are accessible to other objects in each of these four groups, associative to the current class.
If you need any object at all to be able to call a techniques or change a field, declare it public.
If you want only objects in the similar class to be able to get or set the value of a field or invoke a method, declare it private.
If you need access restricted to subclasses and members of the similar package, declare it protected.
At last, to restrict access only to objects in the similar package, use no access declaration at all. This is known as "package" or "default" access, but it has no keyword. The default keyword means something else whole.
Can anyone remember what?
By default, all classes you write are in the similar package. Therefore, they are in different packages from the Java classes like System or Applet.
The public fields and techniques of an object can be accessed from anywhere the object itself can be seen. Anyone can touch an object's public members. They should be kept to a minimum. Public fields should associate very closely to the core functionality of the class. They should not show intimate details of the inner workings of the class. Except in very simple instances fields should probably not be public.
The private fields and methods of an object can only be accessed by the object itself and by other objects of the same class (siblings). An object may touch its sibling's private parts. A sibling is an object in the same class but which is not the same object.