Understanding access specifiers
Until this point, all of our methods have used a public access specifier. Multiple other access specifiers can be used that allow different levels of access to function block attributes. In terms of what we have been using thus far, the public access specifier means that any file from anywhere in the program can access the attribute as long as it has access to an object variable that references the function block.
Generally, you want as few public attributes as possible. The only reason we have been setting our methods to public is for the sole sake of example. In OOP, you want your attributes to be as hidden as possible. In other words, the fewer files that can access a function block, the better off your program will be. Essentially, by properly hiding attributes, your program will be easier to maintain, with less possibility of code corruption. This is a concept that we will explore when we look at abstraction in the following section.
For now...