CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall
Announcements Exam 2 – 2 weeks away –covers material from exam 1 up to & including 10/21 –review on Monday 10/24 –exam on Wednesday 10/26
Agenda null this interfaces
‘null’ ‘null’ denotes the null reference, a reference which does not refer to any object. We can use ‘null’ to solve the two dogs, one collar problem (see code on next slide):
removeCollar rather than getCollar public class Dog { private Collar _collar; public Dog(Collar collar) { this._collar = collar; } public void setCollar(Collar collar) { this._collar = collar; } public Collar removeCollar() { Collar temp = this._collar; this._collar = null; return temp; }
Can also use in constructor public class Dog { private Collar _collar; public Dog() { _collar = null; }. } Now a Dog can be created without a Collar
Consider this code (assume association via constructor) Dog fido = new Dog(new Collar()); Dog rover = new Dog(new Collar()); fido – 3500 rover – 4000 fido’s _collar – 3600 rover’s _collar – 4100 two collars are at 4850 and fido rover _collar
Dog fido = new Dog(new Collar()); Dog rover = new Dog(new Collar()); fido.setCollar(rover.removeCollar()); public Collar removeCollar() { Collar temp = _collar; _collar = null; return temp; } Consider this code (assume association via constructor) temp fido rover _collar
Dog fido = new Dog(new Collar()); Dog rover = new Dog(new Collar()); fido.setCollar(rover.removeCollar()); public Collar removeCollar() { Collar temp = _collar; _collar = null; return temp; } Consider this code (assume association via constructor) What happens here? Which _collar are we referring to here? temp fido rover _collar
fido.setCollar(rover.removeCollar()); public Collar removeCollar() { Collar temp = _collar; _collar = null; return temp; } this the object on which a method is invoked this temp fido rover _collar What happens here? Which _collar are we referring to here?
fido.setCollar(rover.removeCollar()); public Collar removeCollar() { Collar temp = this._collar; this._collar = null; return temp; } this implicitly in code this temp fido rover _collar What happens here? Which _collar are we referring to here?
rover.setCollar(fido.removeCollar()); public Collar removeCollar() { Collar temp = this._collar; this._collar = null; return temp; } this temp fido rover _collar What happens here? Which _collar are we referring to here?