event based programming
play

Event Based Programming Check out EventBasedProgramming from SVN - PowerPoint PPT Presentation

Event Based Programming Check out EventBasedProgramming from SVN Exam 2 is less than 2 weeks away! First day of 8 th week Layout in Java windows JFrames add(Component c) method Adds a new component to be drawn Throws out the old


  1. Event Based Programming Check out EventBasedProgramming from SVN

  2. Exam 2 is less than 2 weeks away! First day of 8 th week

  3. Layout in Java windows

  4.  JFrame’s add(Component c) method ◦ Adds a new component to be drawn ◦ Throws out the old one!  JFrame also has method add(Component c, Object constraint) ◦ Typical constraints:  BorderLayout.NORTH, BorderLayout.CENTER ◦ Can add one thing to each “direction”, plus center  JPanel is a container (a thing!) that can display multiple components Q1-2

  5. So, how do we do this?

  6.  To update graphics: ◦ We tell Java library that we need to be redrawn:  space.repaint() ◦ Library calls paintComponent() when it’s ready  Don on’t ca call ll paintComponent() yoursel elf! It’ t’s ju just t ther ere f for J Jav ava’s ca call b back. ck. Q3

  7. public interface MouseListener { public void mouseClicked(MouseEvent e); public void mouseEntered(MouseEvent e); public void mouseExited(MouseEvent e); public void mousePressed(MouseEvent e); public void mouseReleased(MouseEvent e); } Q4

  8.  Sometimes a new class is a a speci ecial cas case e of the concept represented by another  Can “borrow” from an existing class, changing just what we need  The new class inherits its from the existing one: ◦ all methods ◦ all instance fields Q5

  9.  class SavingsAccount extends BankAccount ◦ adds interest earning, keeps other traits  class Employee extends Person ◦ adds pay information and methods, keeps other traits  class Manager extends Employee ◦ adds information about employees managed, changes the pay mechanism, keeps other traits

  10.  class SavingsAccount extends BankAccount { // added fields // added methods }  Say “ SavingsAccount is a s a BankAccount ”  Superc rcla lass: BankAccount  Su Subc bcla lass: SavingsAccount Q6

  11. The “superest” class in Java Solid line shows Still means inheritance “is a” Q7

  12.  class ClickHandler implements MouseListener ◦ ClickHandler promises ses to implement all the methods of MouseListener For cl clien ent code reuse  class CheckingAccount extends BankAccount ◦ CheckingAccount inherit rits (or overrides) all the methods of BankAccount For imple leme mentation tion code reuse

  13.  Inheri rit methods unchanged  Overrid rride methods ◦ Declare a new method with same signature to use inste tead o d of superclass method  Ad Add entirely new methods not in superclass Q8

  14.  ALWAYS i YS inherit all fields unchanged  Ca Can a n add entirely new fields not in superclass DANGER! Don’t use the same name as a superclass field! Q9

  15.  Calling superclass me meth thod: ◦ super.methodName(args);  Calling superclass constr truct ctor or: ◦ super(args); Must be the first line of the subclass constructor Q10

  16.  A subclass instance is is a superclass instance ◦ Polymorphism still works! ◦ BankAccount ba = new CheckingAccount(); ba.deposit(100); For cl clien ent code reuse  But not the other way around! ◦ CheckingAccount ca = new BankAccount(); ca.deductFees();  Why not? BOOM! Q11

  17.  Can use: ◦ public void transfer(double amt, BankAccount o){ this.withdraw(amount); o.deposit(amount); } in BankAccount  To transfer between different accounts: ◦ SavingsAccount sa = …; ◦ CheckingAccount ca = …; ◦ sa.transfer(100, ca);

  18. Also look at the code in the shapes package,  Hybrid of superclasses and interfaces especially ShapesDemo ◦ Like regular superclasses: (during or  Provide implementation of some methods after class) ◦ Like interfaces  Just provide signatures and docs of other methods  Can’t be instantiated  Example: ◦ public abstract class BankAccount { /** documentation here */ public abstract void deductFees(); … } Elided methods as before

  19.  Review ◦ public —any code can see it ◦ private —only the class itself can see it  Others ◦ default lt (i.e., no modifier)—only code in the same packa kage can see it Bad  good choice for classes for ◦ protected —like default, but fields! subclasses also have access  sometimes useful for helper methods Q12

  20. Demo UML Design Questions

  21. Linear Lights Out It's a solo project, but feel free to talk with others as you do it. And to ask instructor/assistants for help Q13-Q14

  22. BigRational from HW 10 BoardGames from HW 10

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend