Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall 645-4739 1.

Similar presentations


Presentation on theme: "CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall 645-4739 1."— Presentation transcript:

1 CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall 645-4739 alphonce@buffalo.edu 1

2

3 Announcements Exam 2 – less than 2 weeks away –covers material from exam 1 up to & including 10/15 –review on Monday 10/18 –exam on Wednesday 10/20

4 Agenda association relationship –null –this

5 Parameter list difference public void setCollar (Collar collar) public Collar getCollar () Accessors and mutators can be defined for any of the instance variables declared in a class. A mutator method needs a value to set the instance variable to. The mutator method is parameterized in its behavior. An accessor method always does the same thing: it returns the current value of the instance variable. The accessor method is therefore not parameterized in its behavior.

6 What about public/private? They are access control modifiers: they control access to members of a class (instance variables and methods are called members). A member which is public can be accessed from outside of the class definition. This is the least restrictive form of access control. A member which is private can only be accessed from inside the class definition. This is the most restrictive form of access control.

7 Why accessors/mutators? Why use accessors and mutators, rather than just make instance variables public? public grants both read/write access. With accessors/mutators you can be selective in allowing just one or the other (or both). Accessors/mutators are methods, and can do more than simply grant read/write access to instance variables (Bank account example). Accessors/mutators can exist for “virtual” instance variables: –Many graphical objects provide both a getLocation/setLocation pair, as well as a getCenterLocation/setCenterLocation pair. In reality, only one location is stored, the other is calculated. Which is stored? Who cares? The client of the code does not need to know – the methods will do the right thing. The implementation can even change and the methods will still work correctly.

8 Shape s1 = new Shape(java.awt.Color.BLUE); Shape s2 = new Shape(java.awt.Color.RED); public class Shape { private java.awt.Color _color; public Shape(java.awt.Color c) { _color = c; }... } Example 1

9 Shape s1 = new Shape(java.awt.Color.BLUE); Shape s2 = new Shape(java.awt.Color.RED); Example 1 s1 Shape _color s2 BLUE Shape _color RED

10 public class Shape { private java.awt.Color _color; public Shape(java.awt.Color c) { _color = c; } public java.awt.Color getColor() { return _color; } public void setColor(java.awt.Color c) { _color = c; }

11 Shape s1 = new Shape(java.awt.Color.BLUE); Shape s2 = new Shape(java.awt.Color.RED); s2.setColor(s1.getColor()); Example 1 s1 Shape _color s2 BLUE Shape _color RED

12 Result? Both shapes have the same color (java.awt.Color.BLUE). This is OK.

13 Dog fido = new Dog(new Collar()); Dog dino = new Dog(new Collar()); Example 2 fido Dog _collar dino Dog _collar

14 Dog fido = new Dog(new Collar()); Dog dino = new Dog(new Collar()); dino.setCollar(fido.getCollar()); Example 2 fido Dog _collar dino Dog _collar ???

15 Result? Both dogs have the same collar. ?!? Second collar is “lost”. :-(

16 What could we do instead?

17 ‘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):

18 removeCollar rather than getCollar public class Dog { private Collar _collar; public Dog(Collar collar) { _collar = collar; } public void setCollar(Collar collar) { _collar = collar; } public Collar removeCollar() { Collar temp = _collar; _collar = null; return _collar; }


Download ppt "CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall 645-4739 1."

Similar presentations


Ads by Google