Object Oriented programming Chapter 4 1 Monica Deshmane(Haribhai V. Desai College,Pune)
What we learn? • Introduction to Object Oriented Programming • Classes • Objects • Constructor • destructor • Introspection 2 Monica Deshmane(Haribhai V. Desai College,Pune)
• Object-oriented programming (OOP) • refers to the creation of reusable object-types / classes that can be efficiently developed for multiple programs. Monica Deshmane(Haribhai V. Desai College,Pune) 3
• before we go in detail, lets define important terms related to Object Oriented Programming. • Class − encapsulation of data members & functions.making many instances of the class i.e. object. • Object − An individual instance of the data structure defined by a class. You define a class once and then make many objects that belong to it. • Member Variable − These are the variables defined inside a class. This data will be invisible to the outside of the class and can be accessed via member functions. • Member function − These are the function defined inside a class and are used to access object data. • Inheritance − When a class is defined by inheriting existing function of a parent class then it is called inheritance. Here child class will inherit all or few member functions and variables of a parent class using extends keyword. Monica Deshmane(Haribhai V. Desai College,Pune) 4
• Parent class − A class that is inherited from by another class. This is also called a base class or super class. • Child Class − A class that inherits from another class. This is also called a subclass or derived class. • Polymorphism − same function can be used for different purposes.means one thing can be expressed in many ways. • Overloading −(operator overloading) a type of polymorphism in which some or all of operators have different implementations depending on the types of their arguments. (function overloading) functions can also be overloaded with different implementation. • Data Abstraction − Any representation of data in which the implementation details are hidden (abstracted). • Encapsulation − refers to a concept where we bind all the data and member functions together to form an object. • Constructor − refers to a special type of function which will be called automatically whenever there is an object created from a class. • Destructor − refers to a special type of function which will be called automatically whenever an object is deleted or goes out of scope. Monica Deshmane(Haribhai V. Desai College,Pune) 5
• 4.1 Classes Monica Deshmane(Haribhai V. Desai College,Pune) 6
• Class is blue print of object • Class{ Properties or data members Member functions } • Class A {public $a=2; Public function f() { //code } } Monica Deshmane(Haribhai V. Desai College,Pune) 7
• A class definition: class classname { // classname is a PHP identifier! // the class body = data & function member definitions } • Attributes – are declared as variables within the class definition using keywords that match their visibility: public, private, or protected. Operations – are created by declaring functions within the class definition. Creating Classes in PHP 8
• Three access / visibility modifiers introduced in PHP 5, which affect the scope of access to class variables and functions: – public : public class variables and functions can be accessed from inside and outside the class – protected : hides a variable or function from direct external class access + protected members are available in subclasses – private : hides a variable or function from direct external class access + protected members are hidden (NOT available) from all subclasses Monica Deshmane(Haribhai V. Desai College,Pune) 9
Monica Deshmane(Haribhai V. Desai College,Pune) 10 Class A { Public $a=10; Function f1() { //code } Function f2() { //code } }
• $this is reserved keyword. • used to access properties of class. • Ex. • Class A { Public $a=10; Function f() { echo $this->a; } } Monica Deshmane(Haribhai V. Desai College,Pune) 11
• 4.2 Objects Monica Deshmane(Haribhai V. Desai College,Pune) 12
• An object is an instance of a class. • Any number of instances of a class can be created. Monica Deshmane(Haribhai V. Desai College,Pune) 13
• Create an object of a class = a particular individual that is a member of the class by using the new keyword: $newobj= new ClassName(actual_param_list); • Notes: – Class names are case insensitive as are functions – PHP 5 allows you to define multiple classes in a single script – Constructor called for initialization of object. – Destructor called for deletion of object. Monica Deshmane(Haribhai V. Desai College,Pune) 14
• From operations within the class, class’s data / methods can be accessed / called by using: – $this = a variable that refers to the current instance of the class, and can be used only in the definition of the class, including the constructor & destructor – The pointer operator -> (similar to Java’s object member access operator “.” ) – class Test { public $attribute; function f ($val) { $this -> attribute = $val; // $this is mandatory! } // if omitted, $attribute is treated } // as a local var in the function Using Data/Method Members 15 No $ sign here
Accesing properties & methods class Test { public $var1; public methodname(parameters){} } $t = new Test(); $t->var1 = “value”; echo $t->var1; $t->methodname(parameters); Monica Deshmane(Haribhai V. Desai College,Pune) 16
Constructor: creating object • Constructor = function used to create an object of the class – Declared as a function with a special name: function __construct (param_list) { … } – Usually performs initialization – Called automatically when an object is created by new keyword – A default no-argument constructor is provided by the compiler only if a constructor function is not explicitly declared in the class – Cannot be overloaded (= 2+ constructors for a class); if you need a variable # of parameters, use flexible parameter lists… Monica Deshmane(Haribhai V. Desai College,Pune) 17
Example:constructor • <?php class Fruit { public $name; public $color; function __construct($name) { $this->name = $name; } function get_name() { return $this->name; } } $apple = new Fruit("Apple"); echo $apple->get_name(); ?> Monica Deshmane(Haribhai V. Desai College,Pune) 18
Destructor: remove object memory • Destructor = opposite of constructor – Declared as a function with a special name, cannot take parameters function __destruct () { … } – Allows some functionality that will be automatically executed just before an object is destroyed An object is removed when there is no reference variable/handle left to it Monica Deshmane(Haribhai V. Desai College,Pune) 19
Example:Destructor • <?php class Fruit { public $name; public $color; function __construct($name) { $this->name = $name; } function __destruct() { echo "The fruit is {$this->name}."; } } $apple = new Fruit("Apple"); ?> Monica Deshmane(Haribhai V. Desai College,Pune) 20
• Destructor will be called for 2 ways- 1)When script ends 2)To manually delete object by unset() Monica Deshmane(Haribhai V. Desai College,Pune) 21
clone • Clone is keyword. • Object clone means object holds reference to another object which it uses. • When parent is replicated new copy of object created. • $copy=clone $obj; Monica Deshmane(Haribhai V. Desai College,Pune) 22
• 4.3 Introspection Monica Deshmane(Haribhai V. Desai College,Pune) 23
• Introspection is the ability of a program to examine an object's characteristics, • such as its name, parent class (if any), properties, and methods. • With introspection, you can write code that operates on any class or object. • You don't need to know which methods or properties are defined when you write your code; • instead, you can discover that information at runtime, which makes it possible for you • to write generic debuggers, serializers, profilers, etc. Monica Deshmane(Haribhai V. Desai College,Pune) 24
introspective functions provided by PHP. Monica Deshmane(Haribhai V. Desai College,Pune) 25 • Get_declared_classes()- same to check class exists? • get_class_methods($class); • get_class_vars($class); • $classes = get_declared_classes( ); foreach($classes as $class) {} Class functions-
introspective functions provided by PHP. Monica Deshmane(Haribhai V. Desai College,Pune) 26 •Is_object()-to check given variable is object or not? •class_exists() – checks whether a class has been defined •get_class() – returns the class name of an object •get_parent_class() – returns the class name of an object’s parent class •is_subclass_of() – checks whether an object has a given parent class • Ex. echo get_class($obj); Object functions-
Example: introspection Monica Deshmane(Haribhai V. Desai College,Pune) 27 get_declared_classes( ) function display_classes ( ) { $classes = get_declared_classes( ); foreach($classes as $class) { echo "Showing information about $class"; echo "$class methods:";
Example: get_class_methods() Monica Deshmane(Haribhai V. Desai College,Pune) 28 $methods = get_class_methods($class); if(!count($methods)) { echo "None"; } else { foreach($methods as $method) { echo "$method( )"; } }
Example: get_class_vars() Monica Deshmane(Haribhai V. Desai College,Pune) 29 echo "$class properties:"; $properties = get_class_vars($class); if(!count($properties)) { echo "None"; } else { foreach(array_keys($properties) as $property) { echo "$$property"; }

Chap4 oop class (php) part 1

  • 1.
    Object Oriented programming Chapter4 1 Monica Deshmane(Haribhai V. Desai College,Pune)
  • 2.
    What we learn? •Introduction to Object Oriented Programming • Classes • Objects • Constructor • destructor • Introspection 2 Monica Deshmane(Haribhai V. Desai College,Pune)
  • 3.
    • Object-oriented programming(OOP) • refers to the creation of reusable object-types / classes that can be efficiently developed for multiple programs. Monica Deshmane(Haribhai V. Desai College,Pune) 3
  • 4.
    • before wego in detail, lets define important terms related to Object Oriented Programming. • Class − encapsulation of data members & functions.making many instances of the class i.e. object. • Object − An individual instance of the data structure defined by a class. You define a class once and then make many objects that belong to it. • Member Variable − These are the variables defined inside a class. This data will be invisible to the outside of the class and can be accessed via member functions. • Member function − These are the function defined inside a class and are used to access object data. • Inheritance − When a class is defined by inheriting existing function of a parent class then it is called inheritance. Here child class will inherit all or few member functions and variables of a parent class using extends keyword. Monica Deshmane(Haribhai V. Desai College,Pune) 4
  • 5.
    • Parent class− A class that is inherited from by another class. This is also called a base class or super class. • Child Class − A class that inherits from another class. This is also called a subclass or derived class. • Polymorphism − same function can be used for different purposes.means one thing can be expressed in many ways. • Overloading −(operator overloading) a type of polymorphism in which some or all of operators have different implementations depending on the types of their arguments. (function overloading) functions can also be overloaded with different implementation. • Data Abstraction − Any representation of data in which the implementation details are hidden (abstracted). • Encapsulation − refers to a concept where we bind all the data and member functions together to form an object. • Constructor − refers to a special type of function which will be called automatically whenever there is an object created from a class. • Destructor − refers to a special type of function which will be called automatically whenever an object is deleted or goes out of scope. Monica Deshmane(Haribhai V. Desai College,Pune) 5
  • 6.
    • 4.1 Classes MonicaDeshmane(Haribhai V. Desai College,Pune) 6
  • 7.
    • Class isblue print of object • Class{ Properties or data members Member functions } • Class A {public $a=2; Public function f() { //code } } Monica Deshmane(Haribhai V. Desai College,Pune) 7
  • 8.
    • A classdefinition: class classname { // classname is a PHP identifier! // the class body = data & function member definitions } • Attributes – are declared as variables within the class definition using keywords that match their visibility: public, private, or protected. Operations – are created by declaring functions within the class definition. Creating Classes in PHP 8
  • 9.
    • Three access/ visibility modifiers introduced in PHP 5, which affect the scope of access to class variables and functions: – public : public class variables and functions can be accessed from inside and outside the class – protected : hides a variable or function from direct external class access + protected members are available in subclasses – private : hides a variable or function from direct external class access + protected members are hidden (NOT available) from all subclasses Monica Deshmane(Haribhai V. Desai College,Pune) 9
  • 10.
    Monica Deshmane(Haribhai V.Desai College,Pune) 10 Class A { Public $a=10; Function f1() { //code } Function f2() { //code } }
  • 11.
    • $this isreserved keyword. • used to access properties of class. • Ex. • Class A { Public $a=10; Function f() { echo $this->a; } } Monica Deshmane(Haribhai V. Desai College,Pune) 11
  • 12.
    • 4.2 Objects MonicaDeshmane(Haribhai V. Desai College,Pune) 12
  • 13.
    • An objectis an instance of a class. • Any number of instances of a class can be created. Monica Deshmane(Haribhai V. Desai College,Pune) 13
  • 14.
    • Create anobject of a class = a particular individual that is a member of the class by using the new keyword: $newobj= new ClassName(actual_param_list); • Notes: – Class names are case insensitive as are functions – PHP 5 allows you to define multiple classes in a single script – Constructor called for initialization of object. – Destructor called for deletion of object. Monica Deshmane(Haribhai V. Desai College,Pune) 14
  • 15.
    • From operationswithin the class, class’s data / methods can be accessed / called by using: – $this = a variable that refers to the current instance of the class, and can be used only in the definition of the class, including the constructor & destructor – The pointer operator -> (similar to Java’s object member access operator “.” ) – class Test { public $attribute; function f ($val) { $this -> attribute = $val; // $this is mandatory! } // if omitted, $attribute is treated } // as a local var in the function Using Data/Method Members 15 No $ sign here
  • 16.
    Accesing properties &methods class Test { public $var1; public methodname(parameters){} } $t = new Test(); $t->var1 = “value”; echo $t->var1; $t->methodname(parameters); Monica Deshmane(Haribhai V. Desai College,Pune) 16
  • 17.
    Constructor: creating object •Constructor = function used to create an object of the class – Declared as a function with a special name: function __construct (param_list) { … } – Usually performs initialization – Called automatically when an object is created by new keyword – A default no-argument constructor is provided by the compiler only if a constructor function is not explicitly declared in the class – Cannot be overloaded (= 2+ constructors for a class); if you need a variable # of parameters, use flexible parameter lists… Monica Deshmane(Haribhai V. Desai College,Pune) 17
  • 18.
    Example:constructor • <?php class Fruit{ public $name; public $color; function __construct($name) { $this->name = $name; } function get_name() { return $this->name; } } $apple = new Fruit("Apple"); echo $apple->get_name(); ?> Monica Deshmane(Haribhai V. Desai College,Pune) 18
  • 19.
    Destructor: remove objectmemory • Destructor = opposite of constructor – Declared as a function with a special name, cannot take parameters function __destruct () { … } – Allows some functionality that will be automatically executed just before an object is destroyed An object is removed when there is no reference variable/handle left to it Monica Deshmane(Haribhai V. Desai College,Pune) 19
  • 20.
    Example:Destructor • <?php class Fruit{ public $name; public $color; function __construct($name) { $this->name = $name; } function __destruct() { echo "The fruit is {$this->name}."; } } $apple = new Fruit("Apple"); ?> Monica Deshmane(Haribhai V. Desai College,Pune) 20
  • 21.
    • Destructor willbe called for 2 ways- 1)When script ends 2)To manually delete object by unset() Monica Deshmane(Haribhai V. Desai College,Pune) 21
  • 22.
    clone • Clone iskeyword. • Object clone means object holds reference to another object which it uses. • When parent is replicated new copy of object created. • $copy=clone $obj; Monica Deshmane(Haribhai V. Desai College,Pune) 22
  • 23.
    • 4.3 Introspection MonicaDeshmane(Haribhai V. Desai College,Pune) 23
  • 24.
    • Introspection isthe ability of a program to examine an object's characteristics, • such as its name, parent class (if any), properties, and methods. • With introspection, you can write code that operates on any class or object. • You don't need to know which methods or properties are defined when you write your code; • instead, you can discover that information at runtime, which makes it possible for you • to write generic debuggers, serializers, profilers, etc. Monica Deshmane(Haribhai V. Desai College,Pune) 24
  • 25.
    introspective functions providedby PHP. Monica Deshmane(Haribhai V. Desai College,Pune) 25 • Get_declared_classes()- same to check class exists? • get_class_methods($class); • get_class_vars($class); • $classes = get_declared_classes( ); foreach($classes as $class) {} Class functions-
  • 26.
    introspective functions providedby PHP. Monica Deshmane(Haribhai V. Desai College,Pune) 26 •Is_object()-to check given variable is object or not? •class_exists() – checks whether a class has been defined •get_class() – returns the class name of an object •get_parent_class() – returns the class name of an object’s parent class •is_subclass_of() – checks whether an object has a given parent class • Ex. echo get_class($obj); Object functions-
  • 27.
    Example: introspection Monica Deshmane(HaribhaiV. Desai College,Pune) 27 get_declared_classes( ) function display_classes ( ) { $classes = get_declared_classes( ); foreach($classes as $class) { echo "Showing information about $class"; echo "$class methods:";
  • 28.
    Example: get_class_methods() Monica Deshmane(HaribhaiV. Desai College,Pune) 28 $methods = get_class_methods($class); if(!count($methods)) { echo "None"; } else { foreach($methods as $method) { echo "$method( )"; } }
  • 29.
    Example: get_class_vars() Monica Deshmane(HaribhaiV. Desai College,Pune) 29 echo "$class properties:"; $properties = get_class_vars($class); if(!count($properties)) { echo "None"; } else { foreach(array_keys($properties) as $property) { echo "$$property"; }

Editor's Notes

  • #9 Public can be replaced with var -> public visibility by default!