point p = new point(1, 2) // one reference here, // one reference in draw(). draw(p)
private point p = new point(1, 2) void rotate() { ... p.x ... } void translate() { ... p.x ...}
private Array points[] void add(x, y) point p = new point(x, y) // whatever points[0] = p
void draw() { ... point p = point(x, y) ... }
void draw() { point p = point(x, y) ... normalize(p) ... }
void draw() { point p = point(x, y) ... normalize(p) }
public service() point p = new point() ; m1(p) ; m2(p) ; ... private m1(point p) { no p copy } private m2(point p) { no p copy }
void operate() point p = new point(1, 2) // whatever untrusted(p.clone())
clone()
can be difficult.
void operate() point p = new point(1, 2) untrusted(p.freeze()) untrusted(p.x, p.y)
class PointThread extends Thread private point p; PointThread(Runnable r, int x, int y) super(r) p = new point(x, y)
This page last modified on 8 July 2003.