Course Website: http://sem.vfu.bg
Github: https://github.com/dimitardanailov/sem-vfu-programming
Google Docs: https://docs.google.com/presentation/d/1rCi7LaxdDc9-cbaSNSDgUkVv208iwFw559sIgJ2Kr1E/edit
Object-oriented programming (OOP) is a programming paradigm that represents concepts as "objects" that have data fields (attributes that describe the object) and associated procedures known as methods. Objects, which are usually instances of classes, are used to interact with one another to design applications and computer programs. C++, Objective-C, Smalltalk, Java and C# are examples of object-oriented programming languages.
4. OOP
Object-oriented programming (OOP) is a programming
paradigm that represents concepts as "objects" that have
data fields (attributes that describe the object) and
associated procedures known as methods. Objects, which
are usually instances of classes, are used to interact with
one another to design applications and computer
programs. C++, Objective-C, Smalltalk, Java and C# are
examples of object-oriented programming languages.
7. What is an object
Objects are the elements through which we perceive the
world around us. All objects have these characteristics :
● Identity
● State
● Behaviour
9. Classes (classification of objects)
A class is a group of objects with same attributes and
behavior. The characteristics of a class are :
● A name
● Attributes
● Methods / Functions
13. Abstraction
In computer science, abstraction is the process by which
data and programs are defined with a representation
similar in form to its meaning (semantics), while hiding
away the implementation details. Abstraction tries to
reduce and factor out details so that the programmer can
focus on a few concepts at a time. A system can have
several abstraction layers whereby different meanings
and amounts of detail are exposed to the programmer.
16. Inheritance
In object-oriented programming (OOP), inheritance is a
way to establish Is-a relationships between objects. In
classical inheritance where objects are defined by
classes, classes can inherit attributes and behavior from
pre-existing classes called base classes, superclasses, or
parent classes.
17. // Inheritance
class Human
{
private $name = null;
private $gender = null;
private $age = null;
public function __construct($name, $gender, $age) {
$this->name = $name;
$this->gender = $gender;
$this->age = $age;
}
static function prinHello($name) {
echo 'Hello, ' . $name;
}
private function greetings() {
echo 'Greetings';
}
}
18. class ParentClass extends Human {
private $name = null;
private $gender = null;
private $age = null;
private $childrens = array();
public function __construct ($name, $gender, $age) {
$this->name = $name;
$this->gender = $gender;
$this->age = $age;
}
public function getName() {
//$this->greetings();
return parent::prinHello($this->name);
}
public function getChildrens () {
return $this->childrens;
}
public function setChildren (Child $child) {
$this->childrens[] = $child;
}
}
19. Class Child extends Human {
private $parents = array();
public function __construct($name, $gender, $age) {
$this->name = $name;
$this->gender = $gender;
$this->age = $age;
}
public function getParents() {
return $this->parents;
}
public function setParent(ParentClass $parent) {
$this->parents[] = $parent;
}
}
21. Polymorphism
Polymorphism describes a pattern in object oriented
programming in which classes have different functionality
while sharing a common interface.
23. Class Abstraction
PHP 5 introduces abstract classes and methods. Classes
defined as abstract may not be instantiated, and any class
that contains at least one abstract method must also be
abstract. Methods defined as abstract simply declare the
method's signature - they cannot define the
implementation.
24. <?php
abstract class AbstractHuman {
private $name = null;
private $gender = null;
private $age = null;
public function __construct ($name, $gender, $age) {
$this->name = $name;
$this->gender = $gender;
$this->age = $age;
}
abstract public function getName();
abstract public function setName($name);
abstract public function getGender ();
abstract public function setGender ($gender);
abstract public function getAge();
abstract public function setAge($age);
}
?>
25. <?php
class ParentClass extends AbstractHuman {
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
public function getGender () {
return $this->gender;
}
public function setGender ($gender) {
$this->gender = $gender;
}
// ...
}
?>
27. Object Interfaces
Object interfaces allow you to create code which specifies
which methods a class must implement, without having to
define how these methods are handled.
Interfaces are defined using the interface keyword, in the
same way as a standard class, but without any of the
methods having their contents defined.
All methods declared in an interface must be public, this is
the nature of an interface.
28. <?php
// Interfaces
interface iHuman {
public function getName();
public function setName($name);
public function getGender();
public function setGender($gender);
public function getAge();
public function setAge($age);
}
?>
29. <?php
class ParentClass implements iHuman {
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
public function getGender() {
return $this->gender;
}
public function setGender($gender) {
$this->gender = $gender;
}
// ...
}
?>