1 / 24

Question of the Day

Question of the Day. Write valid mathematical equation using: 2 3 4 5 one addition operator (‘+’) one equality operator (‘=’) Should have equal values on both sides of equals sign Not limited to what is possible in Java. Question of the Day.

madison
Télécharger la présentation

Question of the Day

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Question of the Day • Write valid mathematical equation using:2 3 4 5oneaddition operator (‘+’)oneequality operator (‘=’) • Should have equal values on both sides of equals sign • Not limited to what is possible in Java

  2. Question of the Day • Write valid mathematical equation using:2 3 4 5 one addition operator (‘+’)one equality operator (‘=’) • Should have equal values on both sides of equals sign • Not limited to what is possible in Java 5 + 4 = 32

  3. Lecture 9:Interfaces

  4. Interfaces in Real World • Everyone should give me colored paper in wallets • Men pictured on these unimportant papers • In return, will show you trip pictures (when I get back)

  5. Interfaces in Real World • Everyone should give me colored paper in wallets • Men pictured on these unimportant papers • In return, will show you trip pictures (when I get back)

  6. Interfaces in Real World • Everyone should give me colored paper in wallets • Men pictured on these unimportant papers • In return, will show you trip pictures (when I get back)

  7. Interfaces in Real World

  8. Interfaces • Can only declare important constant fields • publicstaticfinalmust be used for fields • Interface declares publicabstractmethods • Methods callable anywhere by any class • But method’s body cannot be defined in interface

  9. Adding to an Interface • Interfaces have sub-interfaces • Sub-interfaceextendssuper-interface • Super-interface’s methods included in sub-interface • Methods from super-super-interface also inherited • Sub-interface can extendmultiple interfaces • Methods not defined so no problems possible

  10. Declaring Interfaces publicinterfaceDrawable{public void setColor(Color c); public ColorgetColor(); public void draw(Graphics g);}public interfaceTranDrawextendsDrawable{ public void setTransparency(inttLevel);}public interfaceMoveDrawextendsDrawable{ public void setPosition(int x, int y);}

  11. Interfaces • Classesimplementinterfaces • Implementing classes define interface’s methods • Any number of interfaces may be implemented • Multiple inheritance issues ignored -- methods empty • Unrelated to superclasschosen or used by a class • Classes must implement all interface’s methods • Includes methods inherited from super-interface

  12. Implementing Interfaces public class SquareimplementsDrawable {private Color c;private int x, y, side;public Square(Colorcol, intlen) { c = col; side = len;}public void setColor(Colorcol){ c=col; }public ColorgetColor() { return c; }public void draw(Graphics g) { g.drawRect(x, y, side, side, c);} }

  13. Implementing Interfaces public class Oval implementsDrawable {private Color c;private int x, y, majRad, minRad;public Oval(Color co, intmaj, int min){ c = co;majRad = maj;minRad = min;}public void setColor(Color col){ c=col; }public ColorgetColor() { return c; }public void draw(Graphics g) { g.drawOval(x, y, majRad, minRad, c);} }

  14. Using Interfaces • Cannot instantiate an interface… • Not possible, since only create instances of class • Variables of interface type perfectly legal • Variable can refer to implementing class instance • Methods must be implemented in actual class • In Java, which method called by instance type public voiddrawRed(Drawabled, Graphics g) {d.setColor(Color.red);d.draw(g); }

  15. Using Interfaces • Cannot instantiate an interface… • Not possible, since only create instances of class • Variables of interface type perfectly legal • Variable can refer to implementing class instance • Methods must be implemented in actual class • In Java, which method called by instance type public voiddrawRed(Drawabled, Graphics g) {d.setColor(Color.red);d.draw(g); }

  16. Using Interfaces • Cannot instantiate an interface… • Not possible, since only create instances of class • Variables of interface type perfectly legal • Variable can refer to implementing class instance • Methods must be implemented in actual class • In Java, which method called by instance type public voiddrawRed(Drawabled, Graphics g) {d.setColor(Color.red);d.draw(g); }

  17. Interface Overview • Classes can implementinterfaces • Both used to markinstances define method(s) • All variables can use interface or class as type • Abstact methods defined by interface • More flexible: class can implement many interfaces • Can mark classes; do not have to declare methods

  18. Typecasting inti = 13;Square s = ((Square)i); • Only exist to “assist” compiler with code • Changes variable’s type so compilation continues • Not in *.class file – does not affect instance at all • Only when KNOW instance & variables types differ • Errors at runtime instead of during compilation • Illegal code will compile, but still illegal

  19. Typecasting inti = 13;Square s = ((Square)i); • Only exist to “assist” compiler with code • Changes variable’s type so compilation continues • Not in *.class file – does not affect instance at all • Only when KNOW instance & variables types differ • Errors at runtime instead of during compilation • Illegal code will compile, but still illegal

  20. Narrowing Conversions • Java cannot compile narrowing conversions • Assign interface variable to implementing class variable • Compiler will not allow it, but could be legal • Typecasting required for these assignments Drawableobj = new Oval(...);

  21. Narrowing Conversions • Java cannot compile narrowing conversions • Assign interface variable to implementing class variable • Compiler will not allow it, but could be legal • Typecasting required for these assignments Drawableobj = new Oval(...); Oval sad = obj; //  Does not work

  22. Narrowing Conversions • Java cannot compile narrowing conversions • Assign interface variable to implementing class variable • Compiler will not allow it, but could be legal • Typecasting required for these assignments Drawableobj = new Oval(...); Oval sad = obj; //  Does not work Oval glad = (Oval)obj; //  works!

  23. Your Turn • Get into your groups and complete activity

  24. For Next Lecture • Read B.13 for Wed. and be ready to discuss • What is inheritance? • How does the extendskeyword work? • How does inheritance compare to interfaces? • As usual, there is weekly assignment on Angel • Due by 5PM Tuesdayvia Assignment Submitter • Each problem graded using provided JUnit tests

More Related