Java Reference
In-Depth Information
inside-out rule , which in this instance makes the use of this unnecessary. Here
is the general rule:
General inside-out rule : In a subpart (e.g. a method) of a con-
struct (e.g. a class), all the names that are declared or that can be
referenced in the construct can be referenced in the subpart,
unless the subpart redeclares them.
Here is the inside-out rule as it pertains to method bodies in Java:
Inside-out rule for non-static method bodies : In a method body,
all the components of the class in which the method is defined can
be referenced, unless they are redeclared (e.g. as parameters).
This inside-out rule in Java lets us write method toString more simply as:
/** = a representation of this instance */
public String toString() {
return getName() + ", year " + getStart();
because getName , year , and getStart are declared in class Employee .
We illustrate a case where the use of this is necessary. Consider writing
method setName using name for the parameter instead of n :
/** Set the name of this Employee to name */
public void setName(String name)
{ this .name= name; }
Since the parameter is named name , name cannot be used directly to refer to
field name . The assignment name= name; assigns to the parameter and not to the
field. To assign to the field, write the assignment as: this .name= name;
Some programmers use the convention that in a setter method, the parame-
ter name is the same as the field being set. When using this convention, the use
of keyword this is needed to assign to the field.
Declaration of constructors
Chapter 2 contains an extensive treatment of procedures and functions. Here, we
discuss the third kind of method, the constructor . There is one constructor in
class Employee , which we give here:
/** Constructor: a person with name n , year hired d , salary 50,000 */
public Employee(String n, int d) {
name= n;
start= d;
Search WWH ::

Custom Search