SlideShare uma empresa Scribd logo
1 de 46
Object Oriented Solutions
  (Objects & Classes)
 Instructor: Dr. Tabassam Nawaz
      Class Timings:
   3:00p.m. 6:00p.m. WED
Classes & Objects
• CLASS
 – At core of JAVA
 – Logical construct
 – Defines shape and nature of an object
 – Forms the basis for OOP
 – Defines a new data type
 – Template of an object


              Object Oriented Solution   (Spring 2009) UET Taxila   2 / 46
Classes & Objects
• OBJECT:
 – An instance of a class
 – Physical reality
 – Occupies space in memory




             Object Oriented Solution   (Spring 2009) UET Taxila   3 / 46
The General Form of a Class
•   class classname {
                          type instance-variable1;
                          type instance-variable2;
                          //…
                          type instance-variableN;
      type methodname1(parameter-list) {
           // body of method       }
      type methodname2(parameter-list) {
           // body of method       }
      //…
     type methodnameN(parameter-list) {
           // body of method       }
}


                        Object Oriented Solution   (Spring 2009) UET Taxila   4 / 46
The General Form of a Class
• Data or variable defined within the class
  are called Instance Variable.
• The code is contained within methods.
• Both are Members of the class.
• Each object contains its own copy of
  variables.



               Object Oriented Solution   (Spring 2009) UET Taxila   5 / 46
A Simple Class
• class Box {
      double width;
     double height;
     double depth;
  }
          // Box is a new data type.



                Object Oriented Solution   (Spring 2009) UET Taxila   6 / 46
Creating an Object
• Box mybox = new Box();
     // create a Box object called mybox
     // mybox will be an instance of Box
     // has physical reality
• mybox.width = 100;
     // dot(.) operator to access instance variables as well
 as methods within an object.



                  Object Oriented Solution   (Spring 2009) UET Taxila   7 / 46
A program that uses the Box class.

/* A program that uses the Box class.
   Call this file BoxDemo.java */
class Box {
  double width;
  double height;
  double depth;
}
// This class declares an object of type Box.
class BoxDemo {
  public static void main(String args[]) {
   Box mybox = new Box();
   double vol;
                    Object Oriented Solution   (Spring 2009) UET Taxila   8 / 46
A program that uses the Box class.
            (contd…)
// assign values to mybox's instance variables
    mybox.width = 10;
    mybox.height = 20;
    mybox.depth = 15;

        // compute volume of box
        vol = mybox.width * mybox.height * mybox.depth;

        System.out.println("Volume is " + vol);
    }
}
                         Object Oriented Solution   (Spring 2009) UET Taxila   9 / 46
Output
•   Call the file BoxDemo.java
•   Two .class files have been created
•   Both classes can be in their own files.
•   Volume is 3000.0 //output of program




                 Object Oriented Solution   (Spring 2009) UET Taxila   10 / 46
Two Box Objects
// This program declares two Box objects.
class Box {
  double width;
  double height;
  double depth;
}
 class BoxDemo2 {
  public static void main(String args[]) {
   Box mybox1 = new Box();
   Box mybox2 = new Box();
   double vol;
   // assign values to mybox1's instance variables
   mybox1.width = 10;
   mybox1.height = 20;
   mybox1.depth = 15;


                          Object Oriented Solution   (Spring 2009) UET Taxila   11 / 46
Two Box Objects (contd…)
/* assign different values to mybox2's
       instance variables */
    mybox2.width = 3;
    mybox2.height = 6;
    mybox2.depth = 9;
    // compute volume of first box
    vol = mybox1.width * mybox1.height * mybox1.depth;
    System.out.println("Volume is " + vol);
    // compute volume of second box
    vol = mybox2.width * mybox2.height * mybox2.depth;
    System.out.println("Volume is " + vol);
  }
}


                       Object Oriented Solution   (Spring 2009) UET Taxila   12 / 46
Output
• Volume is 3000.0
  Volume is 162.0 //output of program
• Mybox1’s data is completely separate
  from the data contained in mybox2.




              Object Oriented Solution   (Spring 2009) UET Taxila   13 / 46
Declaring Objects
• Two-step process:
  – Must declare a variable of class type.
   // This variable does not define an object but can refer to an object.
  – Must acquire an actual, physical copy of the object
    and assign it to that variable.
   // using new operator
• new operator dynamically allocates memory for
  an object and returns a reference to it.
   // reference (stored in the variable) = address in memory of the object.




                         Object Oriented Solution   (Spring 2009) UET Taxila   14 / 46
Declaring Objects
• Box mybox = new Box();
 // combines the two steps.



• Box mybox;
                  // declare reference to object.
 mybox = new Box();
                  // allocate a Box object.

                  Object Oriented Solution   (Spring 2009) UET Taxila   15 / 46
Output
• After declaring reference to mybox, it
  contains the value null ( does not yet point
  to an actual object).
• mybox simply holds the memory address
  of the actual Box object.




               Object Oriented Solution   (Spring 2009) UET Taxila   16 / 46
Declaring Objects
• Box mybox;                                null
                                        mybox




                                                                 width
• mybox = new Box();                                            height
                                        mybox
                                                                 depth
                                                              Box object



                                                           EFFECT
     STATEMENT

                 Object Oriented Solution     (Spring 2009) UET Taxila     17 / 46
new Operator
• Dynamically allocates memory for an object.
• General form
       class-var = new classname();
  // class-var is a variable of class type being
  created. The classname is the name of the class
  that is being instantiated. () for constructor. If
  there is no explicit constructor is specified, Java
  will automatically define a default constructor.


                 Object Oriented Solution   (Spring 2009) UET Taxila   18 / 46
new Operator
• Java’s simple data types are not
  implemented as objects but as normal
  variables in the interest of efficiency.
• Object versions of simple data types are
  also available.




              Object Oriented Solution   (Spring 2009) UET Taxila   19 / 46
new Operator
• new allocates memory for an object during
  runtime as our program can create as
  many or as few objects as it needs.
• Memory is finite.
• For insufficient memory, a runtime
  exception will occur.



              Object Oriented Solution   (Spring 2009) UET Taxila   20 / 46
Assigning Object Reference
             Variables
• Box b1 = new Box();
  Box b2 = b1;
                                                  width
         b1
                                                 height
                                                  depth
         b2

• The assignment of b1 to b2 did not
  allocate any memory or copy any part of
  the original object.
              Object Oriented Solution   (Spring 2009) UET Taxila   21 / 46
Assigning Object Reference
              Variables
• Any changes made to the object through b2 will
  affect the object to which b1 is referring.
• A subsequent assignment to b1 will simply
  unhook b1 from the original object without
  affecting the object or b2.
• Box b1 = new Box();
  Box b2 = b1;
  //…
  b1 = null;//b2 still points to the original object.
                  Object Oriented Solution   (Spring 2009) UET Taxila   22 / 46
Introducing Methods
• General form
  type name (parameter-list){
      // body of method
  }
type= returned type (may be void)
name = name of method
Parameter-list = sequence of types and identifier
  pairs separated by commas.
• return value; // return statement must be
  included if the return type is other than void.

                 Object Oriented Solution   (Spring 2009) UET Taxila   23 / 46
Adding a Method to the Box Class
• Methods define the interface to most
  classes.
• This allows the class implementer to hide
  the specific layout of internal data
  structure behind cleaner method
  abstractions.



              Object Oriented Solution   (Spring 2009) UET Taxila   24 / 46
Program includes a method inside
          the Box Class
// This program includes a method inside the box class.
class Box {
  double width;
  double height;
  double depth;
  // display volume of a box
  void volume() {
    System.out.print("Volume is ");
    System.out.println(width * height * depth);
  }
}
  class BoxDemo3 {
  public static void main(String args[]) {
    Box mybox1 = new Box();
    Box mybox2 = new Box();


                          Object Oriented Solution   (Spring 2009) UET Taxila   25 / 46
Program includes a method inside
     the Box Class (contd…)
// assign values to mybox1's instance variables
    mybox1.width = 10;
    mybox1.height = 20;
    mybox1.depth = 15;
    /* assign different values to mybox2's
       instance variables */
    mybox2.width = 3;
    mybox2.height = 6;
    mybox2.depth = 9;
    // display volume of first box
    mybox1.volume();
    // display volume of second box
    mybox2.volume();
  }
}


                          Object Oriented Solution   (Spring 2009) UET Taxila   26 / 46
This program includes a method
        inside the Box Class
• Each time volume() is invoked, it displays the
  volume for the specified box.
• When an instance variable is accessed by code
  that is not part of the class in which that instance
  variable is defined, it must be done through an
  object, by use of the dot operator. However,
  when an instance variable is accessed by code
  that is part of the same class as the instance
  variable, that variable can be referred to directly.
  The same thing applies to methods.
                 Object Oriented Solution   (Spring 2009) UET Taxila   27 / 46
Returning a Value
// Now, volume() returns the volume of a box.
class Box {
  double width;
  double height;
  double depth;
  // compute and return volume
  double volume() {
    return width * height * depth;
  }
}
 class BoxDemo4 {
  public static void main(String args[]) {
    Box mybox1 = new Box();
    Box mybox2 = new Box();
    double vol;


                          Object Oriented Solution   (Spring 2009) UET Taxila   28 / 46
Returning a Value (contd…)
// assign values to mybox1's instance variables
    mybox1.width = 10;
    mybox1.height = 20;
    mybox1.depth = 15;
    /* assign different values to mybox2's
       instance variables */
    mybox2.width = 3;
    mybox2.height = 6;
    mybox2.depth = 9;
    // get volume of first box
    vol = mybox1.volume();
    System.out.println("Volume is " + vol);
    // get volume of second box
    vol = mybox2.volume();
    System.out.println("Volume is " + vol);
  }
}


                             Object Oriented Solution   (Spring 2009) UET Taxila   29 / 46
Returning a Value
• The type of data returned by a method
  must be compatible with the return type
  specified by the method.
• The variable receiving the value returned
  by a method must also be compatible with
  the return type specified.
• Actually no need for vol variable:
 System.out.println("Volume is " + mybox1.volume());

                 Object Oriented Solution   (Spring 2009) UET Taxila   30 / 46
Adding a Method that takes
            Parameters
• int square(){
      return 10 * 10;
  }

• int square(int i){
      return i * i;
  }

                Object Oriented Solution   (Spring 2009) UET Taxila   31 / 46
Parameter Vs Argument
• A parameter is a variable defined by a
  method that receives a value when the
  method is called.
• An argument is a value that is passed to
  a method when it is invoked.




              Object Oriented Solution   (Spring 2009) UET Taxila   32 / 46
program uses a parameterized
               method
// This program uses a parameterized method.
class Box {
  double width;
  double height;
  double depth;
  // compute and return volume
  double volume() {
    return width * height * depth;
  }
  // sets dimensions of box
  void setDim(double w, double h, double d) {
    width = w;
    height = h;
    depth = d;
  }
}

                         Object Oriented Solution   (Spring 2009) UET Taxila   33 / 46
program uses a parameterized
           method (contd…)
class BoxDemo5 {
  public static void main(String args[]) {
    Box mybox1 = new Box();
    Box mybox2 = new Box();
    double vol;
    // initialize each box
    mybox1.setDim(10, 20, 15);
    mybox2.setDim(3, 6, 9);
    // get volume of first box
    vol = mybox1.volume();
    System.out.println("Volume is " + vol);
    // get volume of second box
    vol = mybox2.volume();
    System.out.println("Volume is " + vol);
  }
}

                            Object Oriented Solution   (Spring 2009) UET Taxila   34 / 46
Constructors
• Tedious to initialize all the variables in a
  class each time an instance is created.
• Automatic initialization is performed
  through the use of a constructor.
• A constructor initializes an object
  immediately upon creation.
• Same name as class name
• No return type not even void.
                Object Oriented Solution   (Spring 2009) UET Taxila   35 / 46
Constructors
/* Here, Box uses a constructor to initialize the dimensions of a box. */
class Box {
  double width;
  double height;
  double depth;
  // This is the constructor for Box.
  Box() {
    System.out.println("Constructing Box");
    width = 10;
    height = 10;
    depth = 10;
  }
  // compute and return volume
  double volume() {
    return width * height * depth;
  }
}


                               Object Oriented Solution   (Spring 2009) UET Taxila   36 / 46
Constructors (contd…)
class BoxDemo6 {
  public static void main(String args[]) {
    // declare, allocate, and initialize Box objects
    Box mybox1 = new Box();
    Box mybox2 = new Box();
    double vol;
    // get volume of first box
    vol = mybox1.volume();
    System.out.println("Volume is " + vol);
    // get volume of second box
    vol = mybox2.volume();
    System.out.println("Volume is " + vol);
  }
}

                          Object Oriented Solution   (Spring 2009) UET Taxila   37 / 46
Output
• Constructing Box
  Constructing Box
  Volume is 1000.0
  Volume is 1000.0




             Object Oriented Solution   (Spring 2009) UET Taxila   38 / 46
Default Constructor
• When we do not explicitly define a
  constructor for a class, then Java creates
  a default constructor for the class.
• The default constructor automatically
  initializes all instance variables to zero.
• Once we define our own constructor, the
  default constructor is no longer used.


               Object Oriented Solution   (Spring 2009) UET Taxila   39 / 46
Parameterized Constructors
• Previously, all boxes have the same
  dimensions.
• A way to construct Box objects of various
  dimensions.
• Adding parameters is much more useful.




              Object Oriented Solution   (Spring 2009) UET Taxila   40 / 46
Parameterized Constructors
/* Here, Box uses a parameterized constructor to
   initialize the dimensions of a box. */
class Box {
  double width;
  double height;
  double depth;
  // This is the constructor for Box.
  Box(double w, double h, double d) {
    width = w;
    height = h;
    depth = d;
  }
  // compute and return volume
  double volume() {
    return width * height * depth;
  }
}


                             Object Oriented Solution   (Spring 2009) UET Taxila   41 / 46
Parameterized Constructors
               (contd…)
class BoxDemo7 {
  public static void main(String args[]) {
    // declare, allocate, and initialize Box objects
    Box mybox1 = new Box(10, 20, 15);
    Box mybox2 = new Box(3, 6, 9);
    double vol;
    // get volume of first box
    vol = mybox1.volume();
    System.out.println("Volume is " + vol);
    // get volume of second box
    vol = mybox2.volume();
    System.out.println("Volume is " + vol);
  }
}

                          Object Oriented Solution   (Spring 2009) UET Taxila   42 / 46
Output
Volume is 3000.0
Volume is 162.0




           Object Oriented Solution   (Spring 2009) UET Taxila   43 / 46
Lab Session
• Create a class called Date.
• Class Date includes three pieces of information as instance
  variables--- a month (type int), a day (type int) and a year
  (type int).
• Your class should have a constructor that initializes the three
  instance variables and assumes that the values provided are
  correct.
• Provide a set and a get method for each instance variable.
• Provide a method named displayDate that display the month,
  day and year separated by forward slahes (/).
• Write a test application named DateTest that demonstrates
  class Date’s capabilities.



                     Object Oriented Solution   (Spring 2009) UET Taxila   44 / 46
Assignment # 3 (Q1)
•   Create a class called Invoice that a hardware store might use to
    represent an invoice for an item sold at the store.
•   An Invoice should include four pieces of information as instance
    variables--- a part number (type String), a part description (type
    String), a quantity of the item being purchased (type int) and a price
    per item (type double).
•   Your class should have a constructor that initializes the four
    instance variables.
•   Provide a set and a get method for each instance variable.
•   In addition, provide a method named getInvoiceAmount that
    calculates the invoice amount (i.e. multiplies the quantity by the
    price per item), then returns the amount as double value.
•   If the quantity is not positive, it should be set to zero.
•   If the price per item is not positive, it should be set to 0.0.
•   Write a test application named InvoiceTest that demonstrates class
    Invoice’s capabilities.

                         Object Oriented Solution   (Spring 2009) UET Taxila   45 / 46
Assignment # 3 (Q2)
•   Create a class called Employee.
•   Class Employee includes three pieces of information as instance
    variables--- a first name (type String), a last name (type String) and
    a monthly salary (type double).
•   Your class should have a constructor that initializes the three
    instance variables.
•   Provide a set and a get method for each instance variable.
•   If the monthly salary is not positive, it should be set to 0.0.
•   Write a test application named EmployeeTest that demonstrates
    class Employee’s capabilities.
•   Create Two Employee’s objects and display each object’s yearly
    salary.
•   Give each Employee a 10% raise and display each Empolyee’s
    yearly salary again.



                         Object Oriented Solution   (Spring 2009) UET Taxila   46 / 46

Mais conteúdo relacionado

Mais procurados

Ifi7184.DT lesson 2
Ifi7184.DT lesson 2Ifi7184.DT lesson 2
Ifi7184.DT lesson 2Sónia
 
9781439035665 ppt ch08
9781439035665 ppt ch089781439035665 ppt ch08
9781439035665 ppt ch08Terry Yoast
 
AN EMPIRICAL COMPARISON OF WEIGHTING FUNCTIONS FOR MULTI-LABEL DISTANCEWEIGHT...
AN EMPIRICAL COMPARISON OF WEIGHTING FUNCTIONS FOR MULTI-LABEL DISTANCEWEIGHT...AN EMPIRICAL COMPARISON OF WEIGHTING FUNCTIONS FOR MULTI-LABEL DISTANCEWEIGHT...
AN EMPIRICAL COMPARISON OF WEIGHTING FUNCTIONS FOR MULTI-LABEL DISTANCEWEIGHT...cscpconf
 
Object Oriented Programming Concepts using Java
Object Oriented Programming Concepts using JavaObject Oriented Programming Concepts using Java
Object Oriented Programming Concepts using JavaGlenn Guden
 
C# (This keyword, Properties, Inheritance, Base Keyword)
C# (This keyword, Properties, Inheritance, Base Keyword)C# (This keyword, Properties, Inheritance, Base Keyword)
C# (This keyword, Properties, Inheritance, Base Keyword)Umar Farooq
 
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)PROIDEA
 
JAVA Notes - All major concepts covered with examples
JAVA Notes - All major concepts covered with examplesJAVA Notes - All major concepts covered with examples
JAVA Notes - All major concepts covered with examplesSunil Kumar Gunasekaran
 
Class notes(week 6) on inheritance and multiple inheritance
Class notes(week 6) on inheritance and multiple inheritanceClass notes(week 6) on inheritance and multiple inheritance
Class notes(week 6) on inheritance and multiple inheritanceKuntal Bhowmick
 
Object - Oriented Programming: Inheritance
Object - Oriented Programming: InheritanceObject - Oriented Programming: Inheritance
Object - Oriented Programming: InheritanceAndy Juan Sarango Veliz
 
Farhaan Ahmed, BCA 2nd Year
Farhaan Ahmed, BCA 2nd YearFarhaan Ahmed, BCA 2nd Year
Farhaan Ahmed, BCA 2nd Yeardezyneecole
 
4213ijaia05
4213ijaia054213ijaia05
4213ijaia05ijaia
 

Mais procurados (20)

Unit3
Unit3Unit3
Unit3
 
Building gui
Building guiBuilding gui
Building gui
 
Ifi7184.DT lesson 2
Ifi7184.DT lesson 2Ifi7184.DT lesson 2
Ifi7184.DT lesson 2
 
8 polymorphism
8 polymorphism8 polymorphism
8 polymorphism
 
9781439035665 ppt ch08
9781439035665 ppt ch089781439035665 ppt ch08
9781439035665 ppt ch08
 
Bab5 bluej
Bab5 bluejBab5 bluej
Bab5 bluej
 
AN EMPIRICAL COMPARISON OF WEIGHTING FUNCTIONS FOR MULTI-LABEL DISTANCEWEIGHT...
AN EMPIRICAL COMPARISON OF WEIGHTING FUNCTIONS FOR MULTI-LABEL DISTANCEWEIGHT...AN EMPIRICAL COMPARISON OF WEIGHTING FUNCTIONS FOR MULTI-LABEL DISTANCEWEIGHT...
AN EMPIRICAL COMPARISON OF WEIGHTING FUNCTIONS FOR MULTI-LABEL DISTANCEWEIGHT...
 
Object Oriented Programming Concepts using Java
Object Oriented Programming Concepts using JavaObject Oriented Programming Concepts using Java
Object Oriented Programming Concepts using Java
 
C# (This keyword, Properties, Inheritance, Base Keyword)
C# (This keyword, Properties, Inheritance, Base Keyword)C# (This keyword, Properties, Inheritance, Base Keyword)
C# (This keyword, Properties, Inheritance, Base Keyword)
 
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
 
JAVA Notes - All major concepts covered with examples
JAVA Notes - All major concepts covered with examplesJAVA Notes - All major concepts covered with examples
JAVA Notes - All major concepts covered with examples
 
Class notes(week 6) on inheritance and multiple inheritance
Class notes(week 6) on inheritance and multiple inheritanceClass notes(week 6) on inheritance and multiple inheritance
Class notes(week 6) on inheritance and multiple inheritance
 
Java oop
Java oopJava oop
Java oop
 
Cluster analysis
Cluster analysisCluster analysis
Cluster analysis
 
Object - Oriented Programming: Inheritance
Object - Oriented Programming: InheritanceObject - Oriented Programming: Inheritance
Object - Oriented Programming: Inheritance
 
Farhaan Ahmed, BCA 2nd Year
Farhaan Ahmed, BCA 2nd YearFarhaan Ahmed, BCA 2nd Year
Farhaan Ahmed, BCA 2nd Year
 
4213ijaia05
4213ijaia054213ijaia05
4213ijaia05
 
Classes and objects in c++
Classes and objects in c++Classes and objects in c++
Classes and objects in c++
 
Groupingobject
GroupingobjectGroupingobject
Groupingobject
 
C++ Notes
C++ NotesC++ Notes
C++ Notes
 

Semelhante a gdfgdfg

5.CLASSES.ppt(MB)2022.ppt .
5.CLASSES.ppt(MB)2022.ppt                       .5.CLASSES.ppt(MB)2022.ppt                       .
5.CLASSES.ppt(MB)2022.ppt .happycocoman
 
Class object method constructors in java
Class object method constructors in javaClass object method constructors in java
Class object method constructors in javaRaja Sekhar
 
Classes, Objects and Method - Object Oriented Programming with Java
Classes, Objects and Method - Object Oriented Programming with JavaClasses, Objects and Method - Object Oriented Programming with Java
Classes, Objects and Method - Object Oriented Programming with JavaRadhika Talaviya
 
Java-Module 3-PPT-TPS.pdf.Java-Module 3-PPT-TPS.pdf
Java-Module 3-PPT-TPS.pdf.Java-Module 3-PPT-TPS.pdfJava-Module 3-PPT-TPS.pdf.Java-Module 3-PPT-TPS.pdf
Java-Module 3-PPT-TPS.pdf.Java-Module 3-PPT-TPS.pdfkakarthik685
 
C# Summer course - Lecture 3
C# Summer course - Lecture 3C# Summer course - Lecture 3
C# Summer course - Lecture 3mohamedsamyali
 
UNIT_-II_2021R.pptx
UNIT_-II_2021R.pptxUNIT_-II_2021R.pptx
UNIT_-II_2021R.pptxRDeepa9
 
Lecture_4-Class and Object.pptx
Lecture_4-Class and Object.pptxLecture_4-Class and Object.pptx
Lecture_4-Class and Object.pptxShahinAhmed49
 
Pi j2.2 classes
Pi j2.2 classesPi j2.2 classes
Pi j2.2 classesmcollison
 

Semelhante a gdfgdfg (20)

5.CLASSES.ppt(MB)2022.ppt .
5.CLASSES.ppt(MB)2022.ppt                       .5.CLASSES.ppt(MB)2022.ppt                       .
5.CLASSES.ppt(MB)2022.ppt .
 
Chapter ii(oop)
Chapter ii(oop)Chapter ii(oop)
Chapter ii(oop)
 
Class object method constructors in java
Class object method constructors in javaClass object method constructors in java
Class object method constructors in java
 
java classes
java classesjava classes
java classes
 
Classes, Objects and Method - Object Oriented Programming with Java
Classes, Objects and Method - Object Oriented Programming with JavaClasses, Objects and Method - Object Oriented Programming with Java
Classes, Objects and Method - Object Oriented Programming with Java
 
9 cm604.14
9 cm604.149 cm604.14
9 cm604.14
 
Class and object
Class and objectClass and object
Class and object
 
Java-Module 3-PPT-TPS.pdf.Java-Module 3-PPT-TPS.pdf
Java-Module 3-PPT-TPS.pdf.Java-Module 3-PPT-TPS.pdfJava-Module 3-PPT-TPS.pdf.Java-Module 3-PPT-TPS.pdf
Java-Module 3-PPT-TPS.pdf.Java-Module 3-PPT-TPS.pdf
 
unit 2 java.pptx
unit 2 java.pptxunit 2 java.pptx
unit 2 java.pptx
 
C# Summer course - Lecture 3
C# Summer course - Lecture 3C# Summer course - Lecture 3
C# Summer course - Lecture 3
 
UNIT_-II_2021R.pptx
UNIT_-II_2021R.pptxUNIT_-II_2021R.pptx
UNIT_-II_2021R.pptx
 
Object
ObjectObject
Object
 
Java class
Java classJava class
Java class
 
d.ppt
d.pptd.ppt
d.ppt
 
d.ppt
d.pptd.ppt
d.ppt
 
Core java
Core javaCore java
Core java
 
Lecture_4-Class and Object.pptx
Lecture_4-Class and Object.pptxLecture_4-Class and Object.pptx
Lecture_4-Class and Object.pptx
 
Class and Object.pptx
Class and Object.pptxClass and Object.pptx
Class and Object.pptx
 
Java Programming - 04 object oriented in java
Java Programming - 04 object oriented in javaJava Programming - 04 object oriented in java
Java Programming - 04 object oriented in java
 
Pi j2.2 classes
Pi j2.2 classesPi j2.2 classes
Pi j2.2 classes
 

gdfgdfg

  • 1. Object Oriented Solutions (Objects & Classes) Instructor: Dr. Tabassam Nawaz Class Timings: 3:00p.m. 6:00p.m. WED
  • 2. Classes & Objects • CLASS – At core of JAVA – Logical construct – Defines shape and nature of an object – Forms the basis for OOP – Defines a new data type – Template of an object Object Oriented Solution (Spring 2009) UET Taxila 2 / 46
  • 3. Classes & Objects • OBJECT: – An instance of a class – Physical reality – Occupies space in memory Object Oriented Solution (Spring 2009) UET Taxila 3 / 46
  • 4. The General Form of a Class • class classname { type instance-variable1; type instance-variable2; //… type instance-variableN; type methodname1(parameter-list) { // body of method } type methodname2(parameter-list) { // body of method } //… type methodnameN(parameter-list) { // body of method } } Object Oriented Solution (Spring 2009) UET Taxila 4 / 46
  • 5. The General Form of a Class • Data or variable defined within the class are called Instance Variable. • The code is contained within methods. • Both are Members of the class. • Each object contains its own copy of variables. Object Oriented Solution (Spring 2009) UET Taxila 5 / 46
  • 6. A Simple Class • class Box { double width; double height; double depth; } // Box is a new data type. Object Oriented Solution (Spring 2009) UET Taxila 6 / 46
  • 7. Creating an Object • Box mybox = new Box(); // create a Box object called mybox // mybox will be an instance of Box // has physical reality • mybox.width = 100; // dot(.) operator to access instance variables as well as methods within an object. Object Oriented Solution (Spring 2009) UET Taxila 7 / 46
  • 8. A program that uses the Box class. /* A program that uses the Box class. Call this file BoxDemo.java */ class Box { double width; double height; double depth; } // This class declares an object of type Box. class BoxDemo { public static void main(String args[]) { Box mybox = new Box(); double vol; Object Oriented Solution (Spring 2009) UET Taxila 8 / 46
  • 9. A program that uses the Box class. (contd…) // assign values to mybox's instance variables mybox.width = 10; mybox.height = 20; mybox.depth = 15; // compute volume of box vol = mybox.width * mybox.height * mybox.depth; System.out.println("Volume is " + vol); } } Object Oriented Solution (Spring 2009) UET Taxila 9 / 46
  • 10. Output • Call the file BoxDemo.java • Two .class files have been created • Both classes can be in their own files. • Volume is 3000.0 //output of program Object Oriented Solution (Spring 2009) UET Taxila 10 / 46
  • 11. Two Box Objects // This program declares two Box objects. class Box { double width; double height; double depth; } class BoxDemo2 { public static void main(String args[]) { Box mybox1 = new Box(); Box mybox2 = new Box(); double vol; // assign values to mybox1's instance variables mybox1.width = 10; mybox1.height = 20; mybox1.depth = 15; Object Oriented Solution (Spring 2009) UET Taxila 11 / 46
  • 12. Two Box Objects (contd…) /* assign different values to mybox2's instance variables */ mybox2.width = 3; mybox2.height = 6; mybox2.depth = 9; // compute volume of first box vol = mybox1.width * mybox1.height * mybox1.depth; System.out.println("Volume is " + vol); // compute volume of second box vol = mybox2.width * mybox2.height * mybox2.depth; System.out.println("Volume is " + vol); } } Object Oriented Solution (Spring 2009) UET Taxila 12 / 46
  • 13. Output • Volume is 3000.0 Volume is 162.0 //output of program • Mybox1’s data is completely separate from the data contained in mybox2. Object Oriented Solution (Spring 2009) UET Taxila 13 / 46
  • 14. Declaring Objects • Two-step process: – Must declare a variable of class type. // This variable does not define an object but can refer to an object. – Must acquire an actual, physical copy of the object and assign it to that variable. // using new operator • new operator dynamically allocates memory for an object and returns a reference to it. // reference (stored in the variable) = address in memory of the object. Object Oriented Solution (Spring 2009) UET Taxila 14 / 46
  • 15. Declaring Objects • Box mybox = new Box(); // combines the two steps. • Box mybox; // declare reference to object. mybox = new Box(); // allocate a Box object. Object Oriented Solution (Spring 2009) UET Taxila 15 / 46
  • 16. Output • After declaring reference to mybox, it contains the value null ( does not yet point to an actual object). • mybox simply holds the memory address of the actual Box object. Object Oriented Solution (Spring 2009) UET Taxila 16 / 46
  • 17. Declaring Objects • Box mybox; null mybox width • mybox = new Box(); height mybox depth Box object EFFECT STATEMENT Object Oriented Solution (Spring 2009) UET Taxila 17 / 46
  • 18. new Operator • Dynamically allocates memory for an object. • General form class-var = new classname(); // class-var is a variable of class type being created. The classname is the name of the class that is being instantiated. () for constructor. If there is no explicit constructor is specified, Java will automatically define a default constructor. Object Oriented Solution (Spring 2009) UET Taxila 18 / 46
  • 19. new Operator • Java’s simple data types are not implemented as objects but as normal variables in the interest of efficiency. • Object versions of simple data types are also available. Object Oriented Solution (Spring 2009) UET Taxila 19 / 46
  • 20. new Operator • new allocates memory for an object during runtime as our program can create as many or as few objects as it needs. • Memory is finite. • For insufficient memory, a runtime exception will occur. Object Oriented Solution (Spring 2009) UET Taxila 20 / 46
  • 21. Assigning Object Reference Variables • Box b1 = new Box(); Box b2 = b1; width b1 height depth b2 • The assignment of b1 to b2 did not allocate any memory or copy any part of the original object. Object Oriented Solution (Spring 2009) UET Taxila 21 / 46
  • 22. Assigning Object Reference Variables • Any changes made to the object through b2 will affect the object to which b1 is referring. • A subsequent assignment to b1 will simply unhook b1 from the original object without affecting the object or b2. • Box b1 = new Box(); Box b2 = b1; //… b1 = null;//b2 still points to the original object. Object Oriented Solution (Spring 2009) UET Taxila 22 / 46
  • 23. Introducing Methods • General form type name (parameter-list){ // body of method } type= returned type (may be void) name = name of method Parameter-list = sequence of types and identifier pairs separated by commas. • return value; // return statement must be included if the return type is other than void. Object Oriented Solution (Spring 2009) UET Taxila 23 / 46
  • 24. Adding a Method to the Box Class • Methods define the interface to most classes. • This allows the class implementer to hide the specific layout of internal data structure behind cleaner method abstractions. Object Oriented Solution (Spring 2009) UET Taxila 24 / 46
  • 25. Program includes a method inside the Box Class // This program includes a method inside the box class. class Box { double width; double height; double depth; // display volume of a box void volume() { System.out.print("Volume is "); System.out.println(width * height * depth); } } class BoxDemo3 { public static void main(String args[]) { Box mybox1 = new Box(); Box mybox2 = new Box(); Object Oriented Solution (Spring 2009) UET Taxila 25 / 46
  • 26. Program includes a method inside the Box Class (contd…) // assign values to mybox1's instance variables mybox1.width = 10; mybox1.height = 20; mybox1.depth = 15; /* assign different values to mybox2's instance variables */ mybox2.width = 3; mybox2.height = 6; mybox2.depth = 9; // display volume of first box mybox1.volume(); // display volume of second box mybox2.volume(); } } Object Oriented Solution (Spring 2009) UET Taxila 26 / 46
  • 27. This program includes a method inside the Box Class • Each time volume() is invoked, it displays the volume for the specified box. • When an instance variable is accessed by code that is not part of the class in which that instance variable is defined, it must be done through an object, by use of the dot operator. However, when an instance variable is accessed by code that is part of the same class as the instance variable, that variable can be referred to directly. The same thing applies to methods. Object Oriented Solution (Spring 2009) UET Taxila 27 / 46
  • 28. Returning a Value // Now, volume() returns the volume of a box. class Box { double width; double height; double depth; // compute and return volume double volume() { return width * height * depth; } } class BoxDemo4 { public static void main(String args[]) { Box mybox1 = new Box(); Box mybox2 = new Box(); double vol; Object Oriented Solution (Spring 2009) UET Taxila 28 / 46
  • 29. Returning a Value (contd…) // assign values to mybox1's instance variables mybox1.width = 10; mybox1.height = 20; mybox1.depth = 15; /* assign different values to mybox2's instance variables */ mybox2.width = 3; mybox2.height = 6; mybox2.depth = 9; // get volume of first box vol = mybox1.volume(); System.out.println("Volume is " + vol); // get volume of second box vol = mybox2.volume(); System.out.println("Volume is " + vol); } } Object Oriented Solution (Spring 2009) UET Taxila 29 / 46
  • 30. Returning a Value • The type of data returned by a method must be compatible with the return type specified by the method. • The variable receiving the value returned by a method must also be compatible with the return type specified. • Actually no need for vol variable: System.out.println("Volume is " + mybox1.volume()); Object Oriented Solution (Spring 2009) UET Taxila 30 / 46
  • 31. Adding a Method that takes Parameters • int square(){ return 10 * 10; } • int square(int i){ return i * i; } Object Oriented Solution (Spring 2009) UET Taxila 31 / 46
  • 32. Parameter Vs Argument • A parameter is a variable defined by a method that receives a value when the method is called. • An argument is a value that is passed to a method when it is invoked. Object Oriented Solution (Spring 2009) UET Taxila 32 / 46
  • 33. program uses a parameterized method // This program uses a parameterized method. class Box { double width; double height; double depth; // compute and return volume double volume() { return width * height * depth; } // sets dimensions of box void setDim(double w, double h, double d) { width = w; height = h; depth = d; } } Object Oriented Solution (Spring 2009) UET Taxila 33 / 46
  • 34. program uses a parameterized method (contd…) class BoxDemo5 { public static void main(String args[]) { Box mybox1 = new Box(); Box mybox2 = new Box(); double vol; // initialize each box mybox1.setDim(10, 20, 15); mybox2.setDim(3, 6, 9); // get volume of first box vol = mybox1.volume(); System.out.println("Volume is " + vol); // get volume of second box vol = mybox2.volume(); System.out.println("Volume is " + vol); } } Object Oriented Solution (Spring 2009) UET Taxila 34 / 46
  • 35. Constructors • Tedious to initialize all the variables in a class each time an instance is created. • Automatic initialization is performed through the use of a constructor. • A constructor initializes an object immediately upon creation. • Same name as class name • No return type not even void. Object Oriented Solution (Spring 2009) UET Taxila 35 / 46
  • 36. Constructors /* Here, Box uses a constructor to initialize the dimensions of a box. */ class Box { double width; double height; double depth; // This is the constructor for Box. Box() { System.out.println("Constructing Box"); width = 10; height = 10; depth = 10; } // compute and return volume double volume() { return width * height * depth; } } Object Oriented Solution (Spring 2009) UET Taxila 36 / 46
  • 37. Constructors (contd…) class BoxDemo6 { public static void main(String args[]) { // declare, allocate, and initialize Box objects Box mybox1 = new Box(); Box mybox2 = new Box(); double vol; // get volume of first box vol = mybox1.volume(); System.out.println("Volume is " + vol); // get volume of second box vol = mybox2.volume(); System.out.println("Volume is " + vol); } } Object Oriented Solution (Spring 2009) UET Taxila 37 / 46
  • 38. Output • Constructing Box Constructing Box Volume is 1000.0 Volume is 1000.0 Object Oriented Solution (Spring 2009) UET Taxila 38 / 46
  • 39. Default Constructor • When we do not explicitly define a constructor for a class, then Java creates a default constructor for the class. • The default constructor automatically initializes all instance variables to zero. • Once we define our own constructor, the default constructor is no longer used. Object Oriented Solution (Spring 2009) UET Taxila 39 / 46
  • 40. Parameterized Constructors • Previously, all boxes have the same dimensions. • A way to construct Box objects of various dimensions. • Adding parameters is much more useful. Object Oriented Solution (Spring 2009) UET Taxila 40 / 46
  • 41. Parameterized Constructors /* Here, Box uses a parameterized constructor to initialize the dimensions of a box. */ class Box { double width; double height; double depth; // This is the constructor for Box. Box(double w, double h, double d) { width = w; height = h; depth = d; } // compute and return volume double volume() { return width * height * depth; } } Object Oriented Solution (Spring 2009) UET Taxila 41 / 46
  • 42. Parameterized Constructors (contd…) class BoxDemo7 { public static void main(String args[]) { // declare, allocate, and initialize Box objects Box mybox1 = new Box(10, 20, 15); Box mybox2 = new Box(3, 6, 9); double vol; // get volume of first box vol = mybox1.volume(); System.out.println("Volume is " + vol); // get volume of second box vol = mybox2.volume(); System.out.println("Volume is " + vol); } } Object Oriented Solution (Spring 2009) UET Taxila 42 / 46
  • 43. Output Volume is 3000.0 Volume is 162.0 Object Oriented Solution (Spring 2009) UET Taxila 43 / 46
  • 44. Lab Session • Create a class called Date. • Class Date includes three pieces of information as instance variables--- a month (type int), a day (type int) and a year (type int). • Your class should have a constructor that initializes the three instance variables and assumes that the values provided are correct. • Provide a set and a get method for each instance variable. • Provide a method named displayDate that display the month, day and year separated by forward slahes (/). • Write a test application named DateTest that demonstrates class Date’s capabilities. Object Oriented Solution (Spring 2009) UET Taxila 44 / 46
  • 45. Assignment # 3 (Q1) • Create a class called Invoice that a hardware store might use to represent an invoice for an item sold at the store. • An Invoice should include four pieces of information as instance variables--- a part number (type String), a part description (type String), a quantity of the item being purchased (type int) and a price per item (type double). • Your class should have a constructor that initializes the four instance variables. • Provide a set and a get method for each instance variable. • In addition, provide a method named getInvoiceAmount that calculates the invoice amount (i.e. multiplies the quantity by the price per item), then returns the amount as double value. • If the quantity is not positive, it should be set to zero. • If the price per item is not positive, it should be set to 0.0. • Write a test application named InvoiceTest that demonstrates class Invoice’s capabilities. Object Oriented Solution (Spring 2009) UET Taxila 45 / 46
  • 46. Assignment # 3 (Q2) • Create a class called Employee. • Class Employee includes three pieces of information as instance variables--- a first name (type String), a last name (type String) and a monthly salary (type double). • Your class should have a constructor that initializes the three instance variables. • Provide a set and a get method for each instance variable. • If the monthly salary is not positive, it should be set to 0.0. • Write a test application named EmployeeTest that demonstrates class Employee’s capabilities. • Create Two Employee’s objects and display each object’s yearly salary. • Give each Employee a 10% raise and display each Empolyee’s yearly salary again. Object Oriented Solution (Spring 2009) UET Taxila 46 / 46