Presentation is loading. Please wait.

Presentation is loading. Please wait.

COMP 114 Kimberly Noonan Chris VanderKnyff William Luebke.

Similar presentations


Presentation on theme: "COMP 114 Kimberly Noonan Chris VanderKnyff William Luebke."— Presentation transcript:

1 COMP 114 Kimberly Noonan Chris VanderKnyff William Luebke

2 What we’re doing today… ► Questions from Lecture  Abstract classes/methods  Inheritance  Polymorphism / Overloading / Dynamic Dispatch ► Assignment 3 Rubric ► Avoiding using the “instanceof” keyword

3 Assignment 3 Rubric

4 Comparing Apples and Oranges… abstract class Fruit { public Fruit() {} public abstract String getColor(); public abstract String getName(); }

5 Apples: class Apple extends Fruit { public Apple() {} public String getColor() { return "Red"; } public String getName() { return "Apple"; }};

6 Oranges: class Orange extends Fruit { public Orange() {} public String getColor() { return "Orange"; } public String getName() { return "Orange"; }};

7 Pears: class Pear extends Fruit { public Pear() {} public String getColor() { return "Green"; } public String getName() { return "Pear"; }};

8 Shopping for Fruit… public static void main(String args[]) { Random random=new Random(); ArrayList al=new ArrayList(); final int MAX_FRUIT=20; for (int i=0;i<MAX_FRUIT;i++) { int r=random.nextInt(3); switch (r) { case 0: { al.add(new Apple()); } break; case 1: { al.add(new Orange()); } break; case 2: { al.add(new Pear()); } break; }} // More on next slide...

9 We don’t like Oranges… for (int i=0;i<al.size();i++) { Fruit f=(Fruit)al.get(i); // We want to do something different for oranges... if (f instanceof Orange) // Why is this bad? { Orange orange=(Orange)f; System.out.println("What a terrible “ +orange.getName()+"! “+ “I'm done looking at fruit “+ “I'm done looking at fruit “+ “for today."); break;}else{ System.out.println("What a delicious “+ f.getColor()+" "+f.getName()+"..."); }}}}

10 ScreenShot

11 Revised Fruit… abstract class Fruit { public Fruit() {} public abstract String getColor(); public abstract String getName(); public boolean isTolerable() // (?) { return true; }}

12 Revised Orange: class Orange extends Fruit { public Orange() {} public String getColor() { return "Orange"; } public String getName() { return "Orange"; } public boolean isTolerable() { return false; }};

13 Revised FruitExample: for (int i=0;i<al.size();i++) { Fruit f=(Fruit)al.get(i); // What we’re really doing is doing something different // for intolerable fruit, not just oranges... if (f.isTolerable()) { System.out.println("What a terrible "+ f.getName()+ "! I'm done looking at fruit for today."); break;}else{ System.out.println("What a delicious "+ f.getColor()+" "+f.getName()+"..."); }}}}


Download ppt "COMP 114 Kimberly Noonan Chris VanderKnyff William Luebke."

Similar presentations


Ads by Google