Object-oriented Analysis and   DesignMirza Adil4/14/2013      Mirza Adil         1
Introduction     OOAD: object-oriented analysis and design     Class and object concepts     Discovering classes       CR...
Object-Oriented Principles                          OOP                                Inheritance           PolymorphismE...
What is an Object?     Object-oriented programming supports the view that programs     are composed of objects that intera...
Classes are Blueprints     A class defines the general nature of a     collection of objects of the same type.     The pro...
Example                       objects                                   Object                                   Reference...
Inheritance Hierarchy                                                              Food Hierarchy                         ...
Polymorphism (subtype)     Consider a class Food. What can you do with     Food? What does it have?     Consider specific ...
Requirements and AnalysisMethods    See the description of a library management system    (LMS) from Hwk1, a copy of which...
Use-case Analysis     Use case analysis involves reading and     analyzing the specifications, as well as     discussing t...
Use-case Diagram ForBorrower                 Borrower            (from Logical Vi ew)                                     ...
Use-case Diagram forLibrarian                                            addT itle            Librarian                   ...
Use Cases For Borrower andLibrarian       Use cases for the borrower:         Borrow item         Return item         M...
Use-case Descriptions    Use Case: Lend Item    Pre-condition: Item may or may be reserved    Post-condition: Borrower get...
CRC Card Example   Weather Station                       Collaborations                                         User Inter...
CRC Card: UserInterface    UserInterface                          Collaborators    Responsibilities                       ...
CRC Card: Keypad    Keypad                            Collaborators                                      Date    Responsib...
CRC Card: Temperature    Temperature                         Collaborations    Responsibilities                    T.Devic...
Class Discovery     The entries in the collaborations column are     possible classes or non-software entities.     In thi...
Classes     OO paradigm supports the view that a system     is made up of objects interacting by message     passing.     ...
Discovering Classes(Alternative)     Underline the nouns in a problem statement.     Using the problem context and general...
Examples     Drawing package: Design a user interface for     drawing various shapes: circle, square,     rectangle.     F...
Designing Classes (Take 2) A class represents a class of objects. A class contains the data declarations (“parts”) and met...
Classes are Blueprints(Take 2)     A class defines the general nature of a collection of     objects of the same type.    ...
Example (Take 2)                       objects                                   Object                                   ...
Class Diagram : Automobile            Automobile            public:                seat                seatBelt           ...
Automobile Class UsingRational Rose Tool              Automobile            seat            seatBelt            accelerato...
Access Control     Public, protected, private     Public properties and behaviors are available     to any other object to...
Relationships     Typically an application consists of     many related classes.     Commonly used relationships include: ...
Association     An association is a connection between     classes, a semantic connection between     objects of classes i...
Association : Examples                       Uses      Person                              Computer     A person uses a co...
Roles in Association                             drives       Person                                       Car            ...
Aggregation     Aggregation represents a relation     “contains”, “is a part of”, “whole-part”     relation.     Indicated...
Aggregation: Example                       contains      League                                Team                       ...
Generalization     Generalization is a relationship between a     general and a specific class.     The specific class cal...
Generalization: Symbol     It represents “is a” relationship among     classes and objects.     Represented by a line with...
Generalization: Example                  Vehicle            Car    Boat                Truck4/14/2013                 Mirz...
Combined Example                           drives            Person                  0..*   Vehicle                     Ca...
Discovering Classes    Library Management System (LMS)     RESPONSIBILITIES                               COLLABORATIONS  ...
CRC Cards     LMS     (Librarian)     Borrower     Title: Book Title, Magazine Title     Item     Reservation     Transact...
Static Analysis: Initial ClassDiagram                 Item                                         Title                  ...
Dynamic Analysis     “Borrow Item” use case using Sequence     Diagram     “Add Title” use case using Collaboration     di...
Borrow Item: Sequence Diagram : Borrower                 Bison : LMS             : Title           : Borrower         : Lo...
Add Title: Collaboration Diagram            Assuming that            add title implies            addi ng an item         ...
Add Item: Activity Diagram            Title                       Item          Database                              crea...
Component Diagram                         Business Package            + Item            + Loan            + Title         ...
Analysis, DesignImplementation/programming     What is the deliverable at the end of     the analysis and design phase?  ...
Problem Solving Using Java                     OO Design and Progamming in Java                                           ...
Instantiation :Examples class FordCar ---- defines a class name FordCar FordCar windstar; ---- defines a Object reference ...
Operator new and “dot”     new operator creates a object and     returns a reference to that object.     After an object h...
Elements of a Class                               class                               methods                 data declara...
Class Structure                             class                                     variables                           ...
Defining Classes     Syntax:     class class_name {       data-declarations       constructors       methods }     Constru...
Naming Convention     Constants: All characters in uppercase, words     in the identifier separated by underscore: EX:    ...
A complete example     Problem Statement: You have been     hired to assist in an secret encryption     project. In this p...
Identify Objects     There are two central objects:           Message           Secret code     Is there any class prede...
The Random class     Random class is defined in java.util     package.     nextInt() method of Random class     returns an...
Design            Class String                             Class Random                                                   ...
Debugging and Testing     Compile-time Errors : Usually typos or syntax errors     Run-time Errors : Occurs during executi...
Class Components   Class name (starts with uppercase),   constants, instance variables,   constructors definitions and met...
Method Invocation/Call   Syntax:method_name (values);object_name.method_name(values);classname.method_name(values);Example...
Defining Methods  A method is group of (related)  statements that carry out a specified  function.  A method is associated...
Method Definition : Syntaxvisibility return_type method_name                     (parameter_list){ statements}4/14/2013   ...
Return Type     can be void, type or class identifier     void indicates that the method called to     perform an action i...
Return Statement   Syntax of return statement: return; // for void methods return expression; // for type or class   retur...
Parameter List     Parameter list specified in method header provides a     mechanism for sending information to a method....
Parameter list : Syntax  Formal parameter list: This is like molds or  templates(parm_type parm_name, parm_type parm_name,...
Method Definition : review                                              definition                    header              ...
Method Definition : Example     Write a method that computes and     returns the perimeter of a rectangle     class.     A...
...Example (contd.)public int Perimeter (int Length, int Width){  int Temp; // local temporary variable  Temp = 2 * (Lengt...
What happens when a methodis called?     Control is transferred to the method     called and execution continues inside   ...
Method Invocation : semantics  Operating  System                1                                     1. OS to main method...
Constructors A Constructor is used to create or instantiate an object from the class. Constructor is a special method:   ...
Constructors (contd.)    You don’t have to define a constructor if you need    only a default constructor.    When you wan...
Visibility Modifiers                                                 type        Method/variable namepublic     protected ...
..Modifiers (contd.)     private : available only within class     “nothing” specified : DEFAULT: within     class and wit...
Inheritance     Inheritance is the act of deriving a new class     from an existing one.     A primary purpose of inherita...
Syntax class subclass extends superclass { class definition } Example:  class Windstar extends FordCar // meaning it      ...
Representing the Relationship                            BankClass                    has a                              h...
Modifers     Visibility modifiers: private, public,     protected     Protected modifier is used when the     entity needs...
Example : Words    Main class                                     Book class                                              ...
Example : School                                Student   Main class                uses                                 G...
Example                            Food           Abstract super class            Pizza           Hamburger               ...
Interface      An abstract method is one that does not      have a definition within the class. Only the      prototype is...
Exampleinterface EPA { bool emissionControl();bool pollutionControl();…}class NYepa implements EPA {  bool emissionControl...
Inheritance and Interfaces   In Java class may inherit (extend) from only   one class. (C++ allows multiple inheritance). ...
Next Steps     Develop a multi-class java application     Develop a application with graphical     user interface     Deve...
Summary     We studied object-oriented analysis and     design.           From problem statement to class diagram     We ...
Upcoming SlideShare
Loading in...5
×

(Ooad)mirza adil

1,003

Published on

Concept of UML

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,003
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "(Ooad)mirza adil"

  1. 1. Object-oriented Analysis and DesignMirza Adil4/14/2013 Mirza Adil 1
  2. 2. Introduction OOAD: object-oriented analysis and design Class and object concepts Discovering classes  CRC card  Word problem to classes Classes and relationships Inheritance and polymorphism OOP: Object-oriented programming in Java At the end of this class you should be able to analyze a problem, design a OO solution and implement it in Java programming language4/14/2013 Mirza Adil 2
  3. 3. Object-Oriented Principles OOP Inheritance PolymorphismEncapsulation -- Many forms of -- Hierarchy(class concept) same function -- Reusability-- Information Hiding -- Abstract Methods -- Extensibility-- Interface and -- Abstract Classes -- Expressive power Implementations -- Reflects many-- Standardization real-world problems-- Access Control mechanisms (private /public etc.) 4/14/2013 Mirza Adil 3
  4. 4. What is an Object? Object-oriented programming supports the view that programs are composed of objects that interact with one another. How would you describe an object? Using its characteristics (has a ----?) and its behaviors (can do -- --?) Object must have unique identity (name) : Basketball, Blue ball Consider a ball:  Color and diameter are characteristics (Data Declarations)  throw, bounce, roll are behaviors (Methods)4/14/2013 Mirza Adil 4
  5. 5. Classes are Blueprints A class defines the general nature of a collection of objects of the same type. The process creating an object from a class is called instantiation. Every object is an instance of a particular class. There can be many instances of objects from the same class possible with different values for data.4/14/2013 Mirza Adil 5
  6. 6. Example objects Object References redRose class Rose blueRose class4/14/2013 Mirza Adil 6
  7. 7. Inheritance Hierarchy Food Hierarchy Foo d eat( ) IceCream Spagh etti Pi zza eat( ) eat( ) eat( ) eat() is an example of polymorphic operation. Obj ect (Java) Object Hierarchy equ al s( ) equals(), clone() and toString() tostri ng ( ) cl one( ) illustrate sub-type polymorphism Sal ary Autom obi l e Fam i l yT ree equ al s( ) equ al s( ) equ al s( ) toStri n g( ) cl one( ) toStri n g( ) cl one( ) toStri n g( ) cl one( )4/14/2013 Mirza Adil 7
  8. 8. Polymorphism (subtype) Consider a class Food. What can you do with Food? What does it have? Consider specific food items Ice Cream, Spaghetti and Pizza. How will you eat these? (Invoke eat() operation on objects of these classes)? eat() operation is polymorphically invoked depending on the type of the item it is invoked on.4/14/2013 Mirza Adil 8
  9. 9. Requirements and AnalysisMethods See the description of a library management system (LMS) from Hwk1, a copy of which is attached. We will follow these steps:  Functional requirements represented by Use Case Diagrams  Classes discovered using CRC cards  Static Analysis represented by class diagrams  Dynamic Analysis by a variety of interaction diagrams (inter-class) and state diagram (intra- class).  Component diagram showing the various modules.  Deployment diagram showing the platforms and machines used.4/14/2013 Mirza Adil 9
  10. 10. Use-case Analysis Use case analysis involves reading and analyzing the specifications, as well as discussing the system with potential users of the system. Actors of the LMS are identified as the librarians and borrowers. Librarians directly interact with the system whereas borrowers interact with the system through the librarian.4/14/2013 Mirza Adil 10
  11. 11. Use-case Diagram ForBorrower Borrower (from Logical Vi ew) makeReservation <<uses>> removeReservation borrowItem returnItem4/14/2013 Mirza Adil 11
  12. 12. Use-case Diagram forLibrarian addT itle Librarian rem oveUpdateT itle addItem rem oveUpdateItem addBorrower4/14/2013 B.Ramamurthy rem oveUpdateBorrower 12
  13. 13. Use Cases For Borrower andLibrarian Use cases for the borrower:  Borrow item  Return item  Make reservation  Remove reservation Use cases for the librarian:  Add title, Update or remove title  Add borrower, Update or remove borrower  Add item, Update or remove item Note 1: A title may have many items: A book may have many copies. Note 2: Titles may be book or magazine titles Note 3: Persistence: All use cases involve database access4/14/2013 B.Ramamurthy 13
  14. 14. Use-case Descriptions Use Case: Lend Item Pre-condition: Item may or may be reserved Post-condition: Borrower gets Item. Database updated. Exceptions: Title not avail, Item not avail Actions: Case 1. If borrower has not reserved the item: a. A title is identified b. An available item of the title is identified c. The borrower is identified d. The item is borrowed(transaction) c. A new loan (transaction) is registered. Case 2. If the borrower has a reservation for the item: a. The borrower is identified b. The item is borrowed c. New loan is registered d. reservation is removed.4/14/2013 Mirza Adil 14
  15. 15. CRC Card Example Weather Station Collaborations User Interface(UI) Responsibilities Date 1. Select 24hr/Current Time 2. Set Date Time Temp 3. Display Current Wind 1. Temp(T) Pressure 2. Wind (W) Humidity 3. Pressure (P) 4. Humidity (H) 4. Display 24hours 1. Hi/Lo for (TWPH) 5. Display Trends in TWPH 6. Calibrate Calibrator4/14/2013 Mirza Adil 15
  16. 16. CRC Card: UserInterface UserInterface Collaborators Responsibilities Keypad Display 1. Input date 2. Input time Temp 3. Input selection Wind 4. Display data Pressure Humidity4/14/2013 Mirza Adil 16
  17. 17. CRC Card: Keypad Keypad Collaborators Date Responsibilities Time 1. Store date 2. Store time Selection 3. Store selection4/14/2013 Mirza Adil 17
  18. 18. CRC Card: Temperature Temperature Collaborations Responsibilities T.Device 1. Measure and Record temperature StatDataBase 2. Determine and record Hi/Lo 3. Determine trend Date Time4/14/2013 Mirza Adil 18
  19. 19. Class Discovery The entries in the collaborations column are possible classes or non-software entities. In this case these are: UserInterface, Display, Tempertaure, Wind, Pressure, Humidity, StatDataBase, Selection, Date, Time, Keypad, Callibrator. The responsibility of designing one or more of these classes can be assigned to the members of the group who participated in this discovery process. On to relations among classes and class diagrams.4/14/2013 Mirza Adil 19
  20. 20. Classes OO paradigm supports the view that a system is made up of objects interacting by message passing. Classes represent collection of objects of the same type. An object is an instance of a class. A class is defined by its properties and its behaviors. A class diagram describes the static view of a system in terms of classes and relationships among the classes.4/14/2013 Mirza Adil 20
  21. 21. Discovering Classes(Alternative) Underline the nouns in a problem statement. Using the problem context and general knowledge about the problem domain decide on the important nouns. Design and implement classes to represent the nouns. Underline the verbs. Verbs related to a class may represent the behavior of the class.4/14/2013 Mirza Adil 21
  22. 22. Examples Drawing package: Design a user interface for drawing various shapes: circle, square, rectangle. Football scores: Keep track of football score. General purpose counter: To keep of track of count for various applications. Library: Books, different categories of books, details of student borrower, library personnel.4/14/2013 Mirza Adil 22
  23. 23. Designing Classes (Take 2) A class represents a class of objects. A class contains the data declarations (“parts”) and methods (“behaviors” or “capabilities” ).OO Design: Class properties or characteristics are answers to “What is it made of?” (It has a ____, ____, etc.) Behaviors, capabilities or operations are answers to “What can it do?” (verbs in the problem) 4/14/2013 Mirza Adil 23
  24. 24. Classes are Blueprints(Take 2) A class defines the general nature of a collection of objects of the same type. The process creating an object from a class is called instantiation. Every object is an instance of a particular class. There can be many instances of objects from the same class possible with different values for data. A class structure implements encapsulation as well as access control: private, public, protected.4/14/2013 Mirza Adil 24
  25. 25. Example (Take 2) objects Object References redRose class Rose blueRose class4/14/2013 Mirza Adil 25
  26. 26. Class Diagram : Automobile Automobile public: seat seatBelt accelerator private: sparkPlugs gear protected: gloveCompartment public: startEngine brake protected: transmission private: fuelInjection4/14/2013 Mirza Adil 26
  27. 27. Automobile Class UsingRational Rose Tool Automobile seat seatBelt acceleratorPedal sparkPlugs gear gloveCompartment startEngine( ) brake( ) transmission( ) fuelInjection( )4/14/2013 Mirza Adil 27
  28. 28. Access Control Public, protected, private Public properties and behaviors are available to any other object to use/invoke Private: available only within the objects. Protected: available within the objects and to the class hierarchy inherited from the class. (We will discuss more about this when dealing with OO concept Inheritance.)4/14/2013 Mirza Adil` 28
  29. 29. Relationships Typically an application consists of many related classes. Commonly used relationships include: associations, aggregations, and generalizations.4/14/2013 Mirza Adil 29
  30. 30. Association An association is a connection between classes, a semantic connection between objects of classes involved in the association. Association typically represents “has a” or “uses” relationships. Indicated by a line,  sometimes with arrow indicating unidirectional relationship,  adorned by the name of the relation, and  the ends of the line adorned by cardinality of relationship and optionally by the roles connected to each class.4/14/2013 Mirza Adil 30
  31. 31. Association : Examples Uses Person Computer A person uses a computer. Owns Person 0..* Car A person may own many (zero..many) cars.4/14/2013 Mirza Adil 31
  32. 32. Roles in Association drives Person Car driver company car A person (driver) drives a (company) car. wife Person husband married to4/14/2013 Mirza Adil 32
  33. 33. Aggregation Aggregation represents a relation “contains”, “is a part of”, “whole-part” relation. Indicated by a line adorned on the “whole” by a hollow diamond  Along with name of relationship and  Cardinality.4/14/2013 Mirza Adil 33
  34. 34. Aggregation: Example contains League Team * Membership aggregation: A league is made up of Many teams. 4 wheel made of Auto engine Strong aggregation. 1 * part4/14/2013 Mirza Adil 34
  35. 35. Generalization Generalization is a relationship between a general and a specific class. The specific class called the subclass inherits from the general class, called the superclass. Public and protected properties (attributes) and behaviors (operations) are inherited. Design representation “inheritance” OO concept.4/14/2013 Mirza Adil 35
  36. 36. Generalization: Symbol It represents “is a” relationship among classes and objects. Represented by a line with an hollow arrow head pointing to the superclass at the superclass end.4/14/2013 Mirza Adil 36
  37. 37. Generalization: Example Vehicle Car Boat Truck4/14/2013 Mirza Adil 37
  38. 38. Combined Example drives Person 0..* Vehicle Car Boat Truck4/14/2013 Mirza Adil 38
  39. 39. Discovering Classes Library Management System (LMS) RESPONSIBILITIES COLLABORATIONS 1. Borrow item Item 2. Reserve item 3. Return item 4. Remove reservation Reservation 5. Add borrower Borrower 6. Update or remove borrower 7. Add title (book or magazine) Title 8. Update or remove title Book Title 9. Add item Magazine Title 10. Update or remove item 11. Store loan details Loan (Transaction) Database4/14/2013 Mirza Adil 39
  40. 40. CRC Cards LMS (Librarian) Borrower Title: Book Title, Magazine Title Item Reservation Transaction (Loan) Database for storage4/14/2013 Mirza Adil 40
  41. 41. Static Analysis: Initial ClassDiagram Item Title 0..* 0..1 0..* BookTitle MagazineTitle LoanTransaction Reservation 0..* 0..* Objects of these classes are all persistent data (in Borrow er a Database)4/14/2013 Mirza Adil 41
  42. 42. Dynamic Analysis “Borrow Item” use case using Sequence Diagram “Add Title” use case using Collaboration diagram “Add Item” using Activity diagram “Reservation” state diagram4/14/2013 Mirza Adil 42
  43. 43. Borrow Item: Sequence Diagram : Borrower Bison : LMS : Title : Borrower : Loan : Item Transaction 1: findTitle ( ) 2: find ( ) 3: findItem ( ) 4: searchItem ( ) 5: identifyBorrower ( ) 6: findBorrower ( ) 7: createLoanTrans ( )4/14/2013 Mirza Adil 43
  44. 44. Add Title: Collaboration Diagram Assuming that add title implies addi ng an item 1: create ( ) 3: addItem ( ) name, ISBN id Objid : Title : Librarian 2: setItem ( ) ObjId,id titleObj : Item 4: storeTi tle ( ) itemObj 5: storeItem ( ) DB : DB4/14/2013 Mirza Adil 44
  45. 45. Add Item: Activity Diagram Title Item Database createItem setItem addToTitle updateDatabase4/14/2013 Mirza Adil 45
  46. 46. Component Diagram Business Package + Item + Loan + Title + Borrower inf ormation + Book Title + Reserv ation + Magazine Title GUI Package + Lend Window + Return Window + Reserv ation Window + Maintenance Window4/14/2013 Mirza Adil 46
  47. 47. Analysis, DesignImplementation/programming What is the deliverable at the end of the analysis and design phase? One or more class diagrams showing the classes and the relationships that define the OOD. On to OOP: Object-oriented programming.4/14/2013 Mirza Adil 47
  48. 48. Problem Solving Using Java OO Design and Progamming in Java Write an Identify classes needed Write an applet application class classReuse API Reuse Design new Create and use objectsclasses your classes classes 4/14/2013 Mirza Adil 48
  49. 49. Instantiation :Examples class FordCar ---- defines a class name FordCar FordCar windstar; ---- defines a Object reference windStar windstar = new FordCar(); ---- instantiates a windstar Object class HousePlan1 { color…. HousePlan1 blueHouse; blueHouse = new HousePlan1(BLUE); HousePlan1 greenHouse = new HousePlan1(GREEN); 4/14/2013 Mirza Adil 49
  50. 50. Operator new and “dot” new operator creates a object and returns a reference to that object. After an object has been instantiated, you can use dot operator to access its methods and data declarations (if you have access permissions). EX: redRose.bloom(); greenHouse.color4/14/2013 Mirza Adil 50
  51. 51. Elements of a Class class methods data declarations (variables, header constants) body headermodifiers, variables, statements parameterstype, name constants selection repetition others assignment 4/14/2013 Mirza Adil 51
  52. 52. Class Structure class variables constants methods4/14/2013 Mirza Adil 52
  53. 53. Defining Classes Syntax: class class_name { data-declarations constructors methods } Constructors are special methods used for instantiating (or creating) objects from a class. Data declarations are implemented using variable and constant declarations.4/14/2013 Mirza Adil 53
  54. 54. Naming Convention Constants: All characters in uppercase, words in the identifier separated by underscore: EX: MAX_NUM Variables, objects, methods: First word all lowercase, subsequent words start with uppercase. EX: nextInt, myPen, readInt() Classes: Start with an uppercase letter. EX: Tree, Car, System , Math Packages: are formed by set of related classes and packages.4/14/2013 Mirza Adil 54
  55. 55. A complete example Problem Statement: You have been hired to assist in an secret encryption project. In this project each message (string) sent out is attached to a randomly generated secret code (integer) between 1 and 999. Design and develop an application program in Java to carry out this project.4/14/2013 Mirza Adil 55
  56. 56. Identify Objects There are two central objects:  Message  Secret code Is there any class predefined in JAVA API that can be associated with these objects? Yes ,  “string” of java.lang and “Random” of java.util4/14/2013 Mirza Adil 56
  57. 57. The Random class Random class is defined in java.util package. nextInt() method of Random class returns an integer between 0 and MAXINT of the system.4/14/2013 Mirza Adil 57
  58. 58. Design Class String Class Random An instance of Random An instance of string number generator Input and fill up message. Generate Random integer Attach (concatenate) Output combined message.Lets look at an implementation.4/14/2013 Mirza Adil 58
  59. 59. Debugging and Testing Compile-time Errors : Usually typos or syntax errors Run-time Errors : Occurs during execution. Example: divide by zero . Logic Errors: Software will compile and execute with no problem, but will not produce expected results. (Solution: testing and correction) See /projects/bina/java/Peets directory for an exercise.4/14/2013 Mirza Adil 59
  60. 60. Class Components Class name (starts with uppercase), constants, instance variables, constructors definitions and method definitions. Constants: public final static double PI = 3.14; Variables: private double bonus; public string name;4/14/2013 Mirza Adil 60
  61. 61. Method Invocation/Call Syntax:method_name (values);object_name.method_name(values);classname.method_name(values);Examples:computeSum(); // call to method from within the class where it is locatedYourRose.paintIt(Red);Math.abs(X);4/14/2013 Mirza Adil 61
  62. 62. Defining Methods A method is group of (related) statements that carry out a specified function. A method is associated with a particular class and it specifies a behavior or functionality of the class. A method definition specifies the code to be executed when the method is invoked/activated/called.4/14/2013 Mirza Adil 62
  63. 63. Method Definition : Syntaxvisibility return_type method_name (parameter_list){ statements}4/14/2013 Mirza Adil 63
  64. 64. Return Type can be void, type or class identifier void indicates that the method called to perform an action in a self-standing way: Example: println type or class specify the value returned using a return statement inside the method.4/14/2013 Mirza Adil 64
  65. 65. Return Statement Syntax of return statement: return; // for void methods return expression; // for type or class return value // the expression type and return type should be same4/14/2013 Mirza Adil 65
  66. 66. Parameter List Parameter list specified in method header provides a mechanism for sending information to a method. It is powerful mechanism for specializing an object. The parameter list that appears in the header of a method  specifies the type and name of each parameter and  is called formal parameter list. The corresponding parameter list in the method invocation is called an actual parameter list.4/14/2013 Mirza Adil 66
  67. 67. Parameter list : Syntax Formal parameter list: This is like molds or templates(parm_type parm_name, parm_type parm_name, ....) Actual parameter list: This is like material that fit into the mold or template specified in the formal list:(expression, expression....) 4/14/2013 Mirza Adil 67
  68. 68. Method Definition : review definition header bodyVisibilitymodifiers parameter listreturn type Name { statements } 4/14/2013 Mirza Adil 68
  69. 69. Method Definition : Example Write a method that computes and returns the perimeter of a rectangle class. Analysis:  Send to the method: Length and Width  Compute inside the method: Perimeter  Return from the method: Perimeter4/14/2013 Mirza Adil 69
  70. 70. ...Example (contd.)public int Perimeter (int Length, int Width){ int Temp; // local temporary variable Temp = 2 * (Length + Width); // compute perimeter return Temp; // return computed value} 4/14/2013 Mirza Adil 70
  71. 71. What happens when a methodis called? Control is transferred to the method called and execution continues inside the method. Control is transferred back to the caller when a return statement is executed inside the method.4/14/2013 Mirza Adil 71
  72. 72. Method Invocation : semantics Operating System 1 1. OS to main method 2 2. Main method execution Main method 3. Invoke Area Rect.Area(….) 8 4. Transfer control to Area 3 5. Execute Area method 7 6. Return control back to 4 main method 8 7. Resume executing main 8. Exit to OS Area 5 method 64/14/2013 Mirza Adil 72
  73. 73. Constructors A Constructor is used to create or instantiate an object from the class. Constructor is a special method:  It has the same name as the class.  It has no return type or return statement. Typically a class has more than one constructor: a default constructor which has no parameters, and other constructors with parameters.4/14/2013 Mirza Adil 73
  74. 74. Constructors (contd.) You don’t have to define a constructor if you need only a default constructor. When you want initializing constructors : 1. you must include a default constructor in this case. 2. You will use initializing constructors when you want the object to start with a specific initial state rather than as default state. 3. Example: Car myCar(Red); // initializing constructor for Car class with color as parameter4/14/2013 Mirza Adil 74
  75. 75. Visibility Modifiers type Method/variable namepublic protected “nothing” DEFAULT private static “nothing” DEFAULT To indicate class method/ To indicate variable object method/ variable 4/14/2013 Mirza Adil 75
  76. 76. ..Modifiers (contd.) private : available only within class “nothing” specified : DEFAULT: within class and within package protected : within inherited hierarchy (only to sub classes) public : available to any class.4/14/2013 Mirza Adil 76
  77. 77. Inheritance Inheritance is the act of deriving a new class from an existing one. A primary purpose of inheritance is to reuse existing software. Original class used to derive a new class is called “super” class and the derived class is called “sub” class. Inheritance represents “is a” relationship between the superclass and the subclass.4/14/2013 Mirza Adil 77
  78. 78. Syntax class subclass extends superclass { class definition } Example: class Windstar extends FordCar // meaning it inherits from class Fordcar{ ....} Windstar myCar(); In this example, FordCar is the super-class and Windstar is a sub-class and myCar is an object Windstar class.4/14/2013 Mirza Adil 78
  79. 79. Representing the Relationship BankClass has a has a has a Account [ ] MortgageSVC BrokerageSVC is a is aChecking Savings is a : use inheritance has a : use composition, or membership 4/14/2013 Mirza Adil 79
  80. 80. Modifers Visibility modifiers: private, public, protected Protected modifier is used when the entity needs to be available to the subclass but not to the public.4/14/2013 Mirza Adil 80
  81. 81. Example : Words Main class Book class Super class Uses is a Dictionary Class subclass4/14/2013 Mirza Adil 81
  82. 82. Example : School Student Main class uses Grad Student4/14/2013 Mirza Adil 82
  83. 83. Example Food Abstract super class Pizza Hamburger HotDog subclasses4/14/2013 Mirza Adil 83
  84. 84. Interface An abstract method is one that does not have a definition within the class. Only the prototype is present. An interface is collection of constants and abstract methods. Syntax interface interface_name { constant -declarations; abstract methods; }4/14/2013 BR 84
  85. 85. Exampleinterface EPA { bool emissionControl();bool pollutionControl();…}class NYepa implements EPA { bool emissionControl () { details/semantics /statements how to implement it }class CAepa implements EPA { bool emissionControl () {…. // different details on implementation….} 4/14/2013 Mirza Adil 85
  86. 86. Inheritance and Interfaces In Java class may inherit (extend) from only one class. (C++ allows multiple inheritance). But a Java class may implement many interfaces. For example, public class Scribble extends Applet implements MouseListner, MouseMotionListner {4/14/2013 Mirza Adil 86
  87. 87. Next Steps Develop a multi-class java application Develop a application with graphical user interface Develop the solution for LMS Where can you get more info? http://www.netbeans.org/kb/trails/java-se.html4/14/2013 Mirza Adil 87
  88. 88. Summary We studied object-oriented analysis and design.  From problem statement to class diagram We also studied basics of object- oriented programming (OOP).4/14/2013 Mirza Adil 88
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×