Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Class & Object - Intro


Published on

Chapter 6-1

Published in: Education, Technology
  • Be the first to comment

Class & Object - Intro

  1. 1. Introduction to Object-Oriented Programming
  2. 2. Problem Solving  The key to designing a solution is breaking it down into manageable pieces  When writing software, we design separate pieces that are responsible for certain parts of the solution
  3. 3.  Two popular programming design methods:  Structured Programming (SP)  Object-Oriented Programming (OOP) Problem Solving
  4. 4. SP  Procedural based approach  Main problem will be divided into sub- problems  Analyze and refine each sub-problem  All sub-problem solutions are implemented as procedures and combined to solves the main problem
  5. 5. Object-Oriented Programming  Object based approach  objects as foundation for problem solving  Identify objects from the main problem  An OOP program is a collection of objects that interacts each other
  6. 6. Object-Oriented Programming  More natural way to solve problem  Objects can be used to represent real-world entities  For instance, an object might represent a particular employee in a company  Each employee object handles the processing and data management related to that employee
  7. 7. Objects  Object-oriented programs use objects, which represent real world objects.  A real world object is a thing, both tangible and intangible.  An object has:  state (it has various properties, which might change)  behaviour (it can do things and can have things done to it) 7
  8. 8. Objects  OOProgramming software objects  Software objects have state  Instance Variable/Data/Field  Software objects have behaviour  Method 8 Object’s members
  9. 9. Objects interactions  OOP also involves interactions between objects through calling (invoking) of methods. 9 Method CallsThe OilSensor object calls the warning() method of the Controller, which then invokes the OilLight TurnOn() method.
  10. 10. Method can Return Values  Return value: A result that the method has computed and returns it to the caller  Can returns 0 or 1 value Scanner s = new Scanner(; int num = s.nextInt(); 10 Continued…
  11. 11. Classes and Objects  To create an object , we MUST provide a definition/description for it  A class is a description/blue print of a kind of object  It does not by itself create any objects How to create an object ?  An object is called an instance of a class Object instantiation – process of creating an object 11
  12. 12. Example of Java class: The String Class 12
  13. 13. Creating Objects  A variable holds either a primitive type or a reference to an object  A class name can be used as a type to declare an object reference variable String name;  No object is created with this declaration  An object reference variable holds the address of an object  The object itself must be created separately 13
  14. 14. Creating Objects  Generally, we use the new operator to create an object 14 name = new String (“Ali bin Ahmad"); This calls the String constructor, which is a special method that sets up the object • Creating an object is called instantiation • An object is an instance of a particular class
  15. 15. Constructing String objects Strings stringRef = new String(stringLiteral); eg. String name = new String(“Muhammad Haziq”); Since strings are used frequently, Java provides a shorthand notation for creating a string: String name = "Muhammad Haziq”; 15
  16. 16. Constructing String objects  New String objects are created whenever the String constructors are used: 16 String name4 = new String(); // Creates an object String name5 = new String("Socrates"); String name6 = name4;
  17. 17. Invoking Methods  We've seen that once an object has been instantiated, we can use the dot operator to invoke its methods name.length()  A method may return a value, which can be used in an assignment or expression count = name.length(); S.o.p(“Num. of char in “ + name+ “=“ + count);  A method invocation can be thought of as asking an object to perform a service 17
  18. 18. Object without object reference cannot be accessed 18 String n1 = new String(“Ali“); new String(“Abu“); sv1: String : String value = “Ali” value = “Abu” n1 n1- object reference variable
  19. 19. Object References  Primitive type variables ≠ object variables 19
  20. 20. References  Note that a primitive variable contains the value itself, but an object variable contains the address of the object  An object reference can be thought of as a pointer to the location of the object  Rather than dealing with arbitrary addresses, we often depict a reference graphically 20 "Steve Jobs"name1 num1 38
  21. 21. Assignment Revisited  The act of assignment takes a copy of a value and stores it in a variable  For primitive types: 21 num1 38 num2 96 Before: num2 = num1; num1 38 num2 38 After:
  22. 22. Object Reference Assignment  For object references, assignment copies the address: 22 name2 = name1; name1 name2 Before: "Steve Jobs" "Steve Austin" name1 name2 After: "Steve Jobs"
  23. 23. Questions 23 String stud1 = new String(“Ani”); int studID = 65000; What does variable stud1 contains? What does variable studID contains? Is this allowed? stud1 = studID; String stud1; stud1 = new String(“Ani”); stud1 = new String(“Obi”); How many objects were created by the program? How many reference variables does the program contain?
  24. 24. Writing Classes  The programs we’ve written in previous examples have used classes defined in the Java standard class library  Now we will begin to design programs that rely on classes that we write ourselves  True object-oriented programming is based on defining classes that represent objects with well-defined characteristics and functionality 24
  25. 25. Graphical Representation of a Class 25 The notation we used here is based on the industry standard notation called UML, which stands for Unified Modeling Language. A UML Class Diagram Class Name Variables Method Type of data Access Type of return value A class can contain data declarations and method declarations
  26. 26. Object Instantiation 26 class object
  27. 27. Object Design Questions  What role will the object perform?  What data or information will it need?  Look for nouns.  Which actions will it take?  Look for verbs.  What interface will it present to other objects?  These are public methods.  What information will it hide from other objects?  These are private. 27
  28. 28. Design Specification for a Rectangle  Class Name: Rectangle  Role: To represent a geometric rectangle  States (Information or instance variables) - Length: A variable to store rectangle’s length (private) - Width: A variable to store rectangle's width (private)  Behaviors (public methods) - Rectangle(): A constructor method to set a rectangle’s length and width - calculateArea(): A method to calculate a rectangle’s area 28
  29. 29. UML Design Specification 29 UML Class Diagram Class Name What data does it need? What behaviors will it perform? Public methods Hidden information Instance variables -- memory locations used for storing the information needed. Methods -- blocks of code used to perform a specific task.
  30. 30. Method can has input (parameter) & output (return value)  Parameter : value given to method so that it can do its task  Can has 0 or more parameter  Return value: A result that the method has computed and returns it to the caller  Can returns 0 or 1 value  Eg. - pow(2,3) - calculateArea() - getBalance( ) - move( ) 30 Continued…
  31. 31. Method Declarations  A method declaration specifies the code that will be executed when the method is invoked (called)  When a method is invoked, the flow of control jumps to the method and executes its code  When complete, the flow returns to the place where the method was called and continues  The invocation may or may not return a value, depending on how the method is defined 31
  32. 32. Method Control Flow  If the called method is in the same class, only the method name is needed 32 myMethod(); myMethodcompute
  33. 33. Method Control Flow  The called method is often part of another class or object 33 doIt helpMe helpMe();obj.doIt(); main
  34. 34. Method Design  What specific task will the method perform?  What input data will it need to perform its task?  What result will the method produce?  How input data are processed into result?  What algorithm will the method use? 34
  35. 35. Method calculateArea() Algorithm  Method Name: calculateArea()  Task: To calculate the area of a rectangle  Data Needed (variables)  length: A variable to store the rectangle's length  width: A variable to store the rectangle's width  area: A variable to store result of calculation  Processing: area = length x width  Result to be returned: area 35
  36. 36. Coding into Java 36 public class Rectangle // Class header { private double length; // Instance variables private double width; public Rectangle(double l, double w) // Constructor method { length = l; width = w; } public double calculateArea() // calculate area method { double area; area = length * width; return area; } // calculateArea() } // Rectangle class
  37. 37. Method calculatePerimeter() Algorithm  Write an algorithm to calculate the perimeter of a rectangle.  Write the method in Java. 37
  38. 38. calculatePerimeter() Algorithm  Method Name: calculatePerimeter()  Task: To calculate the perimeter of a rectangle  Data Needed (variables)  length  width  perimeter  Processing: perimeter = 2 x(length + width)  Result to be returned: perimeter 38
  39. 39. calculatePerimeter() in Java code 39 public double calculatePerimeter() { double perimeter; perimeter = 2 * (length + width); return perimeter; } // calculatePerimeter()
  40. 40. Creating Rectangle Instances  Create, or instantiate, two instances of the Rectangle class: 40 The objects (instances) store actual values. Rectangle rectangle1 = new Rectangle(30,10); Rectangle rectangle2 = new Rectangle(25, 20);
  41. 41. Using Rectangle Instances  We use a method call to ask each object to tell us its area: 41 rectangle1 area 300 rectangle2 area 500Printed output: System.out.println("rectangle1 area " + rectangle1.calculateArea()); System.out.println("rectangle2 area " + rectangle2.calculateArea()); References to objects Method calls
  42. 42. Syntax : Object Construction  new ClassName(parameters);  Example:  new Rectangle(30, 20);  new Car("BMW 540ti", 2004);  Purpose:  To construct a new object, initialize it with the construction parameters, and return a reference to the constructed object. 42
  43. 43. The RectangleUser Class Definition public class RectangleUser { public static void main(String argv[]) { Rectangle rectangle1 = new Rectangle(30,10); Rectangle rectangle2 = new Rectangle(25,20); System.out.println("rectangle1 area " + rectangle1.calculateArea()); System.out.println("rectangle2 area " + rectangle2.calculateArea()); } // main() } // RectangleUser 43 An application must have a main() method Object Use Object Creation Class Definition