ООП

Классы и объекты

Существует процедурное программирование, т.е. переменные, функции и др. А есть объектно-ориентированное программирование (ООП). Здесь мы начинаем думать сущностями (объектами).

Классы и объекты

Один из основных элементов ООП — класс (пример: class Car). Имя класса регистрозависимо (как и имя переменной). Класс — это способ описания сущности (объекта — car), который определяет его свойства, поведение и правила взаимодействия. На основании класса уже создают объекты (экземпляры класса). Объект — это отдельный представитель класса, который имеет свое состояние (свойства) и поведение (метод). Пример:

class Car{ //pзадаем класс
$car1 = new Car(); //создаем объект класса
$car2 = new Car(); //второй объект класса

Внутри класса есть определенные свойства и методы.

Свойства класса

По сути, свойства — это простые переменные внутри класса. Т.е. переменная в коде — это переменная, а внутри класса — их называют свойства. Пример:

class Car {
public $year='2012'; //свойство 1
protected $speed; //свойство 2
private $model; //свойство 3
}

У свойств класса есть три модификатора: public, protected, private (о них читайте в следующих статьях). И все объекты нашего класса имеют свойства класса (year, speed, model). Чтобы получить доступ к этим свойствам:

echo $car1->year //объект -> свойство

Присваивание значений свойствам класса происходит так же:

$car1 ->speed=160; //присвоили значение свойству speed
$car1 ->model='BMW';
$car2 ->model='Ferrari';

Методы класса

Они отвечают за поведение класса. Метод — это обычная функция внутри класса (такая же ситуация, как и со свойствами). Пример:

class MyClass {
function myMethod($var1,$var2){}} //операторы
$myObj = new MyClass(); //создаем объект
$myObj->myMethod('value1','value2'); //вызов метода с указанными значениями в скобках

$this

Если у нас несколько объектов и мы хотим узнать свойство одного объекта,то нужно указание $this — т.е. оно указывает свойство какого-объекта мне нужно. Т.е. это указатель на тот объект, который его и запросил. Пример:

class Car {
public $year ='2012';
public $speed;
public$model;
function getSpeed(){
   echo "Скорость =".$this->speed;}

Т.е. в коде выше мы видим: из метода — доступ к свойству объекта через $this.

Функция может вызывать функцию. Т.е. вызов метода из метода — тоже через $this:

class Car {
public $year ='2012';
public $speed;
public$model;
function getSpeed(){
   $this->foo();} //вызов метода из метода
function foo(){
   echo "Скорость =".$this->speed;}



Добавить комментарий

Ваш e-mail не будет опубликован.