/**
* This code is from the book:
* Winder, R and Roberts, G (1998)
* Developing Java Software
* John Wiley & Sons.
* It is copyright (c) 1997 Russel Winder
* and Graham Roberts.
*/
class ClassScope{
//A private variable with the class scope
private int n = 1;
//Access ClassScope object private variable
//in a ClassScope method.
public void alter(final ClassScope c){
//private variable n of
//ClassScope type parameter c accessed
c.n = 123;
}
//Access an instance object private variable n
public String toString(){
return new Integer(n).toString();
}
}
// Test the ClassScope varaible.
public class l1ClDecl1{//ScopeTest
public static void main(String[] args){
// Create ClassScope objects using public method
ClassScope a = new ClassScope();
ClassScope b = new ClassScope();
// Access private variables of one object
// using a public method of another object
a.alter(b);
System.out.println("Object a: " + a);
System.out.println("Object b: " + b);
// No direct access to private object variables:
// a.n = 123;
}
}
/******** sample compilation & run ********
# javac l1ClDecl1.java
# java l1ClDecl1
Object a: 1
Object b: 123
#
******************************************/