Comic Strip Analysis and Design Inheritance, Abstract Classes, and Polymorphism part1 Barb Ericson Georgia Institute of Technology May 2006 Georgia Institute of Technology Learning Goals Do an analysis for a comic strip Do a design for a comic strip Pull out a common parent class Generalization
Give an example of an abstract class Extend a parent class, but do something differently Specialization Understand polymorphism And how run-time or dynamic binding works Georgia Institute of Technology What do we mean by a comic strip? What parts does it have? What things should you be able to find out about one? Georgia Institute of Technology
A Comic Strip Has a name and an author Typically has 4 panels, but can have more or less The Comic Strip: Pears Before Swine Georgia Institute of Technology A Comic Panel Has a picture And one or more speech balloons Georgia Institute of Technology A Speech Balloon Is a rounded rectangle or ellipse with text
(words) in it Has a tail that indicates who is speaking The tail is shown as a triangle from the bottom of the rounded rectangle to the speaker Georgia Institute of Technology A UML Class Diagram Shows the design for an object-oriented solution ComicStrip author name
Shows each class as a rectangular box May include the fields and methods Shows the relationships between objects of the classes 1* ComicPanel 1 0* Picture
SpeechBalloon upperLeft tailEnd message Has a (association) Is a (inheritance) Georgia Institute of Technology Thought Balloons Are like speech balloons But they show what a character is thinking, not saying Use circles to connect balloon to thinker The Comic Strip: Ben
Georgia Institute of Technology How to Handle Thought Balloons? We could copy the class for speech balloon and save it out with a new name And change everywhere that has Speech to Thought But what if we later want to add something to both classes? We would have to add it in both classes Also, how would we handle the ComicPanel? Would it have 0 or more SpeechBalloons and 0 or more ThoughtBalloons? Georgia Institute of Technology
How to Handle Thought Balloons? We could make a new class ThoughtBalloon ComicStrip author name As a subclass of SpeechBalloon Since they are very similar But, is this right? Is a ThoughtBalloon a kind of
Georgia Institute of Technology Be Careful with Inheritance! Only use it when the child is really of the same type of thing as the parent Not just to reuse similarities Instead pull out a common parent class And have both SpeechBalloon and ThoughtBalloon inherit from it Pull out all common fields and methods And put them in the common parent class This is also called generalization Georgia Institute of Technology
Generalization Move common fields and methods into a parent class And let the children classes inherit the fields and methods Easier to maintain than copying fields and methods Better than using inheritance when the child isnt really a kind of parent Makes it easier to add new children classes ComicStrip
author name 1* ComicPanel 1 Picture SpeechBalloon Georgia Institute of Technology 0* TextBalloon upperLeft tailEnd message
ThoughtBalloon TextBalloons What should a text balloon know how to do? It should know how to draw itself It will need a graphics context Used to do the drawing Add the draw method to the UML class diagram TextBalloon upperLeft tailEnd Message draw(Graphics g)
Georgia Institute of Technology Abstract Class Can we draw just a text balloon? What would we draw? We could draw the balloon and text What kind of tail would it have? We need to know what type of text balloon it is in order to draw the tail Which we will only know at run-time Cant predict what will be needed So TextBalloon is an abstract class One that you can not create an object from You can only inherit from it
And it will have an abstract method drawTail Subclasses will override draw or also be abstract Georgia Institute of Technology Try it Try to create a TextBalloon object using the interactions pane in DrJava Use the constructor that takes a upper left point (java.awt.Point), a width, the point of the tail (java.awt.Point) and a string. import java.awt.Point; TextBalloon balloon = new TextBalloon(new Point (23,33),100,new Point(50,40),Hi); What error do you get? Georgia Institute of Technology
How to Create an Abstract Class Add the keyword abstract to the class definition public abstract class TextBalloon Abstract classes often have abstract methods To create an abstract method add the keyword abstract to the method definition and end the method with a semicolon after the parameter list public abstract void drawTail(paramList); Georgia Institute of Technology
Exercise Run the main method in ComicPanel to see an example with both a speech balloon and a thought balloon Modify the main method to create your own comic panel with a speech balloon and a thought balloon Georgia Institute of Technology
A Delphi study . Delphi workshop. 8-item questionnaire containing elimination targets and definitions. Delphi is a well-known research method where a team of experts is consulted for achieving convergence of opinion concerning real-world knowledge.
A film reviewer also creates a dialogue. They place a movie in the social context of the times. For example, a good film reviewer in the 80s would have, and did, talk about the sort of hard bodied muscle men,...
There should not be clinical features of other nonsyncope causes of loss of consciousness, such as seizure, antecedent head trauma, or apparent loss of consciousness (i.e., pseudosyncope)." First, to define: Syncope is a SYMPTOM.
IRPO: sintesi endoteliale di NO. TBI > 0,20. LDF (Laser Doppler Flussimetria) Monofilamento di Semmens- Weinstein. Filo di naylon. Pressione di 10 gr. Perpendicolare alla superficie cutanea e lievemente premuto (1,5 sec).
• Establishment of penal provisions for contraventions of the above requirements. Provisions of the Conventions • Limitations on the number of days" supply that may be provided in a single . prescription;
Fiona Cowan & Sarah Flint. BMJ Careers, December 2012 The Canadian Conference on Medical Education Quebec City, April 2013 Poster presentation at the RCOG World Congress in Liverpool June 2013 References Kroenke K. Mentorship. SGIM Forum. 2001; 24:3-8 Levinson D....
Sample analog voice with PC sound card to get a continuous mono 16-bit digital stream of raw audio at 8000Hz (120000 bps). 2. ... While repeaters "A" and "B" are connected, all local traffic on each repeater will be heard...