آبجکت (Object) نمونه‌ای از داده و رفتار است که در زمان اجرا وجود دارد. در برنامه‌نویسی آبجکت‌گرا، آبجکت معمولا نمونه‌ای از Class است و می‌تواند وضعیت را در Property و رفتار را در Method نگه دارد. اما همه زبان‌ها مدل یکسانی از کلاس و آبجکت ندارند. در Go ساختار Struct همراه با Method راه رایجی برای مدل‌سازی داده و رفتار است و کلاس به سبک PHP یا C# وجود ندارد.

آبجکت سفارش در PHP

final class Order {
    public function __construct(public int $id, public int $total) {}
    public function isLarge(): bool { return $this->total > 1000000; }
}
$order = new Order(42, 1500000);
echo $order->isLarge();

آبجکت در Python

class Order:
    def __init__(self, order_id, total):
        self.id, self.total = order_id, total
    def is_large(self):
        return self.total > 1_000_000
order = Order(42, 1_500_000)

رفتار مشابه با Struct در Go

type Order struct { ID int; Total int }
func (o Order) IsLarge() bool { return o.Total > 1000000 }
order := Order{ID: 42, Total: 1500000}

آبجکت در C# و ASP.NET Core

public sealed class Order {
    public int Id { get; init; }
    public decimal Total { get; init; }
    public bool IsLarge() => Total > 1_000_000m;
}
var order = new Order { Id = 42, Total = 1_500_000m };

نکته مفهومی

آبجکت با ردیف دیتابیس یکسان نیست. ORM می‌تواند رکورد را به آبجکت تبدیل کند، ولی هویت و چرخه عمر آبجکت در حافظه با رکورد ذخیره‌شده تفاوت دارد.

مقاله بهبود کار با آبجکت‌ها در PHP و اصطلاحات کلاس و برنامه‌نویسی آبجکت‌گرا را هم بخوانید.