в объектно-ориентированных языках программирования на основе классов (таких как C ++, Java, PHP, ...) есть свойства (также называемые полями), которые представляют собой данные и являются просто переменными или константами, а методы - функциональностью класса и на самом деле функции (процедуры).
каждый класс может быть создан как объект. каждый объект имеет все данные и функциональные возможности базового класса в начале, но данные могут быть изменены и отличаться от одного объекта к другому.
Есть 2 вида свойств и 2 вида методов.
некоторые свойства являются общими для всех объектов класса. это означает, что если вы измените эти данные класса, те же данные всех инстанцированных объектов будут изменены на новое значение. свойства такого типа называются свойствами класса или статическими свойствами (поскольку при определении этих переменных в большинстве языков вы будете использовать ключевое слово static).
некоторые другие свойства являются специфическими для каждого объекта. Изменение данных объекта, не влияет на данные других объектов. они называются свойствами объекта или свойствами экземпляра.
некоторые методы вызываются из объекта, существуют методы объекта. это объектные методы, и для их использования необходимо сначала создать экземпляр класса и использовать объект. некоторые другие методы вызываются с использованием самого класса. это методы класса (или статические методы), если вам нужна одна из этих функций, вам не нужен объект.
чтобы использовать свойства / методы объекта, в PHP (например, C ++) вы должны использовать оператор ->:
object->method();
object->property;
чтобы использовать свойства / методы класса в PHP (например, C ++), вы должны использовать оператор :::
class::method();
class::property;
на таких языках, как оператор Jave. используется для всех свойств / методов:
object.method();
class.property;
предположим, у вас есть класс Круга. этот класс определяет некоторые данные, такие как радиус, центральные кординаты и константа для значения PI. также есть метод для расчета площади круга.
Вот некоторый код PHP, чтобы прояснить это:
<?php
class Circle {
public $radius;
public $centerX;
public $centerY;
public static $PI = 3.1415;
public function __construct($r,$x,$y) {
$this->radius = $r;
$this->centerX = $x;
$this->centerY = $y;
}
public function getArea() {
return self::$PI * $this->radius * $this->radius;
}
}
$circle1 = new Circle(10,0,0);
echo $circle1->getArea() . "<br>\n";
$circle2 = new Circle(15,10,12);
echo $circle2->getArea() . "<br>\n";
Circle::$PI = 3.14;
echo $circle1->getArea() . "<br>\n";
echo $circle2->getArea() . "<br>\n";
?>
в этом примере мы определяем класс круга, который имеет свойства объекта (radius, centerX, CenterY), методы объекта (getArea ()) и свойство Class (PI).
изменяя статическое свойство PI, можно повлиять на площадь обоих объектов.